Claude Code dapat terhubung ke ratusan alat eksternal dan sumber data melalui Model Context Protocol (MCP), standar sumber terbuka untuk integrasi AI-alat. Server MCP memberikan Claude Code akses ke alat, database, dan API Anda.
Hubungkan server ketika Anda menemukan diri Anda menyalin data ke dalam chat dari alat lain, seperti pelacak masalah atau dasbor pemantauan. Setelah terhubung, Claude dapat membaca dan bertindak pada sistem tersebut secara langsung alih-alih bekerja dari apa yang Anda tempel.
Apa yang dapat Anda lakukan dengan MCP
Dengan server MCP yang terhubung, Anda dapat meminta Claude Code untuk:
Menerapkan fitur dari pelacak masalah: "Tambahkan fitur yang dijelaskan dalam masalah JIRA ENG-4521 dan buat PR di GitHub."
Menganalisis data pemantauan: "Periksa Sentry dan Statsig untuk memeriksa penggunaan fitur yang dijelaskan dalam ENG-4521."
Menanyakan database: "Temukan email 10 pengguna acak yang menggunakan fitur ENG-4521, berdasarkan database PostgreSQL kami."
Mengintegrasikan desain: "Perbarui template email standar kami berdasarkan desain Figma baru yang diposting di Slack"
Mengotomatisasi alur kerja: "Buat draf Gmail mengundang 10 pengguna ini ke sesi umpan balik tentang fitur baru."
Bereaksi terhadap peristiwa eksternal: Server MCP juga dapat bertindak sebagai saluran yang mendorong pesan ke dalam sesi Anda, sehingga Claude bereaksi terhadap pesan Telegram, obrolan Discord, atau peristiwa webhook saat Anda sedang pergi.
Server MCP populer
Berikut adalah beberapa server MCP yang umum digunakan yang dapat Anda hubungkan ke Claude Code:
Menginstal server MCP
Server MCP dapat dikonfigurasi dengan tiga cara berbeda tergantung pada kebutuhan Anda:
Opsi 1: Tambahkan server HTTP jarak jauh
Server HTTP adalah opsi yang direkomendasikan untuk terhubung ke server MCP jarak jauh. Ini adalah transport yang paling banyak didukung untuk layanan berbasis cloud.
# Sintaks dasar
claude mcp add --transport http <name><url># Contoh nyata: Hubungkan ke Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Contoh dengan token Bearer
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header"Authorization: Bearer your-token"
Opsi 2: Tambahkan server SSE jarak jauh
# Sintaks dasar
claude mcp add --transport sse <name><url># Contoh nyata: Hubungkan ke Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse
# Contoh dengan header autentikasi
claude mcp add --transport sse private-api https://api.company.com/sse \
--header"X-API-Key: your-key-here"
Opsi 3: Tambahkan server stdio lokal
Server stdio berjalan sebagai proses lokal di mesin Anda. Mereka ideal untuk alat yang memerlukan akses sistem langsung atau skrip khusus.
# Sintaks dasar
claude mcp add [options] <name> -- <command> [args...]
# Contoh nyata: Tambahkan server Airtable
claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
-- npx -y airtable-mcp-server
Mengelola server Anda
Setelah dikonfigurasi, Anda dapat mengelola server MCP Anda dengan perintah ini:
# Daftar semua server yang dikonfigurasi
claude mcp list
# Dapatkan detail untuk server tertentu
claude mcp get github
# Hapus server
claude mcp remove github
# (dalam Claude Code) Periksa status server
/mcp
Panel /mcp menampilkan jumlah alat di sebelah setiap server yang terhubung dan menandai server yang mengiklankan kemampuan alat tetapi tidak mengekspos alat apa pun.
Nama server workspace dicadangkan untuk penggunaan internal. Jika konfigurasi Anda menentukan server dengan nama tersebut, Claude Code melewatinya saat waktu muat dan menampilkan peringatan yang meminta Anda untuk mengganti namanya.
Pembaruan alat dinamis
Claude Code mendukung notifikasi list_changed MCP, memungkinkan server MCP untuk secara dinamis memperbarui alat, prompt, dan sumber daya yang tersedia tanpa memerlukan Anda untuk memutuskan dan menghubungkan kembali. Ketika server MCP mengirim notifikasi list_changed, Claude Code secara otomatis menyegarkan kemampuan yang tersedia dari server tersebut.
Koneksi ulang otomatis
Jika server HTTP atau SSE terputus di tengah sesi, Claude Code secara otomatis menghubungkan kembali dengan backoff eksponensial: hingga lima upaya, dimulai dengan penundaan satu detik dan berlipat ganda setiap kali. Server muncul sebagai tertunda dalam /mcp saat koneksi ulang sedang berlangsung. Setelah lima upaya gagal, server ditandai sebagai gagal dan Anda dapat mencoba lagi secara manual dari /mcp. Server stdio adalah proses lokal dan tidak dihubungkan kembali secara otomatis.
Backoff yang sama berlaku ketika server HTTP atau SSE gagal koneksi awalnya saat startup. Mulai dari v2.1.121, Claude Code mencoba ulang koneksi awal hingga tiga kali pada kesalahan transien seperti respons 5xx, koneksi ditolak, atau timeout, kemudian menandai server sebagai gagal jika masih tidak dapat terhubung. Kesalahan autentikasi dan not-found tidak dicoba ulang karena memerlukan perubahan konfigurasi untuk diselesaikan.
Dorong pesan dengan saluran
Server MCP juga dapat mendorong pesan langsung ke dalam sesi Anda sehingga Claude dapat bereaksi terhadap peristiwa eksternal seperti hasil CI, peringatan pemantauan, atau pesan obrolan. Untuk mengaktifkan ini, server Anda mendeklarasikan kemampuan claude/channel dan Anda memilihnya dengan flag --channels saat startup. Lihat Saluran untuk menggunakan saluran yang didukung secara resmi, atau Referensi saluran untuk membangun saluran Anda sendiri.
Server MCP yang disediakan plugin
Plugin dapat menggabungkan server MCP, secara otomatis menyediakan alat dan integrasi ketika plugin diaktifkan. Server MCP plugin bekerja identik dengan server yang dikonfigurasi pengguna.
Cara kerja server MCP plugin:
Plugin menentukan server MCP dalam .mcp.json di root plugin atau inline dalam plugin.json
Ketika plugin diaktifkan, server MCP-nya dimulai secara otomatis
Alat MCP plugin muncul bersama alat MCP yang dikonfigurasi secara manual
Server plugin dikelola melalui instalasi plugin (bukan perintah /mcp)
Siklus hidup otomatis: Pada startup sesi, server untuk plugin yang diaktifkan terhubung secara otomatis. Jika Anda mengaktifkan atau menonaktifkan plugin selama sesi, jalankan /reload-plugins untuk menghubungkan atau memutuskan server MCP-nya
Variabel lingkungan: gunakan ${CLAUDE_PLUGIN_ROOT} untuk file plugin bundel dan ${CLAUDE_PLUGIN_DATA} untuk status persisten yang bertahan pembaruan plugin
Akses lingkungan pengguna: Akses ke variabel lingkungan yang sama seperti server yang dikonfigurasi secara manual
Jenis transport berganda: Dukungan transport stdio, SSE, dan HTTP (dukungan transport dapat bervariasi menurut server)
Melihat server MCP plugin:
# Dalam Claude Code, lihat semua server MCP termasuk yang dari plugin
/mcp
Server plugin muncul dalam daftar dengan indikator yang menunjukkan mereka berasal dari plugin.
Manfaat server MCP plugin:
Distribusi bundel: Alat dan server dikemas bersama
Pengaturan otomatis: Tidak perlu konfigurasi MCP manual
Konsistensi tim: Semua orang mendapatkan alat yang sama ketika plugin diinstal
Server MCP dapat dikonfigurasi pada tiga cakupan berbeda. Cakupan yang Anda pilih mengontrol proyek mana tempat server dimuat dan apakah konfigurasi dibagikan dengan tim Anda. Administrator juga dapat menerapkan server di tingkat enterprise melalui konfigurasi terkelola.
Cakupan lokal adalah default. Server dengan cakupan lokal hanya dimuat di proyek tempat Anda menambahkannya dan tetap pribadi untuk Anda. Claude Code menyimpannya dalam ~/.claude.json di bawah jalur proyek tersebut, jadi server yang sama tidak akan muncul di proyek lain Anda. Gunakan cakupan lokal untuk server pengembangan pribadi, konfigurasi eksperimental, atau server dengan kredensial yang tidak ingin Anda masukkan ke dalam kontrol versi.
# Tambahkan server dengan cakupan lokal (default)
claude mcp add --transport http stripe https://mcp.stripe.com
# Tentukan cakupan lokal secara eksplisit
claude mcp add --transport http stripe --scopelocal https://mcp.stripe.com
Perintah menulis server ke dalam entri untuk proyek saat ini di dalam ~/.claude.json. Contoh di bawah menunjukkan hasilnya ketika Anda menjalankannya dari /path/to/your/project:
Server dengan cakupan proyek memungkinkan kolaborasi tim dengan menyimpan konfigurasi dalam file .mcp.json di direktori root proyek Anda. File ini dirancang untuk diperiksa ke dalam kontrol versi, memastikan semua anggota tim memiliki akses ke alat dan layanan MCP yang sama. Ketika Anda menambahkan server dengan cakupan proyek, Claude Code secara otomatis membuat atau memperbarui file ini dengan struktur konfigurasi yang sesuai.
# Tambahkan server dengan cakupan proyek
claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
File .mcp.json yang dihasilkan mengikuti format standar:
Untuk alasan keamanan, Claude Code meminta persetujuan sebelum menggunakan server dengan cakupan proyek dari file .mcp.json. Jika Anda perlu mengatur ulang pilihan persetujuan ini, gunakan perintah claude mcp reset-project-choices.
Cakupan pengguna
Server dengan cakupan pengguna disimpan dalam ~/.claude.json dan menyediakan aksesibilitas lintas proyek, menjadikannya tersedia di semua proyek di mesin Anda sambil tetap pribadi untuk akun pengguna Anda. Cakupan ini bekerja dengan baik untuk server utilitas pribadi, alat pengembangan, atau layanan yang sering Anda gunakan di berbagai proyek.
# Tambahkan server pengguna
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
Hierarki cakupan dan prioritas
Ketika server yang sama ditentukan di lebih dari satu tempat, Claude Code terhubung ke server tersebut sekali, menggunakan definisi dari sumber dengan prioritas tertinggi:
Tiga cakupan mencocokkan duplikat berdasarkan nama. Plugin dan konektor mencocokkan berdasarkan endpoint, jadi yang menunjuk ke URL atau perintah yang sama dengan server di atas diperlakukan sebagai duplikat.
Ekspansi variabel lingkungan dalam .mcp.json
Claude Code mendukung ekspansi variabel lingkungan dalam file .mcp.json, memungkinkan tim untuk berbagi konfigurasi sambil mempertahankan fleksibilitas untuk jalur spesifik mesin dan nilai sensitif seperti kunci API.
Sintaks yang didukung:
${VAR} - Berkembang menjadi nilai variabel lingkungan VAR
${VAR:-default} - Berkembang menjadi VAR jika diatur, jika tidak menggunakan default
Lokasi ekspansi:
Variabel lingkungan dapat berkembang dalam:
command - Jalur executable server
args - Argumen baris perintah
env - Variabel lingkungan yang diteruskan ke server
Jika variabel lingkungan yang diperlukan tidak diatur dan tidak memiliki nilai default, Claude Code akan gagal mengurai konfigurasi.
Contoh praktis
{/* ### Contoh: Otomatisasi pengujian browser dengan Playwright
claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest
Kemudian tulis dan jalankan tes browser:
Test if the login flow works with test@example.com
Take a screenshot of the checkout page on mobile
Verify that the search feature returns results
``` */}
### Contoh: Pantau kesalahan dengan Sentry
```bash theme={null}
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
Autentikasi dengan akun Sentry Anda:
/mcp
Kemudian debug masalah produksi:
What are the most common errors in the last 24 hours?
Show me the stack trace for error ID abc123
Which deployment introduced these new errors?
Contoh: Hubungkan ke GitHub untuk tinjauan kode
Token akses pribadi GitHub MCP server jarak jauh diautentikasi dengan token akses pribadi GitHub yang diteruskan sebagai header. Untuk mendapatkan satu, buka pengaturan token GitHub Anda, hasilkan token baru yang bagus dengan akses ke repositori yang ingin Claude kerjakan, kemudian tambahkan server:
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn"postgresql://readonly:pass@prod.db.com:5432/analytics"
Kemudian tanyakan database Anda secara alami:
What's our total revenue this month?
Show me the schema for the orders table
Find customers who haven't made a purchase in 90 days
Autentikasi dengan server MCP jarak jauh
Banyak server MCP berbasis cloud memerlukan autentikasi. Claude Code mendukung OAuth 2.0 untuk koneksi yang aman.
1
Tambahkan server yang memerlukan autentikasi
Sebagai contoh:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
2
Gunakan perintah /mcp dalam Claude Code
Dalam Claude Code, gunakan perintah:
/mcp
Kemudian ikuti langkah-langkah di browser Anda untuk login.
Gunakan port callback OAuth tetap
Beberapa server MCP memerlukan URI pengalihan tertentu yang terdaftar sebelumnya. Secara default, Claude Code memilih port acak yang tersedia untuk callback OAuth. Gunakan --callback-port untuk memperbaiki port sehingga cocok dengan URI pengalihan yang telah terdaftar sebelumnya dalam bentuk http://localhost:PORT/callback.
Anda dapat menggunakan --callback-port sendiri (dengan pendaftaran klien dinamis) atau bersama dengan --client-id (dengan kredensial yang telah dikonfigurasi sebelumnya).
# Port callback tetap dengan pendaftaran klien dinamis
claude mcp add --transport http \
--callback-port8080 \
my-server https://mcp.example.com/mcp
Gunakan kredensial OAuth yang telah dikonfigurasi sebelumnya
Beberapa server MCP tidak mendukung pengaturan OAuth otomatis melalui Dynamic Client Registration. Jika Anda melihat kesalahan seperti "Incompatible auth server: does not support dynamic client registration," server memerlukan kredensial yang telah dikonfigurasi sebelumnya. Claude Code juga mendukung server yang menggunakan Client ID Metadata Document (CIMD) alih-alih Dynamic Client Registration, dan menemukan ini secara otomatis. Jika penemuan otomatis gagal, daftarkan aplikasi OAuth melalui portal pengembang server terlebih dahulu, kemudian berikan kredensial saat menambahkan server.
1
Daftarkan aplikasi OAuth dengan server
Buat aplikasi melalui portal pengembang server dan catat ID klien dan rahasia klien Anda.
Banyak server juga memerlukan URI pengalihan. Jika demikian, pilih port dan daftarkan URI pengalihan dalam format http://localhost:PORT/callback. Gunakan port yang sama dengan --callback-port di langkah berikutnya.
2
Tambahkan server dengan kredensial Anda
Pilih salah satu metode berikut. Port yang digunakan untuk --callback-port dapat berupa port apa pun yang tersedia. Itu hanya perlu cocok dengan URI pengalihan yang Anda daftarkan di langkah sebelumnya.
Gunakan --client-id untuk meneruskan ID klien aplikasi Anda. Flag --client-secret meminta rahasia dengan input yang disembunyikan:
Jalankan /mcp di Claude Code dan ikuti alur login browser.
Ganti penemuan metadata OAuth
Arahkan Claude Code ke URL metadata otorisasi OAuth tertentu untuk melewati rantai penemuan default. Atur authServerMetadataUrl ketika endpoint standar server MCP mengembalikan kesalahan, atau ketika Anda ingin merutekan penemuan melalui proxy internal. Secara default, Claude Code pertama kali memeriksa Protected Resource Metadata RFC 9728 di /.well-known/oauth-protected-resource, kemudian kembali ke metadata server otorisasi RFC 8414 di /.well-known/oauth-authorization-server.
Atur authServerMetadataUrl dalam objek oauth dari konfigurasi server Anda di .mcp.json:
URL harus menggunakan https://. authServerMetadataUrl memerlukan Claude Code v2.1.64 atau lebih baru. scopes_supported dari URL metadata mengganti cakupan yang diiklankan server upstream.
Batasi cakupan OAuth
Atur oauth.scopes untuk menyematkan cakupan yang diminta Claude Code selama alur otorisasi. Ini adalah cara yang didukung untuk membatasi server MCP ke subset yang disetujui tim keamanan ketika server otorisasi upstream mengiklankan lebih banyak cakupan daripada yang ingin Anda berikan. Nilainya adalah string tunggal yang dipisahkan spasi, cocok dengan format parameter scope dalam RFC 6749 §3.3.
oauth.scopes mengambil prioritas atas authServerMetadataUrl dan cakupan yang ditemukan server di /.well-known. Biarkan tidak diatur untuk membiarkan server MCP menentukan set cakupan yang diminta.
Jika server otorisasi mengiklankan offline_access dalam scopes_supported, Claude Code menambahkannya ke cakupan yang disematkan sehingga token akses dapat disegarkan tanpa login browser baru.
Jika server kemudian mengembalikan 403 insufficient_scope untuk panggilan alat, Claude Code melakukan autentikasi ulang dengan cakupan yang disematkan yang sama. Perluas oauth.scopes ketika alat yang Anda butuhkan memerlukan cakupan di luar pin.
Gunakan header dinamis untuk autentikasi khusus
Jika server MCP Anda menggunakan skema autentikasi selain OAuth (seperti Kerberos, token berumur pendek, atau SSO internal), gunakan headersHelper untuk menghasilkan header permintaan pada waktu koneksi. Claude Code menjalankan perintah dan menggabungkan outputnya ke dalam header koneksi.
Perintah harus menulis objek JSON dari pasangan kunci-nilai string ke stdout
Perintah berjalan dalam shell dengan waktu tunggu 10 detik
Header dinamis mengganti headers statis apa pun dengan nama yang sama
Helper berjalan segar pada setiap koneksi (pada startup sesi dan pada reconnect). Tidak ada caching, jadi skrip Anda bertanggung jawab untuk penggunaan kembali token apa pun.
Claude Code menetapkan variabel lingkungan ini saat menjalankan helper:
Variabel
Nilai
CLAUDE_CODE_MCP_SERVER_NAME
nama server MCP
CLAUDE_CODE_MCP_SERVER_URL
URL server MCP
Gunakan ini untuk menulis satu skrip helper yang melayani beberapa server MCP.
Tambahkan server MCP dari konfigurasi JSON
Jika Anda memiliki konfigurasi JSON untuk server MCP, Anda dapat menambahkannya secara langsung:
1
Tambahkan server MCP dari JSON
# Sintaks dasar
claude mcp add-json<name>'<json>'# Contoh: Menambahkan server HTTP dengan konfigurasi JSON
claude mcp add-json weather-api'{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'# Contoh: Menambahkan server stdio dengan konfigurasi JSON
claude mcp add-jsonlocal-weather'{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'# Contoh: Menambahkan server HTTP dengan kredensial OAuth yang telah dikonfigurasi sebelumnya
claude mcp add-json my-server'{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}'--client-secret
2
Verifikasi server ditambahkan
claude mcp get weather-api
Impor server MCP dari Claude Desktop
Jika Anda telah mengonfigurasi server MCP di Claude Desktop, Anda dapat mengimpornya:
1
Impor server dari Claude Desktop
# Sintaks dasar
claude mcp add-from-claude-desktop
2
Pilih server mana yang akan diimpor
Setelah menjalankan perintah, Anda akan melihat dialog interaktif yang memungkinkan Anda memilih server mana yang ingin Anda impor.
3
Verifikasi server diimpor
claude mcp list
Gunakan server MCP dari Claude.ai
Jika Anda telah masuk ke Claude Code dengan akun Claude.ai, server MCP yang telah Anda tambahkan di Claude.ai secara otomatis tersedia di Claude Code:
1
Konfigurasi server MCP di Claude.ai
Tambahkan server di claude.ai/customize/connectors. Pada paket Tim dan Enterprise, hanya admin yang dapat menambahkan server.
2
Autentikasi server MCP
Selesaikan langkah autentikasi yang diperlukan di Claude.ai.
3
Lihat dan kelola server di Claude Code
Di Claude Code, gunakan perintah:
/mcp
Server Claude.ai muncul dalam daftar dengan indikator yang menunjukkan mereka berasal dari Claude.ai.
Server yang telah Anda tambahkan di Claude Code mengambil prioritas atas konektor claude.ai yang menunjuk ke URL yang sama. Ketika ini terjadi, /mcp mencantumkan konektor sebagai tersembunyi dan menunjukkan cara menghapus duplikat jika Anda lebih suka menggunakan konektor.
Untuk menonaktifkan server MCP claude.ai di Claude Code, atur variabel lingkungan ENABLE_CLAUDEAI_MCP_SERVERS ke false:
ENABLE_CLAUDEAI_MCP_SERVERS=false claude
Gunakan Claude Code sebagai server MCP
Anda dapat menggunakan Claude Code itu sendiri sebagai server MCP yang dapat terhubung oleh aplikasi lain:
# Mulai Claude sebagai server MCP stdio
claude mcp serve
Anda dapat menggunakan ini di Claude Desktop dengan menambahkan konfigurasi ini ke claude_desktop_config.json:
Ketika alat MCP menghasilkan output besar, Claude Code membantu mengelola penggunaan token untuk mencegah membanjiri konteks percakapan Anda:
Ambang batas peringatan output: Claude Code menampilkan peringatan ketika output alat MCP apa pun melebihi 10.000 token
Batas yang dapat dikonfigurasi: Anda dapat menyesuaikan token output MCP maksimum yang diizinkan menggunakan variabel lingkungan MAX_MCP_OUTPUT_TOKENS
Batas default: Maksimum default adalah 25.000 token
Cakupan: Variabel lingkungan berlaku untuk alat yang tidak mendeklarasikan batas mereka sendiri. Alat yang menetapkan anthropic/maxResultSizeChars menggunakan nilai itu sebagai gantinya untuk konten teks, terlepas dari apa yang MAX_MCP_OUTPUT_TOKENS diatur. Alat yang mengembalikan data gambar masih tunduk pada MAX_MCP_OUTPUT_TOKENS
Untuk meningkatkan batas untuk alat yang menghasilkan output besar:
export MAX_MCP_OUTPUT_TOKENS=50000
claude
Ini sangat berguna saat bekerja dengan server MCP yang:
Menanyakan dataset atau database besar
Menghasilkan laporan atau dokumentasi terperinci
Memproses file log atau informasi debugging yang luas
Naikkan batas untuk alat tertentu
Jika Anda membangun server MCP, Anda dapat mengizinkan alat individual untuk mengembalikan hasil yang lebih besar dari ambang batas default dengan menetapkan _meta["anthropic/maxResultSizeChars"] dalam entri tools/list alat. Claude Code menaikkan ambang batas alat tersebut ke nilai yang dianotasi, hingga batas keras 500.000 karakter.
Ini berguna untuk alat yang mengembalikan output yang secara inheren besar tetapi diperlukan, seperti skema database atau pohon file lengkap. Tanpa anotasi, hasil yang melebihi ambang batas default disimpan ke disk dan diganti dengan referensi file dalam percakapan.
{"name": "get_schema",
"description": "Returns the full database schema",
"_meta": {"anthropic/maxResultSizeChars": 200000
}}
Anotasi berlaku secara independen dari MAX_MCP_OUTPUT_TOKENS untuk konten teks, jadi pengguna tidak perlu menaikkan variabel lingkungan untuk alat yang mendeklarasikannya. Alat yang mengembalikan data gambar masih tunduk pada batas token.
Tanggapi permintaan elicitasi MCP
Server MCP dapat meminta input terstruktur dari Anda di tengah tugas menggunakan elicitasi. Ketika server memerlukan informasi yang tidak dapat diperolehnya sendiri, Claude Code menampilkan dialog interaktif dan meneruskan respons Anda kembali ke server. Tidak ada konfigurasi yang diperlukan di pihak Anda: dialog elicitasi muncul secara otomatis ketika server memintanya.
Server dapat meminta input dengan dua cara:
Mode formulir: Claude Code menampilkan dialog dengan field formulir yang ditentukan oleh server (misalnya, prompt nama pengguna dan kata sandi). Isi field dan kirim.
Mode URL: Claude Code membuka URL browser untuk autentikasi atau persetujuan. Selesaikan alur di browser, kemudian konfirmasi di CLI.
Untuk merespons otomatis permintaan elicitasi tanpa menampilkan dialog, gunakan hook Elicitation.
Jika Anda membangun server MCP yang menggunakan elicitasi, lihat spesifikasi elicitasi MCP untuk detail protokol dan contoh skema.
Gunakan sumber daya MCP
Server MCP dapat mengekspos sumber daya yang dapat Anda referensikan menggunakan penyebutan @, mirip dengan cara Anda mereferensikan file.
Referensikan sumber daya MCP
1
Daftar sumber daya yang tersedia
Ketik @ dalam prompt Anda untuk melihat sumber daya yang tersedia dari semua server MCP yang terhubung. Sumber daya muncul bersama file dalam menu pelengkapan otomatis.
2
Referensikan sumber daya tertentu
Gunakan format @server:protocol://resource/path untuk mereferensikan sumber daya:
Can you analyze @github:issue://123 and suggest a fix?
Please review the API documentation at @docs:file://api/authentication
3
Referensi sumber daya berganda
Anda dapat mereferensikan beberapa sumber daya dalam satu prompt:
Compare @postgres:schema://users with @docs:file://database/user-model
Skala dengan Pencarian Alat MCP
Pencarian Alat menjaga penggunaan konteks MCP tetap rendah dengan menunda definisi alat sampai Claude membutuhkannya. Hanya nama alat yang dimuat saat startup sesi, jadi menambahkan lebih banyak server MCP memiliki dampak minimal pada jendela konteks Anda.
Cara kerjanya
Pencarian Alat diaktifkan secara default. Alat MCP ditangguhkan daripada dimuat ke konteks sebelumnya, dan Claude menggunakan alat pencarian untuk menemukan yang relevan saat tugas membutuhkannya. Hanya alat yang benar-benar digunakan Claude yang memasuki konteks. Dari perspektif Anda, alat MCP bekerja persis seperti sebelumnya.
Jika Anda lebih suka pemuatan berbasis ambang batas, atur ENABLE_TOOL_SEARCH=auto untuk memuat skema sebelumnya ketika mereka cocok dalam 10% jendela konteks dan hanya menunda overflow. Lihat Konfigurasi pencarian alat untuk semua opsi.
Untuk penulis server MCP
Jika Anda membangun server MCP, field instruksi server menjadi lebih berguna dengan Pencarian Alat yang diaktifkan. Instruksi server membantu Claude memahami kapan harus mencari alat Anda, mirip dengan cara skills bekerja.
Tambahkan instruksi server yang jelas dan deskriptif yang menjelaskan:
Kategori tugas apa yang ditangani alat Anda
Kapan Claude harus mencari alat Anda
Kemampuan utama yang disediakan server Anda
Claude Code memotong deskripsi alat dan instruksi server pada 2KB masing-masing. Jaga agar ringkas untuk menghindari pemotongan, dan letakkan detail penting di dekat awal.
Konfigurasi pencarian alat
Pencarian alat diaktifkan secara default: alat MCP ditangguhkan dan ditemukan sesuai permintaan. Pencarian alat dinonaktifkan secara default di Vertex AI, yang tidak menerima header beta pencarian alat, dan ketika ANTHROPIC_BASE_URL menunjuk ke host non-pihak pertama, karena sebagian besar proxy tidak meneruskan blok tool_reference. Atur ENABLE_TOOL_SEARCH secara eksplisit untuk memilih. Fitur ini memerlukan model yang mendukung blok tool_reference: Sonnet 4 dan lebih baru, atau Opus 4 dan lebih baru. Model Haiku tidak mendukung pencarian alat.
Kontrol perilaku pencarian alat dengan variabel lingkungan ENABLE_TOOL_SEARCH:
Nilai
Perilaku
(tidak diatur)
Semua alat MCP ditangguhkan dan dimuat sesuai permintaan. Kembali ke pemuatan sebelumnya di Vertex AI atau ketika ANTHROPIC_BASE_URL adalah host non-pihak pertama
true
Semua alat MCP ditangguhkan, termasuk di Vertex AI dan untuk ANTHROPIC_BASE_URL non-pihak pertama
auto
Mode ambang batas: alat dimuat sebelumnya jika cocok dalam 10% jendela konteks, ditangguhkan sebaliknya
auto:<N>
Mode ambang batas dengan persentase khusus, di mana <N> adalah 0-100 (misalnya, auto:5 untuk 5%)
false
Semua alat MCP dimuat sebelumnya, tidak ada penundaan
# Gunakan ambang batas khusus 5%
ENABLE_TOOL_SEARCH=auto:5 claude
# Nonaktifkan pencarian alat sepenuhnya
ENABLE_TOOL_SEARCH=false claude
Anda juga dapat menonaktifkan alat ToolSearch secara khusus:
{"permissions": {"deny": ["ToolSearch"]}}
Keluarkan server dari penundaan
Jika alat server harus selalu terlihat oleh Claude tanpa langkah pencarian, atur alwaysLoad ke true dalam konfigurasi server tersebut. Setiap alat dari server tersebut kemudian dimuat ke konteks saat startup sesi terlepas dari pengaturan ENABLE_TOOL_SEARCH. Gunakan ini untuk sejumlah kecil alat yang Claude butuhkan di setiap putaran, karena setiap alat sebelumnya mengonsumsi konteks yang sebaliknya akan tersedia untuk percakapan Anda.
Entri .mcp.json berikut mengecualikan satu server HTTP sambil membiarkan server lain ditangguhkan:
Field alwaysLoad tersedia di semua jenis server dan memerlukan Claude Code v2.1.121 atau lebih baru. Server MCP juga dapat menandai alat individual sebagai selalu-dimuat dengan menyertakan "anthropic/alwaysLoad": true dalam objek _meta alat, yang memiliki efek yang sama hanya untuk alat tersebut.
Pengaturan alwaysLoad: true juga memblokir startup sampai server terhubung, dibatasi pada timeout koneksi standar 5 detik. Ini berlaku bahkan ketika MCP_CONNECTION_NONBLOCKING=1 diatur, karena alat harus ada saat prompt pertama dibangun. Server lain masih terhubung di latar belakang ketika nonblocking diaktifkan.
Gunakan prompt MCP sebagai perintah
Server MCP dapat mengekspos prompt yang menjadi tersedia sebagai perintah di Claude Code.
Jalankan prompt MCP
1
Temukan prompt yang tersedia
Ketik / untuk melihat semua perintah yang tersedia, termasuk yang dari server MCP. Prompt MCP muncul dengan format /mcp__servername__promptname.
2
Jalankan prompt tanpa argumen
/mcp__github__list_prs
3
Jalankan prompt dengan argumen
Banyak prompt menerima argumen. Teruskan mereka dipisahkan spasi setelah perintah:
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug in login flow" high
Konfigurasi MCP yang dikelola
Untuk organisasi yang memerlukan kontrol terpusat atas server MCP, Claude Code mendukung dua opsi konfigurasi:
Kontrol eksklusif dengan managed-mcp.json: Terapkan set server MCP tetap yang tidak dapat dimodifikasi atau diperluas pengguna
Kontrol berbasis kebijakan dengan daftar putih/daftar hitam: Izinkan pengguna menambahkan server mereka sendiri, tetapi batasi server mana yang diizinkan
Opsi ini memungkinkan administrator IT untuk:
Kontrol server MCP mana yang dapat diakses karyawan: Terapkan set server MCP yang disetujui secara standar di seluruh organisasi
Cegah server MCP yang tidak sah: Batasi pengguna dari menambahkan server MCP yang tidak disetujui
Nonaktifkan MCP sepenuhnya: Hapus fungsionalitas MCP sepenuhnya jika diperlukan
Opsi 1: Kontrol eksklusif dengan managed-mcp.json
Ketika Anda menerapkan file managed-mcp.json, file tersebut mengambil kontrol eksklusif atas semua server MCP. Pengguna tidak dapat menambahkan, memodifikasi, atau menggunakan server MCP apa pun selain yang ditentukan dalam file ini. Ini adalah pendekatan paling sederhana untuk organisasi yang menginginkan kontrol penuh.
Administrator sistem menerapkan file konfigurasi ke direktori sistem:
Opsi 2: Kontrol berbasis kebijakan dengan daftar putih dan daftar hitam
Alih-alih mengambil kontrol eksklusif, administrator dapat mengizinkan pengguna mengonfigurasi server MCP mereka sendiri sambil memberlakukan pembatasan pada server mana yang diizinkan. Pendekatan ini menggunakan allowedMcpServers dan deniedMcpServers dalam file pengaturan yang dikelola.
Opsi pembatasan
Setiap entri dalam daftar putih atau daftar hitam dapat membatasi server dengan tiga cara:
Berdasarkan nama server (serverName): Cocok dengan nama server yang dikonfigurasi
Berdasarkan perintah (serverCommand): Cocok dengan perintah dan argumen yang tepat yang digunakan untuk memulai server stdio
Berdasarkan pola URL (serverUrl): Cocok dengan URL server jarak jauh dengan dukungan wildcard
Penting: Setiap entri harus memiliki tepat satu dari serverName, serverCommand, atau serverUrl.
Contoh konfigurasi
{"allowedMcpServers": [
// Izinkan berdasarkan nama server
{"serverName": "github"},
{"serverName": "sentry"},
// Izinkan berdasarkan perintah yang tepat (untuk server stdio)
{"serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"]},
{"serverCommand": ["python", "/usr/local/bin/approved-server.py"]},
// Izinkan berdasarkan pola URL (untuk server jarak jauh)
{"serverUrl": "https://mcp.company.com/*"},
{"serverUrl": "https://*.internal.corp/*"}],
"deniedMcpServers": [
// Blokir berdasarkan nama server
{"serverName": "dangerous-server"},
// Blokir berdasarkan perintah yang tepat (untuk server stdio)
{"serverCommand": ["npx", "-y", "unapproved-package"]},
// Blokir berdasarkan pola URL (untuk server jarak jauh)
{"serverUrl": "https://*.untrusted.com/*"}]}
Cara kerja pembatasan berbasis perintah
Pencocokan yang tepat:
Array perintah harus cocok persis - baik perintah maupun semua argumen dalam urutan yang benar
Contoh: ["npx", "-y", "server"] akan TIDAK cocok dengan ["npx", "server"] atau ["npx", "-y", "server", "--flag"]
Perilaku server stdio:
Ketika daftar putih berisi entriserverCommand apa pun, server stdio harus cocok dengan salah satu perintah tersebut
Server stdio tidak dapat lulus berdasarkan nama saja ketika pembatasan perintah ada
Ini memastikan administrator dapat memberlakukan perintah mana yang diizinkan untuk dijalankan
Perilaku server non-stdio:
Server jarak jauh (HTTP, SSE, WebSocket) menggunakan pencocokan berbasis URL ketika entri serverUrl ada dalam daftar putih
Jika tidak ada entri URL, server jarak jauh kembali ke pencocokan berbasis nama
Pembatasan perintah tidak berlaku untuk server jarak jauh
Cara kerja pembatasan berbasis URL
Pola URL mendukung wildcard menggunakan * untuk mencocokkan urutan karakter apa pun. Ini berguna untuk mengizinkan seluruh domain atau subdomain.
Contoh wildcard:
https://mcp.company.com/* - Izinkan semua jalur di domain tertentu
https://*.example.com/* - Izinkan subdomain apa pun dari example.com
http://localhost:*/* - Izinkan port apa pun di localhost
Pencocokan nama host tidak peka huruf besar-kecil dan mengabaikan titik FQDN yang tertinggal, sesuai dengan semantik DNS. Pola seperti *://Mcp.Example.com/* cocok dengan https://mcp.example.com/api, dan https://mcp.example.com. diperlakukan sama dengan https://mcp.example.com. Skema dan jalur tetap peka huruf besar-kecil.
Perilaku server jarak jauh:
Ketika daftar putih berisi entriserverUrl apa pun, server jarak jauh harus cocok dengan salah satu pola URL tersebut
Server jarak jauh tidak dapat lulus berdasarkan nama saja ketika pembatasan URL ada
Ini memastikan administrator dapat memberlakukan endpoint jarak jauh mana yang diizinkan
Server stdio bernama "github" dengan perintah apa pun: ✅ Diizinkan (tidak ada pembatasan perintah)
Server stdio bernama "internal-tool" dengan perintah apa pun: ✅ Diizinkan (tidak ada pembatasan perintah)
Server HTTP bernama "github": ✅ Diizinkan (cocok dengan nama)
Server apa pun bernama "other": ❌ Diblokir (nama tidak cocok)
Perilaku daftar putih (allowedMcpServers)
undefined (default): Tidak ada pembatasan - pengguna dapat mengonfigurasi server MCP apa pun
Array kosong []: Penguncian lengkap - pengguna tidak dapat mengonfigurasi server MCP apa pun
Daftar entri: Pengguna hanya dapat mengonfigurasi server yang cocok berdasarkan nama, perintah, atau pola URL
Perilaku daftar hitam (deniedMcpServers)
undefined (default): Tidak ada server yang diblokir
Array kosong []: Tidak ada server yang diblokir
Daftar entri: Server yang ditentukan secara eksplisit diblokir di semua cakupan
Catatan penting
Opsi 1 dan Opsi 2 dapat digabungkan: Jika managed-mcp.json ada, file tersebut memiliki kontrol eksklusif dan pengguna tidak dapat menambahkan server. Daftar putih/daftar hitam masih berlaku untuk server yang dikelola itu sendiri.
Daftar hitam mengambil prioritas absolut: Jika server cocok dengan entri daftar hitam (berdasarkan nama, perintah, atau URL), server akan diblokir bahkan jika ada di daftar putih
Pembatasan berbasis nama, berbasis perintah, dan berbasis URL bekerja bersama: server lulus jika cocok dengan entri nama, entri perintah, atau pola URL (kecuali diblokir oleh daftar hitam)
mcp.md+11−1
327/mcp327/mcp
328```328```
329329
330Panel `/mcp` menampilkan jumlah alat di sebelah setiap server yang terhubung dan menandai server yang mengiklankan kemampuan alat tetapi tidak mengekspos alat apa pun.
331
332Nama server `workspace` dicadangkan untuk penggunaan internal. Jika konfigurasi Anda menentukan server dengan nama tersebut, Claude Code melewatinya saat waktu muat dan menampilkan peringatan yang meminta Anda untuk mengganti namanya.
333
330### Pembaruan alat dinamis334### Pembaruan alat dinamis
331335
332Claude Code mendukung notifikasi `list_changed` MCP, memungkinkan server MCP untuk secara dinamis memperbarui alat, prompt, dan sumber daya yang tersedia tanpa memerlukan Anda untuk memutuskan dan menghubungkan kembali. Ketika server MCP mengirim notifikasi `list_changed`, Claude Code secara otomatis menyegarkan kemampuan yang tersedia dari server tersebut.336Claude Code mendukung notifikasi `list_changed` MCP, memungkinkan server MCP untuk secara dinamis memperbarui alat, prompt, dan sumber daya yang tersedia tanpa memerlukan Anda untuk memutuskan dan menghubungkan kembali. Ketika server MCP mengirim notifikasi `list_changed`, Claude Code secara otomatis menyegarkan kemampuan yang tersedia dari server tersebut.
426Server MCP dapat dikonfigurasi pada tiga cakupan berbeda. Cakupan yang Anda pilih mengontrol proyek mana tempat server dimuat dan apakah konfigurasi dibagikan dengan tim Anda.430Server MCP dapat dikonfigurasi pada tiga cakupan berbeda. Cakupan yang Anda pilih mengontrol proyek mana tempat server dimuat dan apakah konfigurasi dibagikan dengan tim Anda. Administrator juga dapat menerapkan server di tingkat enterprise melalui [konfigurasi terkelola](#managed-mcp-configuration).
427431
428| Cakupan | Dimuat dalam | Dibagikan dengan tim | Disimpan dalam |432| Cakupan | Dimuat dalam | Dibagikan dengan tim | Disimpan dalam |
951Server yang telah Anda tambahkan di Claude Code mengambil [prioritas](#scope-hierarchy-and-precedence) atas konektor claude.ai yang menunjuk ke URL yang sama. Ketika ini terjadi, `/mcp` mencantumkan konektor sebagai tersembunyi dan menunjukkan cara menghapus duplikat jika Anda lebih suka menggunakan konektor.
952
947Untuk menonaktifkan server MCP claude.ai di Claude Code, atur variabel lingkungan `ENABLE_CLAUDEAI_MCP_SERVERS` ke `false`:953Untuk menonaktifkan server MCP claude.ai di Claude Code, atur variabel lingkungan `ENABLE_CLAUDEAI_MCP_SERVERS` ke `false`:
948954
949```bash theme={null}955```bash theme={null}
11831189
1184Field `alwaysLoad` tersedia di semua jenis server dan memerlukan Claude Code v2.1.121 atau lebih baru. Server MCP juga dapat menandai alat individual sebagai selalu-dimuat dengan menyertakan `"anthropic/alwaysLoad": true` dalam objek `_meta` alat, yang memiliki efek yang sama hanya untuk alat tersebut.1190Field `alwaysLoad` tersedia di semua jenis server dan memerlukan Claude Code v2.1.121 atau lebih baru. Server MCP juga dapat menandai alat individual sebagai selalu-dimuat dengan menyertakan `"anthropic/alwaysLoad": true` dalam objek `_meta` alat, yang memiliki efek yang sama hanya untuk alat tersebut.
11851191
1192Pengaturan `alwaysLoad: true` juga memblokir startup sampai server terhubung, dibatasi pada timeout koneksi standar 5 detik. Ini berlaku bahkan ketika [`MCP_CONNECTION_NONBLOCKING=1`](/id/env-vars) diatur, karena alat harus ada saat prompt pertama dibangun. Server lain masih terhubung di latar belakang ketika nonblocking diaktifkan.
1193
1186## Gunakan prompt MCP sebagai perintah1194## Gunakan prompt MCP sebagai perintah
11871195
1188Server MCP dapat mengekspos prompt yang menjadi tersedia sebagai perintah di Claude Code.1196Server MCP dapat mengekspos prompt yang menjadi tersedia sebagai perintah di Claude Code.
1351* `https://*.example.com/*` - Izinkan subdomain apa pun dari example.com1359* `https://*.example.com/*` - Izinkan subdomain apa pun dari example.com
1352* `http://localhost:*/*` - Izinkan port apa pun di localhost1360* `http://localhost:*/*` - Izinkan port apa pun di localhost
13531361
1362Pencocokan nama host tidak peka huruf besar-kecil dan mengabaikan titik FQDN yang tertinggal, sesuai dengan semantik DNS. Pola seperti `*://Mcp.Example.com/*` cocok dengan `https://mcp.example.com/api`, dan `https://mcp.example.com.` diperlakukan sama dengan `https://mcp.example.com`. Skema dan jalur tetap peka huruf besar-kecil.
1363
1354**Perilaku server jarak jauh**:1364**Perilaku server jarak jauh**:
13551365
1356* Ketika daftar putih berisi **entri** `serverUrl` apa pun, server jarak jauh **harus** cocok dengan salah satu pola URL tersebut1366* Ketika daftar putih berisi **entri** `serverUrl` apa pun, server jarak jauh **harus** cocok dengan salah satu pola URL tersebut