MCPホスティングのURLを各クライアントにつなぐ設定チートシート【2026年10月版】Claude・Claude Code・Cursor・VS Code・ChatGPT・Codex・Gemini CLI・API
ホスティングしたMCPサーバーのURLとキーを、Claude Code・Claudeのカスタムコネクタ・Cursor・VS Code・ChatGPT開発者モード・Codex・Gemini CLI・Claude API・OpenAI Responses APIに登録する設定を一覧化。url/httpUrl/server_urlの違い、環境変数の書き方、APIキーとOAuthの対応状況、リクエストの発信元、よくある接続エラー13件の対処までまとめました。
最終更新:2026年10月15日 / 対象:MCP仕様 2026-07-28、および2026年10月時点の各クライアント公式ドキュメント(Claude Code、Claude、Cursor、VS Code、ChatGPT、Codex、Gemini CLI、Claude API、OpenAI Responses API)
結論(30秒で読める要約)
ホスティングしたMCPサーバーをクライアントにつなぐのに必要なのは、どのクライアントでも同じ3つです。エンドポイントURL(多くは /mcp で終わる)、トランスポート(Streamable HTTP)、認証情報(Bearerヘッダーか OAuth)。ただし書き方がクライアントごとに違い、接続トラブルの大半はこの違いから起きます。
- URLのキー名が違う:Claude Code・Cursor・VS Code・Codexは
url、Gemini CLIはhttpUrl(urlは旧SSE扱い)、OpenAI Responses APIはserver_url。 - 環境変数の書き方が違う:Claude Codeは
${VAR}、Cursorは${env:VAR}、VS Codeは${input:id}、Codexは値ではなく変数名を書く(bearer_token_env_var)。 - リクエストの発信元が違う:IDEやCLIは自分のPCから、Claude(Web・デスクトップ・モバイルのコネクタ)、ChatGPT、各社APIは事業者のクラウドからアクセスする。後者は公開HTTPSのURLが必須。
- 固定のAPIキーはどこでも使えるわけではない:Claudeのカスタムコネクタのリクエストヘッダーは一部組織向けのベータ、ChatGPT開発者モードはOAuthか認証なし、両社のAPIはトークン用のフィールドで渡す。
9クライアント分の正確な書式は2章の表にまとめています。
目次
- 「リモートMCPサーバーにつなぐ」とは
- チートシート:9クライアント早見表
- クライアント別の設定(コピペ用)
- APIキーかOAuthか:クライアント別の対応
- 自分のPCか事業者クラウドか:リクエストの発信元
- クライアント設定の前にエンドポイントを1回だけテストする
- チェックリスト
- トラブル対処(症状→原因→対処)
- NodeFlareならこう解決できる
- よくある質問
1. 「リモートMCPサーバーにつなぐ」とは
リモートMCPサーバーにつなぐとは、MCPクライアントにローカルのコマンドではなくHTTPSのエンドポイントを登録し、JSON-RPCのメッセージをStreamable HTTPで送らせることです。MCP仕様(2026-07-28)はStreamable HTTPを「各メッセージを単一のMCPエンドポイントへのHTTP POSTとして送る」方式と定めているので、クライアント側に必要なのはURLと、サーバーが求める認証情報だけです。
これはMCPホスティングの最後の工程です。どこで動かすかは「MCPホスティング2026:6つの方法を比較」、GitHubのstdioサーバーをURL化する手順は「stdio MCPサーバーをリモートで動かす方法」で解説しました。この記事は https://…/mcp とキーが手元にある状態から始めて、「各クライアントに何を書けばいいか」だけに答えます。
2. チートシート:9クライアント早見表
各社の公式ドキュメント(2026年10月時点、参考資料を参照)に基づきます。
| クライアント | 設定の場所 | URLの指定 | 固定ヘッダー(APIキー) | OAuth | リクエストの発信元 |
|---|---|---|---|---|---|
| Claude Code | claude mcp add → ~/.claude.json またはプロジェクトの .mcp.json |
"type": "http" + url |
--header / headers |
対応(/mcp または claude mcp login) |
自分のPC |
| Claude(Web・デスクトップ・モバイル) | カスタマイズ → コネクタ → カスタムコネクタを追加 | MCPサーバーURL欄 | リクエストヘッダー(ベータ・一部組織・最大4つ) | 対応 | Anthropicのクラウド |
| Cursor | .cursor/mcp.json または ~/.cursor/mcp.json |
url |
headers |
対応(固定クライアント用の auth も可) |
自分のPC |
| VS Code(Copilot) | .vscode/mcp.json またはユーザープロファイル(最上位は servers) |
"type": "http" + url |
headers |
対応(oauth.clientId) |
自分のPC |
| ChatGPT 開発者モード | 設定 → アプリ → 詳細設定 → 開発者モード → アプリを作成 | サーバーURL欄 | 記載なし | OAuth、認証なし、混合 | OpenAIのクラウド |
| Codex CLI | config.toml の [mcp_servers.<name>] |
url |
bearer_token_env_var、http_headers、env_http_headers |
対応(codex mcp login) |
自分のPC |
| Gemini CLI | ~/.gemini/settings.json または .gemini/settings.json |
httpUrl(url はSSE) |
headers / --header |
対応(401を検知して自動検出) | 自分のPC |
| Claude API(MCPコネクタ) | リクエストの mcp_servers |
"type": "url" + url(https:// 必須) |
authorization_token |
取得したトークンを渡す | Anthropicのクラウド |
| OpenAI Responses API | tools に "type": "mcp" |
server_url |
authorization(毎リクエスト送信) |
取得したトークンを渡す | OpenAIのクラウド |
キーを設定ファイルに直書きしないための書き方は次のとおりです。
| クライアント | 書き方 | 例 |
|---|---|---|
| Claude Code | url と headers で ${VAR} や ${VAR:-default} |
"Authorization": "Bearer ${MCP_API_KEY}" |
| Cursor | url と headers で ${env:NAME}(リモートでは envFile 不可) |
"Authorization": "Bearer ${env:MCP_API_KEY}" |
| VS Code | promptString 型の入力(password: true)を ${input:id} で参照 |
"Authorization": "Bearer ${input:mcp-key}" |
| Codex | 環境変数の「名前」を書く | bearer_token_env_var = "MCP_API_KEY" |
| Claudeのカスタムコネクタ | Claude側で保存され、保存後は再表示されない | リクエストヘッダーに Bearer <キー> と入力 |
3. クライアント別の設定(コピペ用)
例ではエンドポイントを https://your-server.example.com/mcp、キーを入れる環境変数を MCP_API_KEY としています。どちらも自分の値に置き換えてください。
Claude Code
Claude Codeはコマンド1行でリモートサーバーを追加できます。--transport http でStreamable HTTPを選び、--header(短縮形 -H)で認証情報を渡します。
claude mcp add --transport http my-server https://your-server.example.com/mcp \
--header "Authorization: Bearer $MCP_API_KEY"
この書き方だと $MCP_API_KEY はシェルが展開するので、キーそのものが ~/.claude.json に保存されます。チームで共有する .mcp.json にキーを含めたくない場合は、次のように自分で書き、実行時にClaude Codeに展開させます。
{
"mcpServers": {
"my-server": {
"type": "http",
"url": "https://your-server.example.com/mcp",
"headers": {
"Authorization": "Bearer ${MCP_API_KEY}"
},
"timeout": 600000
}
}
}
押さえておくべき点:
"type": "http"は必須です。urlだけでtypeがないとstdioサーバーとして読まれ、設定エラーになると公式ドキュメントに明記されています。streamable-httpも別名として使えます。- スコープ:
--scope local(既定)と--scope userは~/.claude.json、--scope projectは.mcp.jsonに書かれます。 ANTHROPIC_AUTH_TOKENなどの認証用変数はurlやheadersの中では空に展開されます。サーバーにはBearerだけが届いて401になるので、自分で名前を付けた別の変数にコピーして使います。- OAuthのサーバーは、Claude Code内で
/mcp、またはシェルでclaude mcp login <name>を実行します。 - 起動のタイムアウトは環境変数
MCP_TIMEOUT(ミリ秒)、ツール実行のタイムアウトは上の例のtimeout(ミリ秒)で設定します。 - ツールの結果が1万トークンを超えると警告が出て、既定では2万5,000トークンで打ち切られます(
MAX_MCP_OUTPUT_TOKENSで変更可)。大きな結果を返すツールの対策は「MCPのトークン消費を解説」を参照してください。 - SSEは非推奨です。v2.1.265以降は、サーバーがHTTPを受け付けない場合に
--transport httpが自動でSSEに切り替わります。
Claude(Web・デスクトップ・モバイルのカスタムコネクタ)
Claudeのアプリからはカスタムコネクタとしてリモートサーバーにつなぎます。Free・Pro・Max・Team・Enterpriseの各プランで使え、Freeは1つまで追加できます。
Free・Pro・Maxの場合は、カスタマイズ → コネクタ → カスタムコネクタを追加 の順に進み、MCPサーバーのURLを入れて認証方法を選び、追加します。Team・Enterpriseではオーナーが 組織設定 → コネクタ → 追加 → カスタム → Web から登録し、メンバーはそれぞれ「接続」を押します。
| 認証の選択肢 | 動作 |
|---|---|
| 今すぐサインイン | 利用前に各ユーザーがサーバーのOAuthフローを完了する |
| 必要なときにサインイン | まず認証なしで接続し、サーバーが求めたときにサインインを促す |
| サインインなし | ユーザーのログインなし。APIキー方式のサーバーはリクエストヘッダーにキーを入れる |
OAuthクライアントは、Claudeの公開ID(Anthropicが公開するClient ID Metadata Document。推奨)、動的クライアント登録(DCR)による自動登録、事前登録した自前のクライアントIDから選べます。
APIキーを使う場合はリクエストヘッダー機能を使いますが、制約があります。
- この機能はベータで、公式には「一部の組織のみ」とされています。ダイアログにリクエストヘッダーの項目が見当たらなければ、まだ使えません。
- 入力した値はそのまま送られます。Bearerキーなら
Bearer your-keyとスペース込みで入力します。 - ヘッダーは最大4つまで。独自のヘッダー名はAnthropicの審査が必要で、OAuth接続では
Authorizationをヘッダーとして設定できません。 - 認証設定は追加後に変更できません。キーを入れ替えるときは、コネクタを削除して追加し直します。
/sseで終わるURLを入れると旧SSEトランスポートが選ばれます。
リクエストヘッダーのベータがなく、サーバーがAPIキーしか受け付けない場合でも、Claude Desktopなら claude_desktop_config.json でmcp-remoteを使ってつなげます。PC上で小さなstdioプロセスを動かし、リモートURLへ中継する方法です。
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://your-server.example.com/mcp",
"--header", "Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer YOUR_KEY" }
}
}
}
Authorization: の後にスペースがないのは意図的です。mcp-remoteのREADMEによると、CursorとWindows版のClaude Desktopは args 内のスペースをエスケープしないため、スペースは環境変数側に入れます。READMEはmcp-remoteを実験的なツールとしているので、サーバーがOAuthに対応しているならネイティブのコネクタを優先しましょう。
Cursor
Cursorは .cursor/mcp.json(プロジェクト単位)か ~/.cursor/mcp.json(全体)からリモートサーバーを読み込み、stdio・SSE・Streamable HTTPに対応しています。
{
"mcpServers": {
"my-server": {
"url": "https://your-server.example.com/mcp",
"headers": { "Authorization": "Bearer ${env:MCP_API_KEY}" }
}
}
}
リモートサーバーでは envFile が使えないため、MCP_API_KEY はシェルのプロファイルかシステムの環境変数に設定し、Cursorを再起動します。固定の認証情報が必要なOAuthプロバイダーには、CLIENT_ID(必須)、CLIENT_SECRET(任意)、scopes(任意。省略時は自動検出)を持つ auth オブジェクトを追加し、Cursorのリダイレクト先をプロバイダーに登録します。Webと Cursor Agents 用は https://www.cursor.com/agents/mcp/oauth/callback、デスクトップアプリ用は http://localhost:8787/callback です。
VS Code(GitHub Copilot)
VS Codeは .vscode/mcp.json またはユーザープロファイルで、最上位に mcpServers ではなく servers を使います。"type": "http" にすると、まずStreamable HTTPを試し、使えなければSSEに切り替えます。
{
"inputs": [
{
"type": "promptString",
"id": "mcp-key",
"description": "API key for my-server",
"password": true
}
],
"servers": {
"my-server": {
"type": "http",
"url": "https://your-server.example.com/mcp",
"headers": { "Authorization": "Bearer ${input:mcp-key}" }
}
}
}
サーバーの初回起動時に入力を求められます。OAuthを使うなら "oauth": { "clientId": "..." } を追加すると、VS Codeがブラウザでのフローを処理します。注意点として、${input:...} のような対話入力が必要なサーバーはCopilotのハーネスセッションには引き継がれません。
ChatGPT(開発者モード)
ChatGPTは開発者モードで独自のMCPサーバーにつなぎます。OpenAIのドキュメントでは、Web版のPro・Plus・Business・Enterprise・Educationアカウントが対象です。
- 設定 → アプリ → 詳細設定 → 開発者モード をオンにする。
- 「アプリを作成」からサーバーURLを入力し、認証方式をOAuth・認証なし・混合から選ぶ。
- 会話中に「+」メニューから開発者モードを選ぶ。
対応プロトコルはSSEとストリーミングHTTPと記載されています。固定のAPIキーをヘッダーで渡す欄は記載がないため、ChatGPTから使うならOAuth(または意図して公開する読み取り専用サーバー)を前提にしましょう。
Codex CLI
CodexはStreamable HTTPのサーバーを config.toml に書きます。必須は url だけです。
[mcp_servers.my-server]
url = "https://your-server.example.com/mcp"
bearer_token_env_var = "MCP_API_KEY" # キーではなく変数の「名前」
startup_timeout_sec = 20 # 既定は10
tool_timeout_sec = 120 # 既定は60
# 他のヘッダーが必要な場合:
# http_headers = { "X-Team" = "growth" }
# env_http_headers = { "X-Api-Key" = "OTHER_KEY_VAR" }
OAuthのサーバーは codex mcp login my-server でブラウザが開きます。ホスティング先がスケールtoゼロで、初回接続に10秒以上かかる場合は startup_timeout_sec を延ばします。
Gemini CLI
Gemini CLIでStreamable HTTPを使うには httpUrl を指定します。url はSSEのエンドポイント用です。CLIで追加すれば正しいキーで書かれます。
gemini mcp add --transport http \
--header "Authorization: Bearer $MCP_API_KEY" \
my-server https://your-server.example.com/mcp
settings.json には次のように書かれます。
{
"mcpServers": {
"my-server": {
"httpUrl": "https://your-server.example.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" },
"timeout": 600000
}
}
}
既定のスコープは project(.gemini/settings.json)で、--scope user を付けると ~/.gemini/settings.json に書かれます。リクエストのタイムアウトは既定で60万ミリ秒(10分)です。OAuthのサーバーは設定を省略でき、CLIが401を検知してエンドポイントを自動検出し、フローを実行します。この認証にはブラウザが必要です。
自作エージェント:Claude APIとOpenAI Responses API
どちらのAPIも、コード側でMCPクライアントを動かさずに、API側からリモートMCPサーバーを呼び出せます。
Claude API(MCPコネクタ):
import os
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-5-5",
max_tokens=1000,
messages=[{"role": "user", "content": "What tools do you have?"}],
mcp_servers=[{
"type": "url",
"url": "https://your-server.example.com/mcp",
"name": "my-server",
"authorization_token": os.environ["MCP_TOKEN"],
}],
tools=[{"type": "mcp_toolset", "mcp_server_name": "my-server"}],
betas=["mcp-client-2025-11-20"],
)
URLは https:// で始まる必要があり、サーバーごとに mcp_toolset をちょうど1つ指定します。対応しているのはツール呼び出しだけで、リソースやプロンプトは対象外です。新しいベータヘッダー mcp-client-2026-09-15 ではツール一覧の固定(pinning)も使えます。
OpenAI Responses API:
import os
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="YOUR_MODEL",
input="What tools do you have?",
tools=[{
"type": "mcp",
"server_label": "my_server",
"server_url": "https://your-server.example.com/mcp",
"authorization": os.environ["MCP_TOKEN"],
"require_approval": "never",
"allowed_tools": ["search_docs"],
}],
)
authorization はAPI側に保存されないので、毎回送ります。既定ではツール実行前に承認が必要で、allowed_tools で取り込むツールを絞れます。どちらのAPIもトークン欄はOAuthのアクセストークンとして説明されているため、固定のBearerキーを使うサーバーでは、本番前に自分のサーバーで動作を確かめてください。完全に自作のエージェントなら、公式SDKのStreamable HTTPクライアントで任意のヘッダーを付けられます。TypeScriptの例は「MCPホスティング2026」に載せています。
4. APIキーかOAuthか:クライアント別の対応
サーバーが提供する認証方式で、使えるクライアントが決まります。開発ツールにはAPIキーが手早く、チャットアプリまで届かせるにはOAuthが必要です。
| サーバーが受け付ける認証 | そのまま使えるクライアント | 回避策が必要なクライアント |
|---|---|---|
| BearerのAPIキーのみ | Claude Code、Cursor、VS Code、Codex、Gemini CLI | Claudeのコネクタ(リクエストヘッダーのベータか、デスクトップでmcp-remote)、ChatGPT(ヘッダー欄の記載なし) |
| 自動検出つきのOAuth | 9クライアントすべて | なし |
| 両方 | 9クライアントすべて(各自が対応する方式を使う) | なし |
1つのサーバーをどこからでも使いたいなら、OAuthを用意し、APIキーはスクリプトやIDE用に残すのが現実的です。
5. 自分のPCか事業者クラウドか:リクエストの発信元
localhost、VPN内のアドレス、IP許可リストが通るかどうかは、クライアントがどこからアクセスするかで決まります。「Cursorでは動くのにClaudeやChatGPTでは動かない」という相談の多くはこれが原因です。
| 発信元 | クライアント | サーバー側への影響 |
|---|---|---|
| 自分のPC | Claude Code、Cursor、VS Code、Codex、Gemini CLI、mcp-remote | localhost やVPN内のURLでも動く。IP許可リストには自分のIPを入れる |
| Anthropicのクラウド | Claudeのカスタムコネクタ、Claude APIのMCPコネクタ | 公開HTTPSが必須。Anthropicは「AnthropicのIPレンジから公開インターネット経由で到達できること」を求めている |
| OpenAIのクラウド | ChatGPT開発者モード、Responses API | OpenAIから到達できる必要あり。非公開サーバー向けに server_url の代わりの tunnel_id(Secure MCP Tunnel)が用意されている |
Anthropicも、社内ネットワーク内のサーバー向けにMCPトンネルのドキュメントを案内しています。
6. クライアント設定の前にエンドポイントを1回だけテストする
9つのクライアントを設定する前に、URLとキーが正しいかを1回のリクエストで確かめます。クライアントのエラー表示はあいまいですが、HTTPステータスコードははっきりしています。
curl -i -X POST https://your-server.example.com/mcp \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| 応答 | 意味 |
|---|---|
| 200でJSON-RPCの結果が返る | URLとキーは正常。残る問題はクライアント側の設定 |
| 400でJSON-RPCのエラー本文が返る | 認証は通過し、サーバーも応答している。旧世代のプロトコルで、先に initialize が必要な可能性が高い |
| 401 / 403 | キーがない、形式が違う(Bearer がない)、または権限がない |
| 404 | パスの誤り(/mcp ではなく / を指しているなど) |
| タイムアウト・接続拒否 | 公開されていない、またはサーバーが起動中 |
プロトコルまで含めて確認するなら、「stdio MCPサーバーをリモートで動かす方法」で紹介したMCP Inspectorを使います。
7. チェックリスト
- [ ] エンドポイントが公開HTTPSで、サーバーが実際に待ち受けるパス(多くは
/mcp)になっている - [ ]
curl1回で401・404・タイムアウト以外が返る - [ ] Claude CodeとVS Codeの設定に
"type": "http"がある - [ ] Gemini CLIは
urlではなくhttpUrlを使っている - [ ] Codexの
bearer_token_env_varにはキーではなく変数名が入っている - [ ] キーは環境変数か入力プロンプトから渡し、コミットするファイルに書いていない
- [ ] サーバーが求める場合、ヘッダーの値に
Bearerが含まれている - [ ] ClaudeやChatGPTには、それぞれが対応する認証方式(OAuthかリクエストヘッダー)を用意した
- [ ] クラウド側から来るクライアントのため、IP許可リストに事業者のレンジを入れた
- [ ] 起動タイムアウトがホスティング先のコールドスタートより長い(Codexは既定10秒)
8. トラブル対処(症状→原因→対処)
| 症状 | 原因 | 対処 |
|---|---|---|
| Claude CodeでURLの設定が設定エラーになる | type のない url はstdioとして読まれる |
"type": "http" を追加 |
| 変数は設定済みなのにClaude Codeで401 | ANTHROPIC_AUTH_TOKEN などはヘッダー内で空に展開される |
自分で名付けた変数にコピーして使う |
| Gemini CLIで接続はするがツールが出ない | url を使ったためSSEとして扱われている |
httpUrl を使うか gemini mcp add --transport http で追加 |
| Claudeのコネクタで正しいキーなのに401 | 値に Bearer を付けずに入力した |
Bearer your-key と正確に入力 |
| Claudeのコネクタでキーの変更場所がない | 認証設定は追加後に変更できない | コネクタを削除して追加し直す |
| Cursorでは動くがClaudeやChatGPTから届かない | URLがlocalhost・社内・IP制限つき | 公開URLにする、事業者のIPレンジを許可する、またはトンネルを使う |
| ChatGPTにAPIキーを入れる欄がない | 開発者モードの認証はOAuth・認証なし・混合のみ | サーバーにOAuthを追加 |
| Cursorが空のトークンを送る | ${env:...} の変数がCursorから見えない。リモートでは envFile 不可 |
シェルのプロファイルかシステム環境変数に設定し、Cursorを再起動 |
| Codexの初回で「startup timed out」 | 既定10秒がコールドスタートより短い | startup_timeout_sec を延ばす |
| CodexがAuthorizationヘッダーを送らない | bearer_token_env_var にキーそのものを書いた |
変数名を書く |
| Windowsのmcp-remoteでヘッダーが無視・分割される | args 内のスペースがエスケープされない |
Authorization:${AUTH_HEADER} とし、Bearer … は env に入れる |
| VS CodeのサーバーがCopilotのハーネスセッションに出ない | ${input:...} が必要なサーバーは引き継がれない |
そのセッション用に対話不要の認証情報を使う |
| Claude Codeで大きなツール結果が切れる | 既定で2万5,000トークンが上限 | MAX_MCP_OUTPUT_TOKENS を上げるか、結果を小さくする |
NodeFlareならこう解決できる
NodeFlareは、GitHub上のMCPサーバー(stdio専用のものも含む)を、認証つきのHTTPSエンドポイントとしてデプロイするMCPホスティングサービスです。この記事で挙げたクライアント側の課題に、次のように対応します。
| この記事の課題 | NodeFlareでの対応 |
|---|---|
| どのクライアントにも安定した公開URLが1つ必要 | サーバーごとに https://<your-server>.nodeflare.tech/mcp を発行。Pro以上はCNAMEでカスタムドメインを使え、TLSは自動発行 |
SSEを使うクライアントや設定が残っている(Geminiの url、/sse のURL、古いブリッジ) |
同じサーバーでStreamable HTTPと旧HTTP+SSE(2024-11-05)の両方に対応 |
| IDEやCLIはBearerのAPIキーで使いたい | mcp_* 形式のAPIキーを Authorization: Bearer <キー> で送るだけ |
| ChatGPTやClaudeのコネクタはOAuthが前提 | OAuthのアクセストークンに対応し、RFC 8414とRFC 9728に沿った自動検出が可能 |
初回接続での起動タイムアウト(Codexの10秒、MCP_TIMEOUT) |
スケールtoゼロで停止したサーバーをスナップショットから1秒未満で復元。Pro以上のAlways-Onなら常に1台を待機させられる |
| 「Cursorでは動くがClaudeでは動かない。どのリクエストが失敗した?」 | リクエストごとのログに user_agent、caller_kind(api_key・oauth・anonymous)、http_status、outcome、duration_ms を記録し、クライアントIPでも検索可能 |
| IP許可リストがクラウド側のクライアントを止めてしまう | 送信元IPの許可リスト(IPv4・IPv6のCIDR)をプロキシで適用でき、許可するレンジを自分で正確に決められる |
料金は、Freeプランが0円でMCPサーバー1つ・月30 GB時間のコンピュート、Proが月2,980円でサーバー数無制限・300 GB時間込みです。コンピュートはサーバーが動いている間だけ課金されます。
最小の始め方:
- nodeflare.techにサインインし、MCPサーバーのGitHubリポジトリを選ぶ。
- 環境変数を入れてデプロイし、
/mcpのURLとAPIキーを控える。 - 3章のクライアント別の設定に貼り付ける。
1サーバーまで無料で試せます → nodeflare.tech
よくある質問
Claude CodeにリモートMCPサーバーを追加するには?
claude mcp add --transport http <名前> <URL> --header "Authorization: Bearer <キー>" を実行します。.mcp.json に書く場合は "type": "http"、url、必要に応じて headers を指定します。type がないとstdioサーバーとして扱われます。OAuthのサーバーはClaude Code内で /mcp を使います。
CursorにリモートMCPサーバーを追加するには?
.cursor/mcp.json か ~/.cursor/mcp.json の mcpServers に、url と必要なら headers を書きます。キーは ${env:NAME} で参照します。リモートサーバーでは envFile が使えないため、変数はシステムかシェルの環境に設定します。
VS CodeにMCPサーバーのURLを追加するには?
.vscode/mcp.json を作り、最上位の servers に "type": "http" と url を持つ設定を書きます。キーは inputs に promptString 型(password: true)で定義し、${input:id} で参照します。VS CodeはまずStreamable HTTPを試し、だめならSSEに切り替えます。
ClaudeのカスタムコネクタでAPIキーは使える?
組織でリクエストヘッダーのベータが有効な場合に限り使えます。Authorization: Bearer <キー> などのヘッダーを最大4つ保存できます。使えない場合は、サーバーにOAuthを追加するか、Claude Desktopでmcp-remoteに --header を付けてローカルで中継します。
ChatGPTから独自のMCPサーバーにつなげる?
つなげます。Web版のPro・Plus・Business・Enterprise・Educationアカウントで開発者モードを使います。設定 → アプリ → 詳細設定で有効にし、「アプリを作成」からサーバーURLを入力します。認証はOAuth・認証なし・混合で、固定のAPIキーヘッダーは記載がありません。
Gemini CLIのurlとhttpUrlの違いは?
Gemini CLIでは、httpUrl がStreamable HTTPのエンドポイント、url がSSEのエンドポイントです。Streamable HTTPのサーバーを url で指定すると、ツールが読み込まれない原因になります。gemini mcp add --transport http を使えば httpUrl で書かれます。
CodexにリモートMCPサーバーを追加するには?
config.toml に [mcp_servers.<名前>] と url を書き、bearer_token_env_var にキーを入れた環境変数の名前を指定します。OAuthのサーバーは codex mcp login <名前> を使い、初回接続が遅い場合は startup_timeout_sec(既定10秒)を延ばします。
localhostのMCPサーバーにClaudeからつながらないのはなぜ?
Claudeのカスタムコネクタは、ChatGPTや両社のAPIと同じく、あなたのPCではなく事業者のクラウドから接続するためです。そこから localhost や社内のURLには届きません。公開HTTPSのURLにデプロイするか、事業者のトンネル機能を使うか、Claude CodeやCursorのようなローカルのクライアントを使います。
2026年でもmcp-remoteは必要?
ほとんど不要です。Claude Code・Cursor・VS Code・Codex・Gemini CLI・Claudeのコネクタは、いずれもリモートサーバーに直接つなげます。ローカルのコマンドしか起動できないクライアントを使う場合や、Claude Desktopで固定ヘッダーが必要なのに組織でリクエストヘッダーのベータが使えない場合には、今も役立ちます。
Claude APIやOpenAI APIからリモートMCPサーバーを呼ぶには?
Claude APIでは、mcp_servers(type url、https:// のURL、名前、任意の authorization_token)を渡し、mcp_toolset のツールと mcp-client-2025-11-20 のベータを指定します。OpenAI Responses APIでは、type mcp のツールに server_label・server_url・authorization を指定し、毎回送ります。
まとめ
MCPサーバーをホスティングした後の接続は設定の問題で、失敗の多くは5つの小さな違いから起きます。URLのキー名(url・httpUrl・server_url)、環境変数の書き方、"type": "http" の要否、固定APIキーに対応しているか、リクエストが自分のPCから来るか事業者のクラウドから来るか、です。まず curl でURLを1回確かめ、3章の該当する設定をコピーしてください。IDEとチャットアプリの両方から使いたいなら、APIキーとOAuthの両方を用意しておくのが近道です。
参考資料
- MCP仕様 2026-07-28:Transports
- Claude Code:MCPでツールに接続する
- Claude:ディレクトリにないコネクタを追加する
- Claudeヘルプセンター:リモートMCPのカスタムコネクタ
- Cursor:Model Context Protocol
- VS Code:MCP configuration reference
- OpenAI:ChatGPT開発者モード
- OpenAI:CodexのMCP設定
- Gemini CLI:MCP servers
- Claude API:MCPコネクタ
- OpenAI:Responses APIのリモートMCP
- mcp-remote(GitHub)
