OpenSolar MCP について
OpenSolar MCPは、OpenSolarの公開ドキュメントに基づくAPIへAIエージェントから構造化アクセスする、セルフホスト可能なMCPサーバーです。プロジェクトや連絡先、システム、ファイル、商取引設定、Teams共有を扱い、読み取り専用制御と曖昧な検索結果への慎重な対応を備えています。
主な機能
- 01プロジェクトと連絡先の厳選ツール
- 02システム比較と設計概要
- 03ファイル、商取引、Teamsの操作
- 04読み取り専用モードと制限付き変更
- 05機密情報を除いた構造化出力
活用シーン
- 01プロジェクトを検索して進捗を確認
- 02プロジェクトのシステム案を比較
- 03共有変更前にプロジェクト共有を確認
MCP 対応
OpenSolar APIの操作をMCPクライアント向けツールとして公開し、stdioまたはステートレスなStreamable HTTPで接続します。組織独自のAPIトークンを使い、読み取り専用モードでは変更ツールを無効にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @alignco/opensolar-mcpOPENSOLAR_API_TOKENシークレットOpenSolar bearer tokenOPENSOLAR_ORG_IDOpenSolar organisation IDOPENSOLAR_PROFILETool profile: agent (curated default) or full (every registered tool)OPENSOLAR_READ_ONLYHide every tool that can change OpenSolar dataOPENSOLAR_PLANOpenSolar access plan; api_access hides tools that need Raw Data API AccessOPENSOLAR_TOOLSETSComma-separated toolsets that replace the profile's tool selectionOPENSOLAR_UPLOAD_ROOTDirectory that create_private_file may read from; uploads stay disabled when unsetローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenSolar MCP
Claude、Cursor、VS Code、その他あらゆる MCP クライアントに、OpenSolar の組織への安全で構造化されたアクセスを提供します。
非公式 · セルフホスト可能 · OpenSolar API トークンはご自身で用意してください
クイックスタート · クライアントを接続 · ツール · 設定 · リモートデプロイ · セキュリティ · トラブルシューティング
OpenSolar MCP は、ドキュメント化された OpenSolar API 向けの Model Context Protocol サーバーです。ご自身のマシンまたはインフラストラクチャ上で動作し、ご自身の OpenSolar 認証情報を使用して、プロジェクト、連絡先、システム、ファイル、商用設定、Teams の共有に対応する厳選されたツール群を AI エージェントに提供します。
flowchart LR
client["MCP client<br/>Claude · Cursor · VS Code · Codex"]
server["OpenSolar MCP<br/>runs where you run it"]
api[("OpenSolar API<br/>api.opensolar.com")]
client -- "stdio or Streamable HTTP" --> server
server -- "HTTPS with your bearer token" --> api
重要
このプロジェクトは OpenSolar Pty Ltd と提携、承認、運営されているものではありません。公開されているドキュメント化済みの OpenSolar API のみを呼び出し、共有またはホスト型の OpenSolar サービスを運営することはありません。
主な特長
- エージェント向けに厳選。 デフォルトの 31 ツールのプロファイルで、日常的な作業をカバーします。登録済みの 75 ツールすべてを、設定ひとつで利用できます。
- 単なるエンドポイントではなく、意味のある操作。 プロジェクトと連絡先の検索、運用スナップショット、名前によるステージ変更、システムの並列比較、設計の概要、読み取り専用の共有事前確認に対応します。
- 設計段階から慎重。 検索では一致結果が
unique、ambiguous、incompleteのいずれかとして報告され、エージェントには推測しないよう指示されます。書き込みは自動再試行されず、読み取り専用モードではすべての変更操作が無効になります。 - OpenSolar のドキュメントに忠実。 すべてのツールは公式 API ドキュメント、または記録された実環境での検証に基づいており、リクエスト本文が確定している場合にのみ書き込み操作を公開します。各ツールの根拠はAPI コントラクトマトリクスに記載されています。
- クリーンなモデルコンテキスト。 公開済みスキーマを備えた構造化出力を提供します。認証情報、署名付き URL、設計データ、その他の生データや機密フィールドは、モデルに届く前に取り除かれます。
- 最新の MCP に対応。 2026-07-28 仕様に対応した公式 MCP TypeScript SDK v2 を基盤とし、以前のプロトコルバージョンを使用するクライアント向けのフォールバックも備えています。stdio とステートレスな Streamable HTTP をサポートし、すべてのツールでタイトル、出力スキーマ、動作アノテーションを宣言します。
質問できること
| エージェントへの質問… | 実行されること |
|---|---|
| 「Harbour Street プロジェクトを探して、進捗を要約してください。」 | search_projects でプロジェクトを検索し、続いて get_project_snapshot でワークフローの段階、システム、ファイルを読み取ります。 |
| 「そのプロジェクトのシステムの選択肢を比較してください。」 | compare_project_systems でサイズ、年間出力、価格、ワットあたりの価格、ハードウェアを並べて比較します。順位付けは行いません。 |
| 「Installing に移動してください。」 | update_project_stage でプロジェクトのワークフローから段階名を特定し、曖昧な一致やアーカイブ済みの一致がある場合は処理を行いません。 |
| 「提案の投資回収期間と NPV はいくらですか?」 | get_proposal_data で投資回収年、NPV、IRR、ROI を返します。Raw Data API Access が必要です。 |
| 「Jordan Lee を連絡先に追加してください。すでに存在する場合は追加しないでください。」 | search_contacts で既存の一致を先に確認し、続いて create_contact で連絡先を追加します。 |
| 「そのプロジェクトの提案書 PDF を生成してください。」 | generate_project_document で OpenSolar に文書をプライベートファイルとして保存し、ファイル ID を返します。 |
| 「このプロジェクトを施工パートナーと共有できますか?」 | preflight_project_share で接続と共有対象エンティティを確認します。変更は行いません。 |
クイックスタート
要件
- Node.js 24 以降
- API Access が有効になっている OpenSolar 組織
- OpenSolar 組織 ID と ベアラートークン
get_proposal_dataまたはget_project_designを使用する場合のみ、Raw Data API Access
ヒント
OpenSolar の標準ユーザートークンは 7 日後に有効期限が切れます。長期間運用する場合は、API 作業専用の OpenSolar ユーザーを作成し、マシンユーザーに設定してください。マシンユーザーのトークンには有効期限がありません。このサーバーが代わりにこの設定を変更することはありません。
1. 利用できるツールを確認します(認証情報は不要です)。
npx -y @alignco/opensolar-mcp --list-tools
2. 設定とトークンを確認します。
OPENSOLAR_API_TOKEN=your_token OPENSOLAR_ORG_ID=12345 \
npx -y @alignco/opensolar-mcp --check
--check は組織の情報を 1 回読み取ります。OpenSolar に接続せず設定を検証するには、--no-probe を追加してください。
3. 以下のいずれかの方法で MCP クライアントに追加します。
MCP クライアントを接続する
すべてのクライアントで必要な設定は、OPENSOLAR_API_TOKEN と OPENSOLAR_ORG_ID の 2 つです。以下の your_token と 12345 を、ご自身の値に置き換えてください。
Claude Code
claude mcp add opensolar \
-e OPENSOLAR_API_TOKEN=your_token \
-e OPENSOLAR_ORG_ID=12345 \
-- npx -y @alignco/opensolar-mcp
すべてのプロジェクトで利用できるようにするには、--scope user を追加します。
Claude Desktop
Settings → Developer → Edit Config を開き、次の内容を追加します。
{
"mcpServers": {
"opensolar": {
"command": "npx",
"args": ["-y", "@alignco/opensolar-mcp"],
"env": {
"OPENSOLAR_API_TOKEN": "your_token",
"OPENSOLAR_ORG_ID": "12345"
}
}
}
}
保存した後、Claude Desktop を再起動します。
Cursor
上の Cursor に追加 ボタンを使うか、~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)に次の内容を追加します。
{
"mcpServers": {
"opensolar": {
"command": "npx",
"args": ["-y", "@alignco/opensolar-mcp"],
"env": {
"OPENSOLAR_API_TOKEN": "your_token",
"OPENSOLAR_ORG_ID": "12345"
}
}
}
}
VS Code
上の VS Code にインストール ボタンを使うか、.vscode/mcp.json に次の内容を追加します。VS Code がトークンの入力を求め、安全に保存します。
{
"inputs": [
{
"type": "promptString",
"id": "opensolar_api_token",
"description": "OpenSolar API token",
"password": true
},
{
"type": "promptString",
"id": "opensolar_org_id",
"description": "OpenSolar organisation ID"
}
],
"servers": {
"opensolar": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@alignco/opensolar-mcp"],
"env": {
"OPENSOLAR_API_TOKEN": "${input:opensolar_api_token}",
"OPENSOLAR_ORG_ID": "${input:opensolar_org_id}"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に次の内容を追加します。
{
"mcpServers": {
"opensolar": {
"command": "npx",
"args": ["-y", "@alignco/opensolar-mcp"],
"env": {
"OPENSOLAR_API_TOKEN": "your_token",
"OPENSOLAR_ORG_ID": "12345"
}
}
}
}
OpenAI Codex
~/.codex/config.toml に次の内容を追加します。
[mcp_servers.opensolar]
command = "npx"
args = ["-y", "@alignco/opensolar-mcp"]
env = { OPENSOLAR_API_TOKEN = "your_token", OPENSOLAR_ORG_ID = "12345" }
Gemini CLI
~/.gemini/settings.json に次の内容を追加します。
{
"mcpServers": {
"opensolar": {
"command": "npx",
"args": ["-y", "@alignco/opensolar-mcp"],
"env": {
"OPENSOLAR_API_TOKEN": "your_token",
"OPENSOLAR_ORG_ID": "12345"
}
}
}
}
その他の MCP クライアント
OPENSOLAR_API_TOKEN と OPENSOLAR_ORG_ID を環境変数に設定し、stdio サーバーとして npx -y @alignco/opensolar-mcp を実行します。HTTP 経由で接続するクライアントについては、リモートデプロイを参照してください。
npx 経由ではなく、コマンドを一度だけインストールするには、次を実行します。
npm install -g @alignco/opensolar-mcp
opensolar-mcp --version
ヒント
使い方に慣れるまでは、
envブロックにOPENSOLAR_READ_ONLY=1を設定して始めてください。これにより、OpenSolar のデータを変更できるすべてのツールが無効になります。
ツール
プロファイル
プロファイルは、厳選された操作環境です。ツールセットは、直接選択できる機能領域です。読み取り専用モードとアクセスプランのフィルターは、どちらにも適用されます。
| 操作環境 | ツール | 用途 |
|---|---|---|
agent(デフォルト) | 31 | 日常的なプロジェクト、連絡先、システム、ファイル、共有の操作 |
agent + OPENSOLAR_READ_ONLY=1 | 22 | 調査、レポート作成、安全なお試し |
agent + OPENSOLAR_PLAN=api_access | 29 | Raw Data API Access を利用できない組織 |
full | 75 | 管理:コンポーネントカタログ、ワークフロー、Webhook、削除、Teams の設定 |
--list-tools を実行すると、設定によって有効になる操作環境が常に正確に表示されます。
npx -y @alignco/opensolar-mcp --list-tools
OPENSOLAR_PROFILE=full npx -y @alignco/opensolar-mcp --list-tools
OPENSOLAR_TOOLSETS=webhooks npx -y @alignco/opensolar-mcp --list-tools
デフォルトの agent ツール
✏️ は OpenSolar のデータを変更するツールを示します。🔒 は Raw Data API Access が必要なツールを示します。
| 領域 | ツール |
|---|---|
| プロジェクト | search_projects · list_projects · get_project · get_project_snapshot · create_project ✏️ · update_project ✏️ · update_project_stage ✏️ · update_project_usage ✏️ |
| 連絡先 | search_contacts · list_contacts · get_contact · create_contact ✏️ · update_contact ✏️ |
| 組織 | get_org · list_roles |
| システム | compare_project_systems · get_system_details |
| 商取引 | list_payment_options · list_pricing_schemes · list_costings |
| ファイルとドキュメント | list_private_files · get_private_file · create_private_file ✏️ · generate_project_document ✏️ |
| リファレンス | list_roof_types · list_file_tags |
| チーム共有 | list_connected_orgs · preflight_project_share · share_entities ✏️ |
| Raw Data | get_proposal_data 🔒 · get_project_design 🔒 |
ツールセット別の全 75 ツール
すべてのツールを公開するには OPENSOLAR_PROFILE=full を設定するか、OPENSOLAR_TOOLSETS でツールセットを指定してください(例:projects,contacts,systems)。
| ツールセット | ツール |
|---|---|
projects | list_projects, search_projects, get_project, get_project_snapshot, create_project, update_project, update_project_stage, update_project_usage, delete_project |
org | get_org, list_roles, get_role |
contacts | list_contacts, search_contacts, get_contact, create_contact, update_contact, delete_contact |
events | get_event, list_event_types |
systems | list_project_systems, compare_project_systems, get_system, get_system_details, get_system_image |
components | list_modules, get_module, delete_module_activation, list_inverters, get_inverter, delete_inverter_activation, list_batteries, get_battery, delete_battery_activation, list_other_components, get_other_component, delete_other_component_activation |
workflow | list_workflows, get_workflow, create_workflow, delete_workflow |
payment | list_payment_options, get_payment_option, delete_payment_option |
pricing | list_pricing_schemes, get_pricing_scheme, delete_pricing_scheme |
costing | list_costings, get_costing, delete_costing |
reference | list_roof_types, list_file_tags |
files | list_private_files, get_private_file, create_private_file, update_private_file, delete_private_file, generate_project_document |
webhooks | list_webhooks, create_webhook, update_webhook, list_webhook_logs, list_webhook_queue |
teams | list_connected_orgs, preflight_project_share, list_connection_requests, create_connection_request, accept_connection_request, update_connection, delete_connection, share_project, share_entities, create_permission_role |
raw_data | get_proposal_data, get_project_design |
ドキュメントにリクエスト本文が明記されていないため、一部の OpenSolar 操作は意図的に公開していません。たとえば、価格体系、支払いオプション、原価、コンポーネントの有効化の作成や、ワークフローまたは組織の更新などです。現在の実装に一覧があります。
設定
| 変数 | 用途 | デフォルト |
|---|---|---|
OPENSOLAR_API_TOKEN | OpenSolar のベアラートークンです。stdio および --check で必須です。ループバック HTTP ではフォールバックとして使用できます。 | — |
OPENSOLAR_ORG_ID | OpenSolar の組織 ID です。 | 必須 |
OPENSOLAR_BASE_URL | OpenSolar API のベース URL です。https が必須です(localhost の場合のみ http を使用できます)。 | https://api.opensolar.com/api/ |
OPENSOLAR_PROFILE | ツールプロファイルです。agent または full を指定します。 | agent |
OPENSOLAR_TOOLSETS | カンマ区切りのツールセットです。設定すると、プロファイルの選択を置き換えます。 | 未設定 |
OPENSOLAR_READ_ONLY | 1、true、yes、または on を指定すると、すべての変更操作を非表示にします。0、false、no、または off を指定すると、変更操作を表示します。それ以外の値を指定すると起動を停止します。 | off |
OPENSOLAR_PLAN | api_access を指定すると Raw Data API Access が必要なツールを非表示にし、raw_data を指定すると表示します。 | 未設定 |
OPENSOLAR_UPLOAD_ROOT | create_private_file が読み取り可能なディレクトリです。未設定の場合、アップロードは無効です。 | 未設定 |
MCP_TRANSPORT | http を指定すると、stdio の代わりに Streamable HTTP を提供します。 | stdio |
MCP_HTTP_HOST | HTTP バインドアドレスです。 | 127.0.0.1 |
MCP_HTTP_PORT | HTTP ポートです。 | 3000 |
MCP_HTTP_PATH | MCP エンドポイントのパスです。 | /mcp |
MCP_HTTP_ALLOWED_HOSTS | 非ループバックバインドで許可する Host 値をカンマ区切りで指定します。0.0.0.0 と :: の場合は必須です。 | 未設定 |
MCP_HTTP_ALLOWED_ORIGINS | 非ループバックバインドで許可するブラウザーの Origin ホスト名です。Origin ヘッダーのないリクエストは引き続き許可されます。 | Host の許可リスト |
OPENSOLAR_TOOLSETS はプロファイルより優先されます。その後に OPENSOLAR_READ_ONLY と OPENSOLAR_PLAN が適用されます。コメント付きテンプレートについては .env.example を参照してください。サーバー自体は .env ファイルを読み込みません。
コマンドラインオプション
| オプション | 説明 |
|---|---|
| (none) | stdio 経由で MCP を提供します |
--http | Streamable HTTP 経由で MCP を提供します |
--host <host>、--port <port>、--path <path> | HTTP のバインド設定です(MCP_HTTP_* 変数を上書きします) |
--check | 設定を検証し、組織を 1 回読み取ります |
--check --no-probe | OpenSolar に接続せずに設定を検証します |
--list-tools | 設定で公開されるツール名を表示します |
--version、-v | パッケージのバージョンを表示します |
--help、-h | ヘルプを表示します |
ローカルファイルのアップロード
create_private_file はサーバーを実行しているマシン上のファイルをアップロードするため、デフォルトでは無効です。有効にするには、ディレクトリを指定します。
export OPENSOLAR_UPLOAD_ROOT=/absolute/path/to/uploads
相対パスはそのディレクトリ内で解決されます。絶対パスとシンボリックリンクは、実際のパスがそのディレクトリ内にとどまる場合にのみ使用できます。モデルがファイルのバイトデータを送信することはありません。
get_private_file と get_system_image によるダウンロードは 10 MB に制限されます。テキストコンテンツはモデルに返されます。画像やその他のバイナリファイルは JSON にコピーされず、MCP の画像またはリソースコンテンツとして返されます。
リモートデプロイ
サーバーは、ネットワーク経由で接続するクライアント向けに、ステートレスな Streamable HTTP も使用できます。
OPENSOLAR_API_TOKEN=your_token OPENSOLAR_ORG_ID=12345 \
npx -y @alignco/opensolar-mcp --http
| エンドポイント | 用途 |
|---|---|
http://127.0.0.1:3000/mcp | MCP |
/health | 稼働状態です。{"status":"ok"} を返します。認証情報は不要です。 |
/ready | 準備状態です。{"status":"ready"} を返します。認証情報は不要です。 |
ループバックアドレスでは、Authorization: Bearer <token> ヘッダーが優先され、OPENSOLAR_API_TOKEN 変数はローカルのフォールバックとして使用されます。
localhost を超えて公開する
ループバック以外にバインドする場合、すべての MCP リクエストで OpenSolar のベアラートークンが必須です。OPENSOLAR_API_TOKEN 変数はフォールバックとして無視され、不正な形式の Authorization ヘッダーは拒否されます。
export OPENSOLAR_ORG_ID=12345
export MCP_HTTP_HOST=0.0.0.0
export MCP_HTTP_ALLOWED_HOSTS=mcp.example.com
npx -y @alignco/opensolar-mcp --http
たとえば、リクエストヘッダーにトークンを指定してクライアントを接続します。
claude mcp add --transport http opensolar https://mcp.example.com/mcp \
--header "Authorization: Bearer your_token"
警告
組み込みサーバーは平文の HTTP を使用します。ネットワーク上でトークンを送信する前に、TLS を終端するリバースプロキシまたはプラットフォームの背後に配置してください。
MCP_HTTP_ALLOWED_HOSTSとMCP_HTTP_ALLOWED_ORIGINSは、DNS リバインディングやクロスサイトのブラウザーリクエストを防ぐための設定であり、認証機能ではありません。
Docker
このイメージは、非特権ユーザーとして HTTP トランスポートを実行し、ヘルスチェックを備えています。
docker pull ghcr.io/align-software-company/opensolar-mcp:latest
docker run --rm \
-e OPENSOLAR_ORG_ID=12345 \
-p 127.0.0.1:3000:3000 \
ghcr.io/align-software-company/opensolar-mcp:latest
このリポジトリをクローンした場所からビルドするには、次のようにします。
docker build -t opensolar-mcp .
docker run --rm \
-e OPENSOLAR_ORG_ID=12345 \
-p 127.0.0.1:3000:3000 \
opensolar-mcp
コンテナー内では、サーバーは 0.0.0.0 にバインドされるため、クライアントはすべてのリクエストで Authorization: Bearer <token> を送信する必要があります。このイメージでは、Host 値として localhost と 127.0.0.1 が許可されています。それ以外の場合は、MCP_HTTP_ALLOWED_HOSTS に公開ホスト名を設定してください。
セキュリティモデル
- テレメトリーはありません。 サーバーは分析データや使用状況データを送信しません。外部へのリクエストは、OpenSolar API と、OpenSolar から返されるファイルおよび画像の URL に限られます。
- 認証情報はご自身のプロセス内に留まります。 トークンは環境変数またはクライアントの設定内に留まります。何も永続化されず、このプロジェクトはホスト型サービスを実行しません。
- 書き込みは明示的に行われます。 データを変更するツールには MCP の
readOnlyHint: falseアノテーションが付与され、破壊的なツールにはdestructiveHint: trueが付与されます。また、いずれも自動的に再試行されません。OPENSOLAR_READ_ONLY=1を設定すると、これらのツールはすべて無効になります。 - 推測は行いません。 検索で対象が確定するのは、
resolution: uniqueが返された場合、または完全なスキャンでメールアドレスもしくは電話番号が完全一致する候補が 1 件だけの場合にidentifier_match_idが返された場合に限られます。サーバーは書き込みを再試行せず、隠れた一括書き込み機能も公開しません。 - 出力は最小限です。 署名付きダウンロード URL、連携シークレット、Webhook シークレット、個人を特定する情報、未加工の設計データは、マスキングまたは省略されます。
- 処理量には上限があります。 検索、ダウンロード、Raw Data の展開にはすべて固定の上限があります。通常の読み取りのみ再試行され、HTTP 429 の場合に限り、最大 3 回まで再試行されます。
- HTTP モードでは OpenSolar トークンがそのまま転送されます。 クライアントが送信するベアラートークン自体が OpenSolar トークンであり、そのまま OpenSolar に転送されます。これは MCP OAuth トークンではありません。複数人で 1 つのデプロイメントを共有する場合は、認証ゲートウェイを前段に配置してください。
脆弱性は非公開で報告してください。詳細は SECURITY.md をご覧ください。
互換性
| MCP プロトコル | 2026-07-28。2025-11-25、2025-06-18、およびそれ以前のリビジョンを使用するクライアント向けのフォールバックにも対応 |
| トランスポート | stdio、ステートレス Streamable HTTP |
| ツールの結果 | 各ツールの outputSchema に一致する structuredContent に加え、短いテキストの要約と互換性のための簡潔な JSON テキスト |
| ランタイム | Node.js 24 以降、ESM |
成功した構造化ツールの結果には、同じペイロードを簡潔な JSON テキストとしてシリアライズしたものも含まれます。そのため、structuredContent を転送しないクライアントでも、構造化された結果全体をモデルに渡すことができます。
トラブルシューティング
| 症状 | 対処方法 |
|---|---|
Token missing or expired | 標準トークンの有効期限は7日間です。新しいトークンを取得するか、マシンユーザーを使用してください。 |
This call needs Raw Data API Access | OpenSolar で Raw Data API Access を有効にするか、OPENSOLAR_PLAN=api_access を設定して該当するツールを非表示にしてください。 |
The caller cannot use this record (HTTP 403) | トークンのユーザーに権限がないか、プロジェクトが API Access の利用資格の対象外です。 |
Throttled by OpenSolar (HTTP 429) | OpenSolar のスロットル制限に達しました。再試行する前にお待ちください。 |
| 想定しているツールが見つからない | 同じ環境で --list-tools を実行し、OPENSOLAR_PROFILE、OPENSOLAR_TOOLSETS、OPENSOLAR_READ_ONLY、OPENSOLAR_PLAN を確認してください。 |
起動時に Unknown OPENSOLAR_READ_ONLY が表示される | 1/true/yes/on または 0/false/no/off を使用してください。入力ミスによって書き込みが有効にならないよう、それ以外の値は拒否されます。 |
| クライアントからサーバーを起動できない | クライアントが使用する PATH 上で、node --version が24以降であることを確認してください。Windows では、クライアントによっては "command": "cmd" と "args": ["/c", "npx", "-y", "@alignco/opensolar-mcp"] が必要です。 |
HTTP が 401 Unauthorized を返す | ループバック以外へのバインドでは OPENSOLAR_API_TOKEN は無視されます。各リクエストに Authorization: Bearer <token> を付けてください。 |
MCP に到達する前に HTTP が 403 を返す | ホスト名を MCP_HTTP_ALLOWED_HOSTS に、またはブラウザーのオリジンを MCP_HTTP_ALLOWED_ORIGINS に追加してください。 |
ログは JSON Lines 形式で stderr に出力されるため、stdout は MCP プロトコル用にクリーンな状態に保たれます。
開発
git clone https://github.com/Align-Software-Company/opensolar-mcp.git
cd opensolar-mcp
corepack enable
pnpm install --frozen-lockfile
pnpm check:all # repository hygiene, registry metadata, lint, typecheck, offline tests
pnpm build
pnpm test:docker # build and smoke-test the Docker image
通常のテストスイートはオフラインで実行されます。ライブ統合テストは .env.local を読み込み、デフォルトでは読み取り専用で実行されます。書き込みには OPENSOLAR_INTEGRATION_WRITES=1 と専用のフィクスチャレコードが必要です。
pnpm test:integration
OPENSOLAR_INTEGRATION_WRITES=1 pnpm test:integration
プルリクエストを作成する前に、CONTRIBUTING.md をお読みください。特に OpenSolar API の根拠に関するルールを確認してください。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| 現在の実装 | 提供済みの動作:公開ルール、トランスポート、クライアントの動作、秘匿化、制限 |
| API 契約マトリックス | 各ツールのエンドポイント、メソッド、パラメーター、プラン、スロットル、根拠 |
| API の特記事項 | 想定外だった OpenSolar の動作と、サーバーでの対処方法 |
| ソースログ | 各契約の根拠となるドキュメントページとライブチェック |
| デフォルトプロファイルの評価 | デフォルトプロファイルの動作評価とリリースに向けた調整 |
| リリースの制約 | デプロイに影響する OpenSolar の規約、スロットル、アクセスプラン |
| リリースチェックリスト | リリースゲート |
| 変更履歴 | バージョンごとの主な変更点 |
貢献
貢献を歓迎します。CONTRIBUTING.md と行動規範をご覧ください。セキュリティ上の問題については、イシューを作成せず、SECURITY.md に従ってください。
ライセンス
MIT © 2026 Align Software Company.
OpenSolar は OpenSolar Pty Ltd の商標です。このプロジェクトは独立したものであり、OpenSolar の承認を受けていません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。