Konektor MCP
Fitur konektor Model Context Protocol (MCP) Claude memungkinkan Anda terhubung ke server MCP jarak jauh langsung dari Messages API tanpa klien MCP terpisah.
Fitur ini memerlukan header beta: "anthropic-beta": "mcp-client-2025-04-04"
Fitur utama
- Integrasi API langsung: Terhubung ke server MCP tanpa mengimplementasikan klien MCP
- Dukungan pemanggilan tool: Akses tool MCP melalui Messages API
- Autentikasi OAuth: Dukungan untuk token Bearer OAuth untuk server yang diautentikasi
- Multiple server: Terhubung ke beberapa server MCP dalam satu permintaan
Keterbatasan
- Dari set fitur spesifikasi MCP, hanya pemanggilan tool yang saat ini didukung.
- Server harus diekspos secara publik melalui HTTP (mendukung transport Streamable HTTP dan SSE). Server STDIO lokal tidak dapat terhubung secara langsung.
- Konektor MCP saat ini tidak didukung di Amazon Bedrock dan Google Vertex.
Menggunakan konektor MCP di Messages API
Untuk terhubung ke server MCP jarak jauh, sertakan parameter mcp_servers dalam permintaan Messages API Anda:
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"]
)Konfigurasi server MCP
Setiap server MCP dalam array mcp_servers mendukung konfigurasi berikut:
{
"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"
}Deskripsi field
| Property | Type | Required | Description |
|---|---|---|---|
type | string | Ya | Saat ini hanya "url" yang didukung |
url | string | Ya | URL server MCP. Harus dimulai dengan https:// |
name | string | Ya | Pengenal unik untuk server MCP ini. Ini akan digunakan dalam blok mcp_tool_call untuk mengidentifikasi server dan untuk membedakan tool kepada model. |
tool_configuration | object | Tidak | Konfigurasi penggunaan tool |
tool_configuration.enabled | boolean | Tidak | Apakah mengaktifkan tool dari server ini (default: true) |
tool_configuration.allowed_tools | array | Tidak | Daftar untuk membatasi tool yang diizinkan (secara default, semua tool diizinkan) |
authorization_token | string | Tidak | Token otorisasi OAuth jika diperlukan oleh server MCP. Lihat spesifikasi MCP. |
Jenis konten respons
Ketika Claude menggunakan tool MCP, respons akan menyertakan dua jenis blok konten baru:
Blok Penggunaan Tool MCP
{
"type": "mcp_tool_use",
"id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"name": "echo",
"server_name": "example-mcp",
"input": { "param1": "value1", "param2": "value2" }
}Blok Hasil Tool MCP
{
"type": "mcp_tool_result",
"tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"is_error": false,
"content": [
{
"type": "text",
"text": "Hello"
}
]
}Multiple server MCP
Anda dapat terhubung ke beberapa server MCP dengan menyertakan beberapa objek dalam array mcp_servers:
{
"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"
}
]
}Autentikasi
Untuk server MCP yang memerlukan autentikasi OAuth, Anda perlu memperoleh access token. Beta konektor MCP mendukung passing parameter authorization_token dalam definisi server MCP.
Konsumen API diharapkan menangani alur OAuth dan memperoleh access token sebelum melakukan panggilan API, serta menyegarkan token sesuai kebutuhan.
Memperoleh access token untuk pengujian
Inspector MCP dapat memandu Anda melalui proses memperoleh access token untuk tujuan pengujian.
-
Jalankan inspector dengan perintah berikut. Anda perlu Node.js terinstal di mesin Anda.
npx @modelcontextprotocol/inspector -
Di sidebar sebelah kiri, untuk "Transport type", pilih "SSE" atau "Streamable HTTP".
-
Masukkan URL server MCP.
-
Di area kanan, klik tombol "Open Auth Settings" setelah "Need to configure authentication?".
-
Klik "Quick OAuth Flow" dan otorisasi di layar OAuth.
-
Ikuti langkah-langkah di bagian "OAuth Flow Progress" inspector dan klik "Continue" hingga Anda mencapai "Authentication complete".
-
Salin nilai
access_token. -
Tempelkan ke field
authorization_tokendalam konfigurasi server MCP Anda.
Menggunakan access token
Setelah Anda memperoleh access token menggunakan salah satu alur OAuth di atas, Anda dapat menggunakannya dalam konfigurasi server MCP Anda:
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "authenticated-server",
"authorization_token": "YOUR_ACCESS_TOKEN_HERE"
}
]
}Untuk penjelasan detail tentang alur OAuth, rujuk ke bagian Authorization dalam spesifikasi MCP.