Loading...
    • Panduan Pengembang
    • Referensi API
    • MCP
    • Sumber daya
    • Catatan rilis
    Search...
    ⌘K
    Langkah pertama
    Pengenalan ClaudeMulai cepat
    Model & harga
    Ikhtisar modelMemilih modelYang baru di Claude 4.6Panduan migrasiPenghentian modelHarga
    Bangun dengan Claude
    Ikhtisar fiturMenggunakan Messages APIMenangani alasan berhentiPraktik terbaik prompting
    Manajemen konteks
    Jendela konteksKompresiPengeditan konteks
    Kemampuan
    Caching promptPemikiran diperpanjangPemikiran adaptifUpayaStreaming pesanPemrosesan batchKutipanDukungan multibahasaPenghitungan tokenEmbeddingsVisiDukungan PDFFiles APIHasil pencarianOutput terstruktur
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatStreaming alat berbutir halusAlat BashAlat eksekusi kodePemanggilan alat terprogramAlat penggunaan komputerAlat editor teksAlat pengambilan webAlat pencarian webAlat memoriAlat pencarian alat
    Keterampilan Agen
    IkhtisarMulai cepatPraktik terbaikKeterampilan untuk perusahaanMenggunakan Keterampilan dengan API
    Agent SDK
    IkhtisarMulai cepatTypeScript SDKTypeScript V2 (pratinjau)Python SDKPanduan migrasi
    Input streamingStreaming respons secara real-timeMenangani alasan berhentiMenangani izinPersetujuan pengguna dan inputKontrol eksekusi dengan hookManajemen sesiCheckpointing fileOutput terstruktur di SDKHosting Agent SDKPenyebaran agen AI dengan amanMemodifikasi prompt sistemMCP di SDKAlat kustomSubagen di SDKPerintah garis miring di SDKKeterampilan agen di SDKPelacakan biaya dan penggunaanDaftar tugasPlugin di SDK
    MCP di API
    Konektor MCPServer MCP jarak jauh
    Claude di platform pihak ketiga
    Amazon BedrockMicrosoft FoundryVertex AI
    Rekayasa prompt
    IkhtisarGenerator promptGunakan template promptPenyempurna promptJadilah jelas dan langsungGunakan contoh (prompting multishot)Biarkan Claude berpikir (CoT)Gunakan tag XMLBerikan Claude peran (prompt sistem)Rantai prompt kompleksTips konteks panjangTips pemikiran diperpanjang
    Uji & evaluasi
    Tentukan kriteria kesuksesanKembangkan kasus ujiMenggunakan alat evaluasiMengurangi latensi
    Perkuat penjaga
    Kurangi halusinasiTingkatkan konsistensi outputMitigasi jailbreakStreaming penolakanKurangi kebocoran promptJaga Claude tetap dalam karakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIResidensi dataRuang kerjaAPI penggunaan dan biayaClaude Code Analytics APIRetensi data nol
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Panduan

    Terhubung ke alat eksternal dengan MCP

    Konfigurasi server MCP untuk memperluas agen Anda dengan alat eksternal. Mencakup jenis transport, pencarian alat untuk set alat besar, autentikasi, dan penanganan kesalahan.

    Model Context Protocol (MCP) adalah standar terbuka untuk menghubungkan agen AI ke alat dan sumber data eksternal. Dengan MCP, agen Anda dapat menanyakan database, mengintegrasikan dengan API seperti Slack dan GitHub, dan terhubung ke layanan lain tanpa menulis implementasi alat khusus.

    Server MCP dapat berjalan sebagai proses lokal, terhubung melalui HTTP, atau dieksekusi langsung dalam aplikasi SDK Anda.

    Quickstart

    Contoh ini terhubung ke server MCP dokumentasi Claude Code menggunakan transport HTTP dan menggunakan allowedTools dengan wildcard untuk mengizinkan semua alat dari server.

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "Use the docs MCP server to explain what hooks are in Claude Code",
      options: {
        mcpServers: {
          "claude-code-docs": {
            type: "http",
            url: "https://code.claude.com/docs/mcp"
          }
        },
        allowedTools: ["mcp__claude-code-docs__*"]
      }
    })) {
      if (message.type === "result" && message.subtype === "success") {
        console.log(message.result);
      }
    }

    Agen terhubung ke server dokumentasi, mencari informasi tentang hooks, dan mengembalikan hasilnya.

    Tambahkan server MCP

    Anda dapat mengonfigurasi server MCP dalam kode saat memanggil query(), atau dalam file .mcp.json yang dimuat SDK secara otomatis.

    Dalam kode

    Teruskan server MCP langsung dalam opsi mcpServers:

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "List files in my project",
      options: {
        mcpServers: {
          "filesystem": {
            command: "npx",
            args: ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
          }
        },
        allowedTools: ["mcp__filesystem__*"]
      }
    })) {
      if (message.type === "result" && message.subtype === "success") {
        console.log(message.result);
      }
    }

    Dari file konfigurasi

    Buat file .mcp.json di root proyek Anda. SDK memuat ini secara otomatis:

    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
        }
      }
    }

    Izinkan alat MCP

    Alat MCP memerlukan izin eksplisit sebelum Claude dapat menggunakannya. Tanpa izin, Claude akan melihat bahwa alat tersedia tetapi tidak akan dapat memanggilnya.

    Konvensi penamaan alat

    Alat MCP mengikuti pola penamaan mcp__<server-name>__<tool-name>. Misalnya, server GitHub bernama "github" dengan alat list_issues menjadi mcp__github__list_issues.

    Berikan akses dengan allowedTools

    Gunakan allowedTools untuk menentukan alat MCP mana yang dapat digunakan Claude:

    options: {
      mcpServers: { /* your servers */ },
      allowedTools: [
        "mcp__github__*",              // All tools from the github server
        "mcp__db__query",              // Only the query tool from db server
        "mcp__slack__send_message"     // Only send_message from slack server
      ]
    }

    Wildcard (*) memungkinkan Anda mengizinkan semua alat dari server tanpa mencantumkan masing-masing secara individual.

    Alternatif: Ubah mode izin

    Alih-alih mencantumkan alat yang diizinkan, Anda dapat mengubah mode izin untuk memberikan akses yang lebih luas:

    • permissionMode: "acceptEdits": Secara otomatis menyetujui penggunaan alat (masih meminta operasi destruktif)
    • permissionMode: "bypassPermissions": Melewati semua prompt keamanan, termasuk operasi destruktif seperti penghapusan file atau menjalankan perintah shell. Gunakan dengan hati-hati, terutama dalam produksi. Mode ini menyebar ke subagen yang dihasilkan oleh alat Task.
    options: {
      mcpServers: { /* your servers */ },
      permissionMode: "acceptEdits"  // No need for allowedTools
    }

    Lihat Permissions untuk detail lebih lanjut tentang mode izin.

    Temukan alat yang tersedia

    Untuk melihat alat apa yang disediakan server MCP, periksa dokumentasi server atau terhubung ke server dan periksa pesan init system:

    for await (const message of query({ prompt: "...", options })) {
      if (message.type === "system" && message.subtype === "init") {
        console.log("Available MCP tools:", message.mcp_servers);
      }
    }

    Jenis transport

    Server MCP berkomunikasi dengan agen Anda menggunakan protokol transport yang berbeda. Periksa dokumentasi server untuk melihat transport mana yang didukungnya:

    • Jika dokumen memberi Anda perintah untuk dijalankan (seperti npx @modelcontextprotocol/server-github), gunakan stdio
    • Jika dokumen memberi Anda URL, gunakan HTTP atau SSE
    • Jika Anda membangun alat Anda sendiri dalam kode, gunakan server MCP SDK

    Server stdio

    Proses lokal yang berkomunikasi melalui stdin/stdout. Gunakan ini untuk server MCP yang Anda jalankan di mesin yang sama:

    Server HTTP/SSE

    Gunakan HTTP atau SSE untuk server MCP yang dihosting cloud dan API jarak jauh:

    Untuk HTTP (non-streaming), gunakan "type": "http" sebagai gantinya.

    Server MCP SDK

    Tentukan alat khusus langsung dalam kode aplikasi Anda alih-alih menjalankan proses server terpisah. Lihat panduan alat khusus untuk detail implementasi.

    Pencarian alat MCP

    Ketika Anda memiliki banyak alat MCP yang dikonfigurasi, definisi alat dapat mengonsumsi bagian signifikan dari jendela konteks Anda. Pencarian alat MCP menyelesaikan ini dengan memuat alat secara dinamis sesuai permintaan alih-alih memuat semuanya sebelumnya.

    Cara kerjanya

    Pencarian alat berjalan dalam mode otomatis secara default. Ini diaktifkan ketika deskripsi alat MCP Anda akan mengonsumsi lebih dari 10% dari jendela konteks. Ketika dipicu:

    1. Alat MCP ditandai dengan defer_loading: true daripada dimuat ke konteks sebelumnya
    2. Claude menggunakan alat pencarian untuk menemukan alat MCP yang relevan saat diperlukan
    3. Hanya alat yang benar-benar dibutuhkan Claude yang dimuat ke dalam konteks

    Pencarian alat memerlukan model yang mendukung blok tool_reference: Sonnet 4 dan yang lebih baru, atau Opus 4 dan yang lebih baru. Model Haiku tidak mendukung pencarian alat.

    Konfigurasi pencarian alat

    Kontrol perilaku pencarian alat dengan variabel lingkungan ENABLE_TOOL_SEARCH:

    NilaiPerilaku
    autoDiaktifkan ketika alat MCP melebihi 10% konteks (default)
    auto:5Diaktifkan pada ambang 5% (sesuaikan persentasenya)
    trueSelalu diaktifkan
    falseDinonaktifkan, semua alat MCP dimuat sebelumnya

    Atur nilai dalam opsi env:

    const options = {
      mcpServers: { /* your MCP servers */ },
      env: {
        ENABLE_TOOL_SEARCH: "auto:5"  // Enable at 5% threshold
      }
    };

    Autentikasi

    Sebagian besar server MCP memerlukan autentikasi untuk mengakses layanan eksternal. Teruskan kredensial melalui variabel lingkungan dalam konfigurasi server.

    Teruskan kredensial melalui variabel lingkungan

    Gunakan bidang env untuk meneruskan kunci API, token, dan kredensial lainnya ke server MCP:

    Lihat Daftar masalah dari repositori untuk contoh kerja lengkap dengan logging debug.

    Header HTTP untuk server jarak jauh

    Untuk server HTTP dan SSE, teruskan header autentikasi langsung dalam konfigurasi server:

    Autentikasi OAuth2

    Spesifikasi MCP mendukung OAuth 2.1 untuk otorisasi. SDK tidak menangani alur OAuth secara otomatis, tetapi Anda dapat meneruskan token akses melalui header setelah menyelesaikan alur OAuth dalam aplikasi Anda:

    // After completing OAuth flow in your app
    const accessToken = await getAccessTokenFromOAuthFlow();
    
    const options = {
      mcpServers: {
        "oauth-api": {
          type: "http",
          url: "https://api.example.com/mcp",
          headers: {
            Authorization: `Bearer ${accessToken}`
          }
        }
      },
      allowedTools: ["mcp__oauth-api__*"]
    };

    Contoh

    Daftar masalah dari repositori

    Contoh ini terhubung ke server MCP GitHub untuk mencantumkan masalah terbaru. Contoh ini mencakup logging debug untuk memverifikasi koneksi MCP dan panggilan alat.

    Sebelum menjalankan, buat token akses pribadi GitHub dengan cakupan repo dan atur sebagai variabel lingkungan:

    export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "List the 3 most recent issues in anthropics/claude-code",
      options: {
        mcpServers: {
          "github": {
            command: "npx",
            args: ["-y", "@modelcontextprotocol/server-github"],
            env: {
              GITHUB_TOKEN: process.env.GITHUB_TOKEN
            }
          }
        },
        allowedTools: ["mcp__github__list_issues"]
      }
    })) {
      // Verify MCP server connected successfully
      if (message.type === "system" && message.subtype === "init") {
        console.log("MCP servers:", message.mcp_servers);
      }
    
      // Log when Claude calls an MCP tool
      if (message.type === "assistant") {
        for (const block of message.content) {
          if (block.type === "tool_use" && block.name.startsWith("mcp__")) {
            console.log("MCP tool called:", block.name);
          }
        }
      }
    
      // Print the final result
      if (message.type === "result" && message.subtype === "success") {
        console.log(message.result);
      }
    }

    Tanyakan database

    Contoh ini menggunakan server MCP Postgres untuk menanyakan database. String koneksi diteruskan sebagai argumen ke server. Agen secara otomatis menemukan skema database, menulis kueri SQL, dan mengembalikan hasilnya:

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    // Connection string from environment variable
    const connectionString = process.env.DATABASE_URL;
    
    for await (const message of query({
      // Natural language query - Claude writes the SQL
      prompt: "How many users signed up last week? Break it down by day.",
      options: {
        mcpServers: {
          "postgres": {
            command: "npx",
            // Pass connection string as argument to the server
            args: ["-y", "@modelcontextprotocol/server-postgres", connectionString]
          }
        },
        // Allow only read queries, not writes
        allowedTools: ["mcp__postgres__query"]
      }
    })) {
      if (message.type === "result" && message.subtype === "success") {
        console.log(message.result);
      }
    }

    Penanganan kesalahan

    Server MCP dapat gagal terhubung karena berbagai alasan: proses server mungkin tidak terinstal, kredensial mungkin tidak valid, atau server jarak jauh mungkin tidak dapat dijangkau.

    SDK mengirimkan pesan system dengan subtype init di awal setiap kueri. Pesan ini mencakup status koneksi untuk setiap server MCP. Periksa bidang status untuk mendeteksi kegagalan koneksi sebelum agen mulai bekerja:

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "Process data",
      options: {
        mcpServers: {
          "data-processor": dataServer
        }
      }
    })) {
      if (message.type === "system" && message.subtype === "init") {
        const failedServers = message.mcp_servers.filter(
          s => s.status !== "connected"
        );
    
        if (failedServers.length > 0) {
          console.warn("Failed to connect:", failedServers);
        }
      }
    
      if (message.type === "result" && message.subtype === "error_during_execution") {
        console.error("Execution failed");
      }
    }

    Pemecahan masalah

    Server menunjukkan status "failed"

    Periksa pesan init untuk melihat server mana yang gagal terhubung:

    if (message.type === "system" && message.subtype === "init") {
      for (const server of message.mcp_servers) {
        if (server.status === "failed") {
          console.error(`Server ${server.name} failed to connect`);
        }
      }
    }

    Penyebab umum:

    • Variabel lingkungan yang hilang: Pastikan token dan kredensial yang diperlukan diatur. Untuk server stdio, periksa bidang env cocok dengan apa yang diharapkan server.
    • Server tidak terinstal: Untuk perintah npx, verifikasi paket ada dan Node.js ada di PATH Anda.
    • String koneksi tidak valid: Untuk server database, verifikasi format string koneksi dan bahwa database dapat diakses.
    • Masalah jaringan: Untuk server HTTP/SSE jarak jauh, periksa URL dapat dijangkau dan firewall apa pun memungkinkan koneksi.

    Alat tidak dipanggil

    Jika Claude melihat alat tetapi tidak menggunakannya, periksa bahwa Anda telah memberikan izin dengan allowedTools atau dengan mengubah mode izin:

    options: {
      mcpServers: { /* your servers */ },
      allowedTools: ["mcp__servername__*"]  // Required for Claude to use the tools
    }

    Batas waktu koneksi

    SDK MCP memiliki batas waktu default 60 detik untuk koneksi server. Jika server Anda membutuhkan waktu lebih lama untuk memulai, koneksi akan gagal. Untuk server yang memerlukan waktu startup lebih lama, pertimbangkan:

    • Menggunakan server yang lebih ringan jika tersedia
    • Pra-pemanasan server sebelum memulai agen Anda
    • Memeriksa log server untuk penyebab inisialisasi lambat

    Sumber daya terkait

    • Panduan alat khusus: Bangun server MCP Anda sendiri yang berjalan dalam proses dengan aplikasi SDK Anda
    • Permissions: Kontrol alat MCP mana yang dapat digunakan agen Anda dengan allowedTools dan disallowedTools
    • Referensi SDK TypeScript: Referensi API lengkap termasuk opsi konfigurasi MCP
    • Referensi SDK Python: Referensi API lengkap termasuk opsi konfigurasi MCP
    • Direktori server MCP: Jelajahi server MCP yang tersedia untuk database, API, dan lainnya

    Was this page helpful?

    • Quickstart
    • Tambahkan server MCP
    • Dalam kode
    • Dari file konfigurasi
    • Izinkan alat MCP
    • Konvensi penamaan alat
    • Berikan akses dengan allowedTools
    • Alternatif: Ubah mode izin
    • Temukan alat yang tersedia
    • Jenis transport
    • Server stdio
    • Server HTTP/SSE
    • Server MCP SDK
    • Pencarian alat MCP
    • Cara kerjanya
    • Konfigurasi pencarian alat
    • Autentikasi
    • Teruskan kredensial melalui variabel lingkungan
    • Header HTTP untuk server jarak jauh
    • Autentikasi OAuth2
    • Contoh
    • Daftar masalah dari repositori
    • Tanyakan database
    • Penanganan kesalahan
    • Pemecahan masalah
    • Server menunjukkan status "failed"
    • Alat tidak dipanggil
    • Batas waktu koneksi
    • Sumber daya terkait