MCPコネクタ
ClaudeのModel Context Protocol(MCP)コネクタ機能により、別途MCPクライアントを使用することなく、Messages APIから直接リモートMCPサーバーに接続できます。
この機能にはベータヘッダーが必要です:"anthropic-beta": "mcp-client-2025-04-04"
主な機能
- 直接API統合:MCPクライアントを実装することなくMCPサーバーに接続
- ツール呼び出しサポート:Messages APIを通じてMCPツールにアクセス
- OAuth認証:認証されたサーバー用のOAuth Bearerトークンをサポート
- 複数サーバー:単一のリクエストで複数のMCPサーバーに接続
制限事項
- MCP仕様の機能セットのうち、現在はツール呼び出しのみがサポートされています。
- サーバーはHTTPを通じて公開されている必要があります(Streamable HTTPとSSEトランスポートの両方をサポート)。ローカルSTDIOサーバーには直接接続できません。
- MCPコネクタは現在Amazon BedrockとGoogle Vertexではサポートされていません。
Messages APIでのMCPコネクタの使用
リモートMCPサーバーに接続するには、Messages APIリクエストにmcp_serversパラメータを含めます:
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-04-04" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "What tools do you have available?"}],
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}
]
}'import { Anthropic } from '@anthropic-ai/sdk';
const anthropic = new Anthropic();
const response = await anthropic.beta.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 1000,
messages: [
{
role: "user",
content: "What tools do you have available?",
},
],
mcp_servers: [
{
type: "url",
url: "https://example-server.modelcontextprotocol.io/sse",
name: "example-mcp",
authorization_token: "YOUR_TOKEN",
},
],
betas: ["mcp-client-2025-04-04"],
});import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=1000,
messages=[{
"role": "user",
"content": "What tools do you have available?"
}],
mcp_servers=[{
"type": "url",
"url": "https://mcp.example.com/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}],
betas=["mcp-client-2025-04-04"]
)MCPサーバー設定
mcp_servers配列内の各MCPサーバーは以下の設定をサポートします:
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"tool_configuration": {
"enabled": true,
"allowed_tools": ["example_tool_1", "example_tool_2"]
},
"authorization_token": "YOUR_TOKEN"
}フィールドの説明
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
type | string | はい | 現在は"url"のみがサポートされています |
url | string | はい | MCPサーバーのURL。https://で始まる必要があります |
name | string | はい | このMCPサーバーの一意の識別子。mcp_tool_callブロックでサーバーを識別し、モデルに対してツールを区別するために使用されます。 |
tool_configuration | object | いいえ | ツール使用を設定 |
tool_configuration.enabled | boolean | いいえ | このサーバーからのツールを有効にするかどうか(デフォルト:true) |
tool_configuration.allowed_tools | array | いいえ | 許可するツールを制限するリスト(デフォルトでは、すべてのツールが許可されます) |
authorization_token | string | いいえ | MCPサーバーで必要な場合のOAuth認証トークン。MCP仕様を参照してください。 |
レスポンスコンテンツタイプ
ClaudeがMCPツールを使用する場合、レスポンスには2つの新しいコンテンツブロックタイプが含まれます:
MCPツール使用ブロック
{
"type": "mcp_tool_use",
"id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"name": "echo",
"server_name": "example-mcp",
"input": { "param1": "value1", "param2": "value2" }
}MCPツール結果ブロック
{
"type": "mcp_tool_result",
"tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"is_error": false,
"content": [
{
"type": "text",
"text": "Hello"
}
]
}複数のMCPサーバー
mcp_servers配列に複数のオブジェクトを含めることで、複数のMCPサーバーに接続できます:
{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [
{
"role": "user",
"content": "Use tools from both mcp-server-1 and mcp-server-2 to complete this task"
}
],
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.example1.com/sse",
"name": "mcp-server-1",
"authorization_token": "TOKEN1"
},
{
"type": "url",
"url": "https://mcp.example2.com/sse",
"name": "mcp-server-2",
"authorization_token": "TOKEN2"
}
]
}認証
OAuth認証が必要なMCPサーバーの場合、アクセストークンを取得する必要があります。MCPコネクタベータは、MCPサーバー定義でauthorization_tokenパラメータを渡すことをサポートしています。
API利用者は、API呼び出しを行う前にOAuthフローを処理してアクセストークンを取得し、必要に応じてトークンを更新することが期待されています。
テスト用のアクセストークンの取得
MCPインスペクターは、テスト目的でアクセストークンを取得するプロセスをガイドできます。
-
以下のコマンドでインスペクターを実行します。マシンにNode.jsがインストールされている必要があります。
npx @modelcontextprotocol/inspector -
左側のサイドバーで、「Transport type」に対して「SSE」または「Streamable HTTP」のいずれかを選択します。
-
MCPサーバーのURLを入力します。
-
右側のエリアで、「Need to configure authentication?」の後にある「Open Auth Settings」ボタンをクリックします。
-
「Quick OAuth Flow」をクリックし、OAuth画面で認証します。
-
インスペクターの「OAuth Flow Progress」セクションの手順に従い、「Authentication complete」に到達するまで「Continue」をクリックします。
-
access_tokenの値をコピーします。 -
MCPサーバー設定の
authorization_tokenフィールドに貼り付けます。
アクセストークンの使用
上記のOAuthフローのいずれかを使用してアクセストークンを取得したら、MCPサーバー設定で使用できます:
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "authenticated-server",
"authorization_token": "YOUR_ACCESS_TOKEN_HERE"
}
]
}OAuthフローの詳細な説明については、MCP仕様の認証セクションを参照してください。