セルフホスティング環境での MCP
セルフホスティング環境の Nodaro で MCP サーバーを有効にし、Claude、Cursor、ChatGPT などの MCP クライアントが、専用の MCP ホスト名から OAuth で環境を使えるようにします。
Nodaro の MCP サーバーを使うと、Claude、Cursor、Cline、Continue、Goose、ChatGPT などの AI クライアントが、ユーザーに代わってセルフホスティング環境のツールを使えるようになります。MCP サーバーは、デフォルトではオフです。有効にするには、MCP 専用のホスト名を用意してそのホスト名を API にルーティングし、2 つの変数を設定します。その後、ユーザーは自分のクライアントから OAuth で環境にログインします。
MCP の提供のしくみ
- MCP は API が提供します。
nodaroコンテナ内のポート9000で、パス/mcpに応答します。 - ポート
3000の Web サーバーは、MCP のリクエストを拒否します。アプリのメインのアドレスで/mcpにリクエストすると、405とエラーwrong_mcp_host、そして本来のエンドポイントのアドレスが返されます。 - そのため、MCP には専用のホスト名が必要です。
mcp.nodaro.example.comのように、トラフィックが API に直接届くホスト名を用意します。 - ログインはメインのドメインのままです。OAuth のディスカバリードキュメント
/.well-known/oauth-authorization-serverと同意画面は、PUBLIC_URLで提供されます。
MCP を有効にする
MCP のホスト名を API にルーティングする
mcp.<your-domain> の DNS レコードを作成し、自分のサーバーに解決されるようにします。CDN を経由してプロキシしないでください。プロキシを通すと、MCP が使う長時間の Server-Sent Events 接続が切断されます。
Compose ファイルは、API のポートを公開していません。nodaro サービスの下で、ループバックインターフェイスに公開します。
nodaro:
ports:
- "3000:3000"
- "127.0.0.1:9000:9000"次に、リバースプロキシに MCP ホスト用の 2 つ目のサイトを追加し、127.0.0.1:3000 ではなく 127.0.0.1:9000 に転送するようにします。nginx の例と同じように、レスポンスのバッファリングはオフのままにします。
MCP のホスト名を、backend サービスのカスタムドメインとして追加します。
railway domain add mcp.your-domain.com --service backendまたは、Railway のダッシュボードで Project › backend service › Settings › Domains › Add custom domain を開きます。その後、DNS プロバイダーで CNAME レコードを追加します。
変数を設定する
MCP_ENABLED=true # required; the default is off
MCP_PUBLIC_URL=https://mcp.your-domain.com # the hostname from step 1Compose スタックでは、どちらも nodaro サービスの environment: の下に追加します。Compose ファイルは、これらを .env から渡さないためです。その後、docker compose -f docker-compose.community.yml up -d を実行します。
MCP_PUBLIC_URL は、ディスカバリーエンドポイントが保護されたリソース(RFC 9728)の識別子として公開する値で、ツールが返すアップロードリンクのベースにもなります。設定しないと、環境は Nodaro Cloud の MCP ホストを公開してしまいます。サブドメインではなくメインのドメインで MCP を提供する場合は、PUBLIC_URL と同じ値を設定します。その場合も、/mcp へのリクエストは API のポートに直接届く必要があります。
ディスカバリーエンドポイントを確認する
curl https://mcp.your-domain.com/.well-known/oauth-protected-resource
curl https://your-domain.com/.well-known/oauth-authorization-serverどちらも、ステータス 200 で JSON を返す必要があります。
クライアントにコネクタを追加する
MCP のエンドポイントは https://mcp.your-domain.com/mcp です。Claude では、Settings(設定)› Connectors(コネクタ)› Add custom connector(カスタムコネクタを追加)を開き、この URL を入力します。ほかのクライアントについては、クライアントを接続を参照し、Nodaro Cloud の URL の代わりに自分の MCP の URL を使ってください。
登録できるクライアント
MCP クライアントは、OAuth でログインします。対応しているクライアントは、動的クライアント登録(RFC 7591)によって、自分自身を環境に登録します。登録は 2 つの変数で制御でき、ほとんどの環境ではデフォルトのままで問題ありません。
| 変数 | デフォルト | 説明 |
|---|---|---|
MCP_DYNAMIC_REGISTRATION | allowlist | allowlist は、MCP_DCR_ALLOWLIST にあるクライアント名だけを受け付けます。open は、任意のクライアントを受け付けます。off は、動的登録を無効にします。 |
MCP_DCR_ALLOWLIST | 既知の 14 のクライアント | allowlist モードで受け付けるクライアント名を、カンマ区切りで指定します。 |
デフォルトの許可リストは、Claude、Claude Code、Cursor、Cline、Continue、Goose、ChatGPT、OpenAI、Lovable、Gemini、Gemini CLI、Codex、MCP Inspector、mcp-inspector です。独自のクライアントを追加するには、リスト全体を設定します。
MCP_DCR_ALLOWLIST=Claude,Cursor,Cline,Continue,Goose,YourCustomClient推奨のモードは allowlist です。
クライアントでできること
MCP サーバーには、画像、動画、音声、キャラクター、ロケーション、オブジェクトの生成ツールと、ギャラリー、ワークフロー、アプリ、保存したコンポーネント、モデルのためのツールがあります。各ユーザーは、環境上の自分のアカウントとして操作します。MCP ツールのリファレンスと、MCP のトラブルシューティングを参照してください。
よくある質問
関連ページ
Nodaro MCP
クライアントを接続
MCP ツールリファレンス
リバースプロキシと HTTPS
設定
最終更新