SpyBara
Go Premium

managed-mcp.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 48 additions and 25 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Fri 18 23:58 Fri 25 23:58

Kontrol akses server MCP untuk organisasi Anda

Batasi server MCP mana yang dapat ditambahkan atau dihubungkan pengguna dengan file konfigurasi yang dikelola, daftar izin, dan daftar penolakan.

Secara default, siapa pun yang menjalankan Claude Code dapat menghubungkan server MCP apa pun yang mereka pilih. Anthropic meninjau konektor terhadap kriteria pendaftarannya sebelum menambahkannya ke Direktori Anthropic, tetapi tidak melakukan audit keamanan atau mengelola server MCP apa pun. Sebagai administrator, Anda dapat membatasi server mana yang berjalan di organisasi Anda, mulai dari menerapkan set yang disetujui tetap hingga menonaktifkan MCP sepenuhnya.

Pembatasan ini mencakup server yang dimuat Claude Code sendiri, termasuk konektor yang diambilnya dari claude.ai. Konektor yang dikirimkan aplikasi desktop ke sesi lokal dan SSH-nya tiba dalam proses dan diatur dari pengaturan organisasi claude.ai Anda sebagai gantinya; Bagaimana konektor mencapai Claude Code menunjukkan kontrol mana yang berlaku untuk konektor di setiap jenis sesi, termasuk sesi cloud.

Halaman ini mencakup cara untuk:

Pilih pola

Claude Code mendukung berbagai tingkat pembatasan. Setiap pola menggunakan satu atau kedua mekanisme yang dibahas di bawah: managed-mcp.json untuk menerapkan set tetap, dan allowedMcpServers/deniedMcpServers untuk memfilter apa yang dikonfigurasi pengguna.

Pola Apa yang dilakukan Konfigurasi
Nonaktifkan MCP Tidak ada server yang dimuat, kecuali server dalam proses yang didaftarkan oleh aplikasi yang memulai sesi managed-mcp.json dengan peta server kosong
Penerapan tetap Setiap pengguna mendapatkan server yang sama dan tidak dapat menambah yang lain managed-mcp.json dengan server yang Anda inginkan
Katalog yang disetujui Publikasikan daftar server yang disetujui; pengguna menambahkan yang mereka inginkan, yang lain diblokir allowedMcpServers + allowManagedMcpServersOnly: true
Server plugin saja Pengguna tidak dapat menambah server melalui ~/.claude.json atau .mcp.json; server plugin tetap dimuat strictPluginOnlyCustomization dengan mcp dalam daftar
Daftar izin lunak Terapkan daftar izin yang dapat diperluas pengguna dalam pengaturan mereka sendiri allowedMcpServers tanpa allowManagedMcpServersOnly
Hanya daftar penolakan Blokir server yang diketahui buruk, izinkan yang lain deniedMcpServers
Tanpa pembatasan Pengguna menambahkan apa pun Jangan terapkan konfigurasi MCP yang dikelola

Kontrol eksklusif dengan managed-mcp.json

Jika Anda menerapkan file managed-mcp.json, Claude Code hanya memuat server yang didefinisikan file tersebut, ditambah server dalam proses apa pun yang aplikasi yang memulai sesi mendaftarkan, seperti server Claude Code sendiri dari ekstensi VS Code atau konektor yang dikirimkan aplikasi desktop. Pengguna tidak dapat menambah, memodifikasi, atau menggunakan server MCP lain apa pun, termasuk server yang disediakan plugin dan server yang diteruskan dengan flag CLI --mcp-config. File juga menekan konektor claude.ai yang Claude Code ambil sendiri kecuali Anda mengizinkannya bersama set yang dikelola.

Apa yang dilihat pengguna ketika sesi menerima server --mcp-config tergantung di mana sesi berjalan:

  • Di workstation, Claude Code keluar saat startup dengan You cannot dynamically configure MCP servers when an enterprise MCP config is present.
  • Di sesi cloud di host tempat file diterapkan, seperti runner yang di-host sendiri, Claude Code dimulai dengan server yang dikelola saja dan melewati konektor claude.ai dan server lain yang dikirimkan host cloud melalui --mcp-config. Tidak ada apa pun dalam sesi yang memberi tahu pengguna server mana yang ditinggalkan. Claude Code menamai mereka dalam peringatan pada stderr-nya, yang runner yang di-host sendiri catat pada tingkat log debug. Sebelum v2.1.229, sesi ini keluar dengan kesalahan yang sama yang ditampilkan workstation.

Jika pengguna meneruskan --strict-mcp-config, Claude Code keluar saat startup di workstation dan dalam sesi cloud, karena flag tersebut meminta untuk mengganti set yang dikelola.

Dua pengaturan lainnya dapat memfilter set yang dikelola lebih lanjut:

  • allowedMcpServers dan deniedMcpServers juga berlaku untuk server yang dikelola, jadi server yang dikelola yang tidak melewati mereka tidak akan dimuat.
  • deniedMcpServers pengguna sendiri digabungkan dari pengaturan mereka, jadi pengguna dapat memblokir server yang dikelola untuk diri mereka sendiri.

Lihat Bagaimana server dievaluasi untuk urutan pemeriksaan lengkap.

managed-mcp.json adalah file mandiri, jadi tidak dapat dikirimkan melalui pengaturan yang dikelola server. Proses apa pun yang dapat menulis ke jalur sistem dengan hak istimewa administrator dapat menerapkannya. Dalam skala besar, itu biasanya melalui alat manajemen perangkat, seperti Jamf atau profil konfigurasi di macOS, Group Policy atau Intune di Windows, atau manajemen armada pilihan Anda di Linux. Claude Code mencari file di salah satu jalur berikut:

Platform Jalur
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

File menggunakan format yang sama dengan file proyek .mcp.json:

{
  "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.example.com"
      }
    }
  }
}

Autentikasi dengan kredensial per pengguna

Pengguna apa pun di mesin dapat membaca file ini, jadi jangan simpan kunci API atau kredensial lain dalam blok env. Teruskan kredensial per pengguna dengan salah satu dari ini:

Validasi konfigurasi

Untuk mengonfirmasi file berlaku, jalankan dua pemeriksaan pada mesin yang dikelola:

  1. claude mcp list menampilkan hanya server di managed-mcp.json. Jika server pengguna sendiri masih muncul, file tidak dibaca; periksa jalur dan izin.
  2. claude mcp add --transport http test https://example.com/mcp gagal dengan Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers. URL tidak perlu menjadi server nyata, karena pemeriksaan kebijakan menolak perintah sebelum apa pun dihubungi.

Nonaktifkan MCP sepenuhnya

Terapkan managed-mcp.json yang berisi peta server kosong untuk memblokir setiap server MCP selain server dalam proses yang aplikasi yang memulai sesi mendaftarkan:

{
  "mcpServers": {}
}

claude mcp add gagal dengan kesalahan kebijakan perusahaan di atas. Server yang dikonfigurasi pengguna sebelumnya berhenti dimuat saat mereka memulai sesi berikutnya, tanpa peringatan bahwa kebijakan adalah alasannya.

Izinkan konektor claude.ai bersama set yang dikelola

Secara default, menerapkan managed-mcp.json menekan konektor claude.ai yang Claude Code ambil sendiri, termasuk konektor yang dikonfigurasi administrator untuk organisasi di konsol admin claude.ai. Untuk memuat konektor tersebut bersama server di managed-mcp.json, atur "allowAllClaudeAiMcps": true dalam sumber pengaturan yang dikelola.

Dengan pengaturan diaktifkan, Claude Code memuat konektor claude.ai yang sama yang akan dimuat jika managed-mcp.json tidak diterapkan. Daftar izin dan daftar penolakan masih berlaku untuk konektor tersebut, jadi Anda dapat memblokir yang spesifik dengan deniedMcpServers. Pengaturan hanya mempengaruhi konektor claude.ai yang Claude Code ambil sendiri; server yang disediakan plugin tetap ditekan.

Sesi cloud dan sesi lokal dan SSH aplikasi desktop menerima konektor dengan cara lain, dijelaskan dalam Bagaimana konektor mencapai Claude Code. managed-mcp.json di host yang menjalankan sesi cloud, seperti host runner yang di-host sendiri, menekan konektor sesi tersebut terlepas dari apakah Anda menetapkan allowAllClaudeAiMcps. Tidak ada managed-mcp.json yang mencapai konektor yang dikirimkan aplikasi desktop ke sesi lokal dan SSH-nya.

Claude Code membaca allowAllClaudeAiMcps hanya dari tingkat kebijakan yang dikendalikan admin: pengaturan yang dikelola server, kunci plist yang diterapkan MDM atau kunci registri HKLM, atau file managed-settings.json sistem. Menempatkannya dalam pengaturan pengguna atau proyek tidak berpengaruh, jadi pengguna tidak dapat mengaktifkan kembali konektor yang kontrol eksklusif tekan.

Kontrol berbasis kebijakan dengan daftar izin dan daftar penolakan

Daftar izin dan daftar penolakan memfilter server mana yang dikonfigurasi yang diizinkan untuk dimuat. Mereka bukan registri: server masih harus ditambahkan oleh pengguna, plugin, atau managed-mcp.json sebelum daftar izin atau daftar penolakan berlaku padanya. Untuk menerapkan server kepada pengguna, gunakan managed-mcp.json. Kedua daftar juga memfilter server yang dilewatkan dengan bendera CLI --mcp-config, selain entri type: "sdk" dalam proses; --strict-mcp-config membatasi file konfigurasi mana yang dimuat dan tidak melewati salah satu daftar.

Untuk membuat daftar izin berwenang, atur allowedMcpServers dan allowManagedMcpServersOnly: true bersama-sama dalam sumber pengaturan yang dikelola, seperti pengaturan yang dikelola server atau file managed-settings.json yang diterapkan. Batasi daftar izin ke pengaturan yang dikelola saja menunjukkan konfigurasi. Tanpa allowManagedMcpServersOnly, daftar izin dari setiap sumber pengaturan digabungkan, termasuk ~/.claude/settings.json pengguna sendiri, jadi pengguna dapat memperluas apa yang diizinkan daftar izin Anda. Daftar penolakan digabungkan dari setiap sumber terlepas dari itu.

Cocokkan server berdasarkan URL, perintah, atau nama

allowedMcpServers dan deniedMcpServers adalah daftar entri. Setiap entri adalah objek dengan satu kunci yang mengidentifikasi server berdasarkan URL, perintah, atau nama mereka:

Kunci Cocok Gunakan untuk
serverUrl URL server jarak jauh, tepat atau dengan wildcard * Server HTTP dan SSE
serverCommand Perintah dan argumen yang tepat yang memulai server stdio Server stdio
serverName Label yang ditetapkan pengguna. Kecocokan tepat saja; wildcard tidak diperluas Tipe apa pun, tetapi lihat Peringatan di bawah

Membiarkan allowedMcpServers tidak diatur berbeda dari menetapkannya ke array kosong:

Pengaturan Tidak diatur (default) Array kosong [] Diisi
allowedMcpServers Semua server diizinkan Tidak ada server yang diizinkan Hanya server yang cocok diizinkan
deniedMcpServers Tidak ada server yang diblokir Tidak ada server yang diblokir Server yang cocok diblokir

Lihat Entri tidak valid dalam pengaturan yang dikelola untuk mengetahui apa yang terjadi ketika entri gagal validasi skema.

Validasi serverName berbeda antara dua daftar:

  • Dalam deniedMcpServers, serverName menerima string non-kosong apa pun, jadi Anda dapat memblokir konektor claude.ai berdasarkan nama tampilan mereka. Misalnya, { "serverName": "claude.ai Slack" } memblokir konektor Slack. Lebih suka entri serverUrl ketika Anda memerlukan penolakan yang kuat terhadap penggantian nama, atau ketika nama konektor bertabrakan dan mendapatkan akhiran (N).
  • Dalam allowedMcpServers, serverName terbatas pada huruf, angka, tanda hubung, dan garis bawah. Gunakan serverUrl untuk daftar izin konektor claude.ai yang Claude Code ambil sendiri; untuk konektor yang host cloud berikan ke sesi yang di-host sendiri, gunakan entri yang tercantum di bawah Lalu lintas konektor meninggalkan jaringan Anda sebagai gantinya.

Untuk mematikan semua konektor claude.ai yang Claude Code ambil sendiri, lihat disableClaudeAiConnectors.

Bagaimana server dievaluasi

Sebelum memuat server, termasuk yang dari managed-mcp.json, Claude Code menjalankan tiga pemeriksaan di bawah ini secara berurutan. Ini menjalankannya lagi ketika pengguna menghubungkan kembali server atau mengaktifkan yang dinonaktifkan di /mcp. Server type: "sdk" dalam proses, yang aplikasi yang memulai sesi mendaftarkan, melewati ketiganya.

  1. Gabungkan daftarnya. Entri daftar izin dan daftar penolakan dari setiap sumber pengaturan digabungkan menjadi satu daftar izin dan satu daftar penolakan, dengan daftar sumber yang dikelola berasal dari sumber yang dikelola atau sumber yang Claude Code terapkan. Ketika allowManagedMcpServersOnly adalah true, hanya daftar izin yang dikelola yang disimpan; daftar penolakan selalu digabungkan dari setiap sumber.
  2. Periksa daftar penolakan. Server yang cocok dengan entri daftar penolakan apa pun, berdasarkan URL, perintah, atau nama, diblokir. Tidak ada yang mengganti kecocokan daftar penolakan.
  3. Periksa daftar izin. Jika allowedMcpServers tidak diatur di mana pun, setiap server yang melewati daftar penolakan dimuat. Jika diatur, apa yang harus cocok dengan server tergantung pada jenisnya, ditunjukkan dalam tabel di bawah. Server bawaan seperti Claude di Chrome, server ide yang Claude Code hubungkan ke VS Code atau IDE JetBrains yang sedang berjalan, dan server yang CLI sendiri konfigurasi melewati pemeriksaan ini.
Jenis server Diizinkan ketika cocok
Jarak jauh (HTTP atau SSE) Entri serverUrl. Kecocokan serverName hanya dihitung ketika daftar izin tidak berisi entri serverUrl
Stdio Entri serverCommand. Kecocokan serverName hanya dihitung ketika daftar izin tidak berisi entri serverCommand

Tiga aturan pencocokan berlaku dalam pemeriksaan tersebut:

  • Perintah cocok dengan tepat. Setiap argumen, dalam urutan. ["npx", "-y", "server"] tidak cocok dengan ["npx", "server"] atau ["npx", "-y", "server", "--flag"].
  • Nilai serverCommand dan serverUrl diperluas sebelum pencocokan. Baik entri kebijakan maupun nilai yang dikonfigurasi server melalui ekspansi ${VAR} dan ${VAR:-default}, jadi entri yang ditulis sebagai ["${HOME}/bin/server"] cocok dengan konfigurasi server yang menggunakan referensi yang sama atau jalur yang diperluas. Di Windows, referensikan variabel lingkungan yang diatur di sana, seperti ${USERPROFILE} bukan ${HOME}. Nilai serverName cocok secara harfiah dan tidak pernah diperluas. Kedua sisi membaca lingkungan yang berbeda; Bagaimana entri kebijakan diperluas mencakup yang mana, dan bagaimana entri daftar izin dan daftar penolakan berbeda.
  • URL mendukung wildcard * di mana pun dalam pola, termasuk skema. Pencocokan nama host tidak peka huruf besar-kecil dan mengabaikan titik FQDN yang tertinggal, jadi https://Mcp.Example.com/* cocok dengan https://mcp.example.com/api. Jalur tetap peka huruf besar-kecil.
Pola Mengizinkan
https://mcp.example.com/* Semua jalur di domain tertentu
https://mcp.example.com Juga semua jalur di domain itu. Pola tanpa jalur cocok dengan jalur apa pun
https://*.example.com/* Subdomain apa pun dari example.com
http://localhost:*/* Port apa pun di localhost
*://mcp.example.com/* Skema apa pun ke domain tertentu

Bagaimana entri kebijakan diperluas

Nilai yang dikonfigurasi server diperluas dari lingkungan proses langsung, seperti sisa .mcp.json. Entri kebijakan diperluas dari lingkungan yang disematkan sebagai gantinya, jadi variabel yang ditetapkan oleh file pengaturan proyek atau pengguna tidak dapat mengubah apa yang dimaksud entri daftar izin. Karena entri kebijakan masih bergantung pada nilai shell peluncur untuk variabel apa pun yang direferensikannya, gunakan URL dan perintah literal untuk entri yang Anda andalkan untuk penegakan.

Daftar entri Diperluas dari Ekspansi yang akan mengubah skema, host, atau jalur sumber entri URL
allowedMcpServers Lingkungan Claude Code dimulai dengan, ditambah nilai env dari pengaturan yang dikelola Claude Code mengabaikan entri
deniedMcpServers Yang sama, dan variabel tanpa nilai startup dan tidak ada :-default diisi dari file pengaturan di luar repositori, seperti pengaturan pengguna atau yang dikelola, yang hanya pernah memperluas apa yang cocok dengan entri Entri masih cocok

Memerlukan Claude Code v2.1.219 atau lebih baru.

Contoh konfigurasi

Konfigurasi di bawah menyiapkan daftar izin keras dengan daftar penolakan. Baris yang disorot mengubah cara sisa daftar dievaluasi, dan callout setelah blok menjelaskan masing-masing:

{
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverUrl": "https://mcp.sentry.dev/*" },
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "."] },
    { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },
    { "serverUrl": "https://mcp.example.com/*" },
    { "serverUrl": "https://*.internal.example.com/*" }
  ],
  "deniedMcpServers": [
    { "serverName": "dangerous-server" },
    { "serverCommand": ["npx", "-y", "unapproved-package"] },
    { "serverUrl": "https://*.untrusted.example.com/*" }
  ]
}
  • Baris 3: entri serverUrl pertama. Setelah satu ada, setiap server jarak jauh harus cocok dengan pola URL, jadi pengguna tidak dapat mendapatkan server jarak jauh yang tidak terdaftar dengan memberikannya nama yang diizinkan.
  • Baris 5: entri serverCommand pertama. Efek yang sama untuk server stdio, jadi setiap server lokal harus cocok dengan perintah yang terdaftar dengan tepat.
  • Baris 11: entri serverName dalam daftar penolakan. Entri daftar penolakan selalu berlaku, jadi server apa pun yang bernama dangerous-server diblokir terlepas dari URL atau perintahnya.

Entri serverName dalam daftar izin ini tidak akan pernah cocok dengan apa pun, karena kedua jenis transportasi sudah memiliki entri yang lebih ketat.

Accordion di bawah menjelaskan cara server dievaluasi terhadap kombinasi daftar izin dan daftar penolakan lainnya.

Daftar izin hanya URL
{
"allowedMcpServers": [
{ "serverUrl": "https://mcp.example.com/*" },
{ "serverUrl": "https://*.internal.example.com/*" }
]
}
Server Hasil
Server HTTP di https://mcp.example.com/api Diizinkan: cocok dengan pola URL
Server HTTP di https://api.internal.example.com/mcp Diizinkan: cocok dengan subdomain wildcard
Server HTTP di https://external.example.com/mcp Diblokir: tidak cocok dengan pola URL apa pun
Server stdio dengan perintah apa pun Diblokir: tidak ada entri nama atau perintah untuk cocok
Daftar izin hanya perintah
{
"allowedMcpServers": [
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Server 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 cocok
Daftar izin nama dan perintah campuran
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Server 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
Daftar izin hanya nama
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverName": "internal-tool" }
]
}
Server 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
Daftar izin dengan penggantian daftar penolakan
{
"allowedMcpServers": [
{ "serverUrl": "https://*.example.com/*" }
],
"deniedMcpServers": [
{ "serverUrl": "https://staging.example.com/*" }
]
}
Server Hasil
Server HTTP di https://mcp.example.com/api Diizinkan: cocok dengan pola URL daftar izin, tidak ada kecocokan daftar penolakan
Server HTTP di https://staging.example.com/api Diblokir: cocok dengan keduanya, tetapi daftar penolakan memiliki prioritas
Server HTTP di https://other.com/mcp Diblokir: tidak cocok dengan daftar izin

Batasi daftar izin ke pengaturan yang dikelola saja

Untuk membuat daftar izin yang dikelola satu-satunya yang berlaku, atur allowManagedMcpServersOnly dalam file pengaturan yang dikelola:

{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverUrl": "https://*.internal.example.com/*" }
  ]
}

Ketika allowManagedMcpServersOnly adalah true, daftar izin dari pengaturan pengguna, proyek, dan lokal diabaikan. Daftar penolakan masih digabungkan dari semua sumber, jadi pengguna selalu dapat memblokir server untuk diri mereka sendiri.

Bagaimana pembatasan muncul kepada pengguna

Untuk apa yang dilihat pengguna saat startup ketika managed-mcp.json digunakan dan sesi juga memiliki server --mcp-config, lihat Kontrol eksklusif dengan managed-mcp.json. Gunakan tabel ini untuk mengenali laporan lainnya dan untuk memberitahu pengguna apa yang diharapkan sebelum Anda meluncurkan perubahan:

Pembatasan Apa yang dilihat pengguna
managed-mcp.json ada dan pengguna menjalankan claude mcp add Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers
Server ada di daftar penolakan dan pengguna menjalankan claude mcp add Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy
Server tidak ada di daftar izin dan pengguna menjalankan claude mcp add Cannot add MCP server "<name>": not allowed by enterprise policy
Server yang dikonfigurasi sebelumnya sekarang diblokir oleh kebijakan Server menghilang secara diam-diam dari /mcp dan claude mcp list tanpa peringatan
Server menjadi diblokir saat sesi sedang berjalan, dan pengguna memilih Reconnect atau menyalakannya kembali di /mcp MCP server <name> is blocked by enterprise managed policy

Ketika server menghilang secara diam-diam, pengguna tidak mendapat sinyal bahwa kebijakan adalah alasannya, jadi beri tahu pengguna yang terpengaruh server mana yang diblokir saat Anda meluncurkan pembatasan baru.

Pantau penggunaan MCP

Ketika ekspor OpenTelemetry dikonfigurasi, Claude Code dapat merekam server MCP dan alat mana yang digunakan pengguna. Atur OTEL_LOG_TOOL_DETAILS=1 untuk menyertakan nama server dan alat MCP dalam acara alat, kemudian agregasikan di kolektor Anda untuk melihat server mana yang benar-benar dihubungkan pengguna Anda. Lihat Monitoring untuk menyiapkan pengekspor dan untuk skema acara lengkap.

Ringkasan konfigurasi

Setiap file dan pengaturan yang dibahas halaman ini, apa yang dikontrolnya, dan cara mengirimkannya:

Permukaan Apa yang dikontrol Di mana itu berada Cara mengirimkan
managed-mcp.json Set server tetap, kontrol eksklusif Jalur sistem: /Library/Application Support/ClaudeCode/, /etc/claude-code/, atau C:\Program Files\ClaudeCode\ MDM, GPO, manajemen armada, atau proses apa pun dengan hak istimewa administrator. Tidak dapat diatur melalui pengaturan yang dikelola server
allowedMcpServers Daftar izin server yang diizinkan Cakupan pengaturan apa pun; Claude Code menggabungkan daftar dari setiap cakupan kecuali allowManagedMcpServersOnly diatur, dan mengambil daftar cakupan yang dikelola dari sumber yang dikelola yang dipilihnya atau menggabungkan Untuk penegakan, sumber pengaturan yang dikelola: pengaturan yang dikelola server, managed-settings.json, profil MDM, atau registri
deniedMcpServers Daftar penolakan server yang diblokir Cakupan pengaturan apa pun; Claude Code menggabungkan daftar dari setiap cakupan, dan di seluruh sumber yang dikelola seperti cara Claude Code menggabungkan sumber yang dikelola menjelaskan Sama seperti allowedMcpServers
allowManagedMcpServersOnly Mengunci daftar izin ke sumber yang dikelola saja Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain Sama seperti allowedMcpServers
allowAllClaudeAiMcps Memuat konektor claude.ai yang Claude Code ambil sendiri bersama managed-mcp.json. File managed-mcp.json di host yang menjalankan sesi cloud masih menekan konektor sesi tersebut Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain Sama seperti allowedMcpServers