Langsung ke konten utama
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.

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:
Gunakan server MCP pihak ketiga dengan risiko Anda sendiri - Anthropic belum memverifikasi kebenaran atau keamanan semua server ini. Pastikan Anda mempercayai server MCP yang Anda instal. Berhati-hatilah terutama saat menggunakan server MCP yang dapat mengambil konten yang tidak dipercaya, karena ini dapat mengekspos Anda ke risiko injeksi prompt.
Membutuhkan integrasi spesifik? Temukan ratusan server MCP lainnya di GitHub, atau buat server Anda sendiri menggunakan MCP SDK.

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

Transport SSE (Server-Sent Events) sudah usang. Gunakan server HTTP sebagai gantinya, jika tersedia.
# 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
Penting: Urutan opsiSemua opsi (--transport, --env, --scope, --header) harus datang sebelum nama server. -- (tanda hubung ganda) kemudian memisahkan nama server dari perintah dan argumen yang diteruskan ke server MCP.Sebagai contoh:
  • claude mcp add --transport stdio myserver -- npx server → menjalankan npx server
  • claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080 → menjalankan python server.py --port 8080 dengan KEY=value di lingkungan
Ini mencegah konflik antara flag Claude dan flag 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

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.

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.
Tips:
  • Gunakan flag --scope untuk menentukan di mana konfigurasi disimpan:
    • local (default): Hanya tersedia untuk Anda di proyek saat ini (disebut project di versi yang lebih lama)
    • project: Dibagikan dengan semua orang di proyek melalui file .mcp.json
    • user: Tersedia untuk Anda di semua proyek (disebut global di versi yang lebih lama)
  • Atur variabel lingkungan dengan flag --env (misalnya, --env KEY=value)
  • Konfigurasi waktu tunggu startup server MCP menggunakan variabel lingkungan MCP_TIMEOUT (misalnya, MCP_TIMEOUT=10000 claude menetapkan waktu tunggu 10 detik)
  • Claude Code akan menampilkan peringatan ketika output alat MCP melebihi 10.000 token. Untuk meningkatkan batas ini, atur variabel lingkungan MAX_MCP_OUTPUT_TOKENS (misalnya, MAX_MCP_OUTPUT_TOKENS=50000)
  • Gunakan /mcp untuk autentikasi dengan server jarak jauh yang memerlukan autentikasi OAuth 2.0
Pengguna Windows: Pada Windows asli (bukan WSL), server MCP lokal yang menggunakan npx memerlukan pembungkus cmd /c untuk memastikan eksekusi yang tepat.
# Ini membuat command="cmd" yang dapat dieksekusi Windows
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package
Tanpa pembungkus cmd /c, Anda akan mengalami kesalahan “Connection closed” karena Windows tidak dapat langsung menjalankan npx. (Lihat catatan di atas untuk penjelasan parameter --.)

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)
Contoh konfigurasi MCP plugin: Dalam .mcp.json di root plugin:
{
  "mcpServers": {
    "database-tools": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_URL": "${DB_URL}"
      }
    }
  }
}
Atau inline dalam plugin.json:
{
  "name": "my-plugin",
  "mcpServers": {
    "plugin-api": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
      "args": ["--port", "8080"]
    }
  }
}
Fitur MCP plugin:
  • 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
Lihat referensi komponen plugin untuk detail tentang penggabungan server MCP dengan plugin.

Cakupan instalasi MCP

Server MCP dapat dikonfigurasi pada tiga tingkat cakupan yang berbeda, masing-masing melayani tujuan yang berbeda untuk mengelola aksesibilitas server dan berbagi. Memahami cakupan ini membantu Anda menentukan cara terbaik untuk mengonfigurasi server sesuai kebutuhan spesifik Anda.

Cakupan lokal

Server dengan cakupan lokal mewakili tingkat konfigurasi default dan disimpan dalam ~/.claude.json di bawah jalur proyek Anda. Server ini tetap pribadi untuk Anda dan hanya dapat diakses saat bekerja dalam direktori proyek saat ini. Cakupan ini ideal untuk server pengembangan pribadi, konfigurasi eksperimental, atau server yang berisi kredensial sensitif yang tidak boleh dibagikan.
Istilah “cakupan lokal” untuk server MCP berbeda dari pengaturan lokal umum. Server MCP dengan cakupan lokal disimpan dalam ~/.claude.json (direktori home Anda), sementara pengaturan lokal umum menggunakan .claude/settings.local.json (di direktori proyek). Lihat Pengaturan untuk detail tentang lokasi file pengaturan.
# 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 --scope local https://mcp.stripe.com

Cakupan proyek

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:
{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}
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

Memilih cakupan yang tepat

Pilih cakupan Anda berdasarkan:
  • Cakupan lokal: Server pribadi, konfigurasi eksperimental, atau kredensial sensitif khusus untuk satu proyek
  • Cakupan proyek: Server bersama tim, alat khusus proyek, atau layanan yang diperlukan untuk kolaborasi
  • Cakupan pengguna: Utilitas pribadi yang diperlukan di berbagai proyek, alat pengembangan, atau layanan yang sering digunakan
Di mana server MCP disimpan?
  • Cakupan pengguna dan lokal: ~/.claude.json (dalam field mcpServers atau di bawah jalur proyek)
  • Cakupan proyek: .mcp.json di root proyek Anda (diperiksa ke dalam kontrol sumber)
  • Dikelola: managed-mcp.json di direktori sistem (lihat Konfigurasi MCP yang dikelola)

Hierarki cakupan dan prioritas

Konfigurasi server MCP mengikuti hierarki prioritas yang jelas. Ketika server dengan nama yang sama ada di berbagai cakupan, sistem menyelesaikan konflik dengan memprioritaskan server dengan cakupan lokal terlebih dahulu, diikuti oleh server dengan cakupan proyek, dan akhirnya server dengan cakupan pengguna. Desain ini memastikan bahwa konfigurasi pribadi dapat mengganti yang dibagikan jika diperlukan.

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
  • url - Untuk jenis server HTTP
  • headers - Untuk autentikasi server HTTP
Contoh dengan ekspansi variabel:
{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}
Jika variabel lingkungan yang diperlukan tidak diatur dan tidak memiliki nilai default, Claude Code akan gagal mengurai konfigurasi.

Contoh praktis

Contoh: Pantau kesalahan dengan Sentry

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

claude mcp add --transport http github https://api.githubcopilot.com/mcp/
Autentikasi jika diperlukan dengan memilih “Authenticate” untuk GitHub:
/mcp
Kemudian bekerja dengan GitHub:
Review PR #456 and suggest improvements
Create a new issue for the bug we just found
Show me all open PRs assigned to me

Contoh: Tanyakan database PostgreSQL Anda

claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:[email protected]: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.
Tips:
  • Token autentikasi disimpan dengan aman dan disegarkan secara otomatis
  • Gunakan “Clear authentication” dalam menu /mcp untuk mencabut akses
  • Jika browser Anda tidak terbuka secara otomatis, salin URL yang disediakan dan buka secara manual
  • Jika pengalihan browser gagal dengan kesalahan koneksi setelah autentikasi, tempel URL callback lengkap dari bilah alamat browser Anda ke prompt URL yang muncul di Claude Code
  • Autentikasi OAuth bekerja dengan server HTTP

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-port 8080 \
  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:
claude mcp add --transport http \
  --client-id your-client-id --client-secret --callback-port 8080 \
  my-server https://mcp.example.com/mcp
3

Autentikasi di Claude Code

Jalankan /mcp di Claude Code dan ikuti alur login browser.
Tips:
  • Rahasia klien disimpan dengan aman di keychain sistem Anda (macOS) atau file kredensial, bukan di konfigurasi Anda
  • Jika server menggunakan klien OAuth publik tanpa rahasia, gunakan hanya --client-id tanpa --client-secret
  • --callback-port dapat digunakan dengan atau tanpa --client-id
  • Flag ini hanya berlaku untuk transport HTTP dan SSE. Mereka tidak berpengaruh pada server stdio
  • Gunakan claude mcp get <name> untuk memverifikasi bahwa kredensial OAuth dikonfigurasi untuk server

Ganti penemuan metadata OAuth

Jika server MCP Anda mengembalikan kesalahan pada endpoint metadata OAuth standar (/.well-known/oauth-authorization-server) tetapi mengekspos endpoint OIDC yang berfungsi, Anda dapat memberi tahu Claude Code untuk mengambil metadata OAuth langsung dari URL yang Anda tentukan, melewati rantai penemuan standar. Atur authServerMetadataUrl dalam objek oauth dari konfigurasi server Anda di .mcp.json:
{
  "mcpServers": {
    "my-server": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
      }
    }
  }
}
URL harus menggunakan https://. Opsi ini memerlukan Claude Code v2.1.64 atau lebih baru.

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.
{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"
    }
  }
}
Perintah juga dapat inline:
{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"
    }
  }
}
Persyaratan:
  • 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.
headersHelper mengeksekusi perintah shell arbitrer. Ketika ditentukan pada cakupan proyek atau lokal, itu hanya berjalan setelah Anda menerima dialog kepercayaan ruang kerja.

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-json local-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
Tips:
  • Pastikan JSON diloloskan dengan benar di shell Anda
  • JSON harus sesuai dengan skema konfigurasi server MCP
  • Anda dapat menggunakan --scope user untuk menambahkan server ke konfigurasi pengguna Anda alih-alih yang spesifik proyek

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 
Tips:
  • Fitur ini hanya bekerja di macOS dan Windows Subsystem for Linux (WSL)
  • Ini membaca file konfigurasi Claude Desktop dari lokasi standarnya di platform tersebut
  • Gunakan flag --scope user untuk menambahkan server ke konfigurasi pengguna Anda
  • Server yang diimpor akan memiliki nama yang sama seperti di Claude Desktop
  • Jika server dengan nama yang sama sudah ada, mereka akan mendapatkan akhiran numerik (misalnya, server_1)

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/settings/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.
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:
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
Mengonfigurasi jalur executable: Field command harus mereferensikan executable Claude Code. Jika perintah claude tidak ada di PATH sistem Anda, Anda perlu menentukan jalur lengkap ke executable.Untuk menemukan jalur lengkap:
which claude
Kemudian gunakan jalur lengkap dalam konfigurasi Anda:
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "/full/path/to/claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
Tanpa jalur executable yang benar, Anda akan mengalami kesalahan seperti spawn claude ENOENT.
Tips:
  • Server menyediakan akses ke alat Claude seperti View, Edit, LS, dll.
  • Di Claude Desktop, coba minta Claude untuk membaca file di direktori, membuat edit, dan lainnya.
  • Perhatikan bahwa server MCP ini hanya mengekspos alat Claude Code ke klien MCP Anda, jadi klien Anda sendiri bertanggung jawab untuk menerapkan konfirmasi pengguna untuk panggilan alat individual.

Batas output MCP dan peringatan

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
Untuk meningkatkan batas untuk alat yang menghasilkan output besar:
# Atur batas lebih tinggi untuk output alat MCP
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
Jika Anda sering mengalami peringatan output dengan server MCP tertentu, pertimbangkan untuk meningkatkan batas atau mengonfigurasi server untuk membuat halaman atau memfilter responsnya.

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
Tips:
  • Sumber daya secara otomatis diambil dan disertakan sebagai lampiran saat direferensikan
  • Jalur sumber daya dapat dicari fuzzy dalam pelengkapan otomatis penyebutan @
  • Claude Code secara otomatis menyediakan alat untuk membuat daftar dan membaca sumber daya MCP ketika server mendukungnya
  • Sumber daya dapat berisi jenis konten apa pun yang disediakan server MCP (teks, JSON, data terstruktur, dll.)

Skala dengan Pencarian Alat MCP

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

Cara kerjanya

Claude Code secara otomatis mengaktifkan Pencarian Alat ketika deskripsi alat MCP Anda akan mengonsumsi lebih dari 10% jendela konteks. Anda dapat menyesuaikan ambang batas ini atau menonaktifkan pencarian alat sepenuhnya. Ketika dipicu:
  1. Alat MCP ditangguhkan 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 konteks
  4. Alat MCP terus bekerja persis seperti sebelumnya dari perspektif Anda

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

Konfigurasi pencarian alat

Pencarian alat diaktifkan secara default: alat MCP ditangguhkan dan ditemukan sesuai permintaan. Ketika ANTHROPIC_BASE_URL menunjuk ke host non-pihak pertama, pencarian alat dinonaktifkan secara default karena sebagian besar proxy tidak meneruskan blok tool_reference. Atur ENABLE_TOOL_SEARCH secara eksplisit jika proxy Anda melakukannya. 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:
NilaiPerilaku
(tidak diatur)Diaktifkan secara default. Dinonaktifkan ketika ANTHROPIC_BASE_URL adalah host non-pihak pertama
trueSelalu diaktifkan, termasuk untuk ANTHROPIC_BASE_URL non-pihak pertama
autoDiaktifkan ketika alat MCP melebihi 10% konteks
auto:<N>Diaktifkan pada ambang batas khusus, di mana <N> adalah persentase (misalnya, auto:5 untuk 5%)
falseDinonaktifkan, semua alat MCP dimuat sebelumnya
# Gunakan ambang batas khusus 5%
ENABLE_TOOL_SEARCH=auto:5 claude

# Nonaktifkan pencarian alat sepenuhnya
ENABLE_TOOL_SEARCH=false claude
Atau atur nilai dalam field env settings.json Anda. Anda juga dapat menonaktifkan alat MCPSearch secara khusus menggunakan pengaturan disallowedTools:
{
  "permissions": {
    "deny": ["MCPSearch"]
  }
}

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
Tips:
  • Prompt MCP ditemukan secara dinamis dari server yang terhubung
  • Argumen diurai berdasarkan parameter yang ditentukan prompt
  • Hasil prompt disuntikkan langsung ke dalam percakapan
  • Nama server dan prompt dinormalisasi (spasi menjadi garis bawah)

Konfigurasi MCP yang dikelola

Untuk organisasi yang memerlukan kontrol terpusat atas server MCP, Claude Code mendukung dua opsi konfigurasi:
  1. Kontrol eksklusif dengan managed-mcp.json: Terapkan set server MCP tetap yang tidak dapat dimodifikasi atau diperluas pengguna
  2. 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:
  • macOS: /Library/Application Support/ClaudeCode/managed-mcp.json
  • Linux dan WSL: /etc/claude-code/managed-mcp.json
  • Windows: C:\Program Files\ClaudeCode\managed-mcp.json
Ini adalah jalur sistem (bukan direktori home pengguna seperti ~/Library/...) yang memerlukan hak istimewa administrator. Mereka dirancang untuk diterapkan oleh administrator IT.
File managed-mcp.json menggunakan format yang sama seperti file .mcp.json standar:
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "company-internal": {
      "type": "stdio",
      "command": "/usr/local/bin/company-mcp-server",
      "args": ["--config", "/etc/company/mcp-config.json"],
      "env": {
        "COMPANY_API_URL": "https://internal.company.com"
      }
    }
  }
}

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.
Memilih antara opsi: Gunakan Opsi 1 (managed-mcp.json) ketika Anda ingin menerapkan set server tetap tanpa kustomisasi pengguna. Gunakan Opsi 2 (daftar putih/daftar hitam) ketika Anda ingin mengizinkan pengguna menambahkan server mereka sendiri dalam batasan kebijakan.

Opsi pembatasan

Setiap entri dalam daftar putih atau daftar hitam dapat membatasi server dengan tiga cara:
  1. Berdasarkan nama server (serverName): Cocok dengan nama server yang dikonfigurasi
  2. Berdasarkan perintah (serverCommand): Cocok dengan perintah dan argumen yang tepat yang digunakan untuk memulai server stdio
  3. 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 entri serverCommand 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
Perilaku server jarak jauh:
  • Ketika daftar putih berisi entri serverUrl 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
{
  "allowedMcpServers": [
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverUrl": "https://*.internal.corp/*" }
  ]
}
Hasil:
  • Server HTTP di https://mcp.company.com/api: ✅ Diizinkan (cocok dengan pola URL)
  • Server HTTP di https://api.internal.corp/mcp: ✅ Diizinkan (cocok dengan wildcard subdomain)
  • Server HTTP di https://external.com/mcp: ❌ Diblokir (tidak cocok dengan pola URL apa pun)
  • Server stdio dengan perintah apa pun: ❌ Diblokir (tidak ada entri nama atau perintah untuk dicocokkan)
{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
Hasil:
  • Server stdio dengan ["npx", "-y", "approved-package"]: ✅ Diizinkan (cocok dengan perintah)
  • Server stdio dengan ["node", "server.js"]: ❌ Diblokir (tidak cocok dengan perintah)
  • Server HTTP bernama “my-api”: ❌ Diblokir (tidak ada entri nama untuk dicocokkan)
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
Hasil:
  • Server stdio bernama “local-tool” dengan ["npx", "-y", "approved-package"]: ✅ Diizinkan (cocok dengan perintah)
  • Server stdio bernama “local-tool” dengan ["node", "server.js"]: ❌ Diblokir (entri perintah ada tetapi tidak cocok)
  • Server stdio bernama “github” dengan ["node", "server.js"]: ❌ Diblokir (server stdio harus cocok dengan perintah ketika entri perintah ada)
  • Server HTTP bernama “github”: ✅ Diizinkan (cocok dengan nama)
  • Server HTTP bernama “other-api”: ❌ Diblokir (nama tidak cocok)
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverName": "internal-tool" }
  ]
}
Hasil:
  • 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)
Saat menggunakan managed-mcp.json: Pengguna tidak dapat menambahkan server MCP melalui claude mcp add atau file konfigurasi. Pengaturan allowedMcpServers dan deniedMcpServers masih berlaku untuk memfilter server yang dikelola mana yang benar-benar dimuat.