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 dalam 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-20250514",
    "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"
      }
    ]
  }'

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

PropertyTypeRequiredDescription
typestringYaSaat ini hanya “url” yang didukung
urlstringYaURL dari server MCP. Harus dimulai dengan https://
namestringYaPengenal unik untuk server MCP ini. Akan digunakan dalam blok mcp_tool_call untuk mengidentifikasi server dan untuk membedakan tool kepada model.
tool_configurationobjectTidakKonfigurasi penggunaan tool
tool_configuration.enabledbooleanTidakApakah mengaktifkan tool dari server ini (default: true)
tool_configuration.allowed_toolsarrayTidakDaftar untuk membatasi tool yang diizinkan (secara default, semua tool diizinkan)
authorization_tokenstringTidakToken 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-20250514",
  "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 mendapatkan access token. Beta konektor MCP mendukung pengiriman parameter authorization_token dalam definisi server MCP. Konsumen API diharapkan menangani alur OAuth dan mendapatkan access token sebelum melakukan panggilan API, serta menyegarkan token sesuai kebutuhan.

Mendapatkan access token untuk pengujian

Inspector MCP dapat memandu Anda melalui proses mendapatkan access token untuk tujuan pengujian.

  1. Jalankan inspector dengan perintah berikut. Anda memerlukan Node.js yang terinstal di mesin Anda.

    npx @modelcontextprotocol/inspector
    
  2. Di sidebar sebelah kiri, untuk “Transport type”, pilih “SSE” atau “Streamable HTTP”.

  3. Masukkan URL server MCP.

  4. Di area kanan, klik tombol “Open Auth Settings” setelah “Need to configure authentication?”.

  5. Klik “Quick OAuth Flow” dan otorisasi di layar OAuth.

  6. Ikuti langkah-langkah di bagian “OAuth Flow Progress” dari inspector dan klik “Continue” hingga Anda mencapai “Authentication complete”.

  7. Salin nilai access_token.

  8. Tempelkan ke dalam field authorization_token dalam konfigurasi server MCP Anda.

Menggunakan access token

Setelah Anda mendapatkan 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.