- Memilih pola yang sesuai dengan tingkat kontrol yang Anda butuhkan
- Menerapkan set server tetap dengan
managed-mcp.json, termasuk cara menonaktifkan MCP sepenuhnya - Mengontrol server dengan daftar izin dan daftar penolakan
- Memberitahu pengguna apa yang diharapkan ketika pembatasan memblokir server
- Memantau server mana yang benar-benar digunakan organisasi Anda
Halaman Security mencakup model ancaman MCP dan cara mengevaluasi server sebelum menyetujuinya. Tentukan apa yang akan diterapkan mencakup pembatasan MCP bersama dengan kontrol administratif lainnya.
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.
Claude Code tidak memiliki registri server MCP bawaan yang dapat ditelusuri dan diinstal pengguna. Untuk pola katalog yang disetujui, bagikan daftar yang disetujui dan perintah
claude mcp add di tempat yang akan ditemukan pengguna Anda, seperti wiki internal, atau distribusikan server sebagai plugin melalui marketplace plugin yang dikelola sehingga pengguna dapat menelusuri dan menginstalnya dari /plugin.Kontrol eksklusif dengan managed-mcp.json
Jika Anda menerapkan filemanaged-mcp.json, Claude Code hanya memuat server yang didefinisikan file tersebut. Pengguna tidak dapat menambah, memodifikasi, atau menggunakan server MCP lain apa pun, termasuk server yang disediakan plugin. File juga menekan konektor claude.ai kecuali Anda mengizinkannya bersama set yang dikelola.
Dua pengaturan lainnya dapat memfilter set yang dikelola lebih lanjut:
allowedMcpServersdandeniedMcpServersjuga berlaku untuk server yang dikelola, jadi server yang dikelola yang tidak melewati mereka tidak akan dimuat.deniedMcpServerspengguna sendiri digabungkan dari pengaturan mereka, jadi pengguna dapat memblokir server yang dikelola untuk diri mereka sendiri.
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:
File menggunakan format yang sama dengan file proyek
.mcp.json:
Autentikasi dengan kredensial per pengguna
Pengguna apa pun di mesin dapat membaca file ini, jadi jangan simpan kunci API atau kredensial lain dalam blokenv. Teruskan kredensial per pengguna dengan salah satu dari ini:
- Ekspansi
${VAR}untuk membaca rahasia dari lingkungan setiap pengguna. - OAuth atau header per pengguna sehingga setiap pengguna mengautentikasi sebagai diri mereka sendiri.
headersHelperuntuk menghasilkan kredensial pada waktu koneksi.
Validasi konfigurasi
Untuk mengonfirmasi file berlaku, jalankan dua pemeriksaan pada mesin yang dikelola:claude mcp listmenampilkan hanya server dimanaged-mcp.json. Jika server pengguna sendiri masih muncul, file tidak dibaca; periksa jalur dan izin.claude mcp add --transport http test https://example.com/mcpgagal denganCannot 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
Terapkanmanaged-mcp.json yang berisi peta server kosong untuk memblokir setiap server MCP:
/mcp, dan 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
Menerapkanmanaged-mcp.json menekan konektor claude.ai secara default, 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. Memerlukan Claude Code v2.1.149 atau lebih baru.
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; server yang disediakan plugin tetap ditekan.
Claude Code membaca pengaturan ini 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, ataumanaged-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; --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.
allowManagedMcpServersOnly terpisah dari allowManagedPermissionRulesOnly, yang mengunci aturan izin saja. Menetapkan bendera itu tidak menerapkan daftar izin MCP.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:
Membiarkan
allowedMcpServers tidak diatur berbeda dari menetapkannya ke array kosong:
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,serverNamemenerima 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 entriserverUrlketika Anda memerlukan penolakan yang kuat terhadap penggantian nama, atau ketika nama konektor bertabrakan dan mendapatkan akhiran(N). - Dalam
allowedMcpServers,serverNameterbatas pada huruf, angka, tanda hubung, dan garis bawah. GunakanserverUrluntuk daftar izin konektor claude.ai.
disableClaudeAiConnectors.
Bagaimana server dievaluasi
Sebelum memuat server, termasuk yang darimanaged-mcp.json, Claude Code menjalankan tiga pemeriksaan secara berurutan:
- Gabungkan daftarnya. Entri daftar izin dan daftar penolakan dari setiap sumber pengaturan digabungkan menjadi satu daftar izin dan satu daftar penolakan. Ketika
allowManagedMcpServersOnlyadalahtrue, hanya daftar izin yang dikelola yang disimpan; daftar penolakan selalu digabungkan dari setiap sumber. - 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.
- Periksa daftar izin. Jika
allowedMcpServerstidak 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.
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
serverCommanddanserverUrldiperluas sebelum pencocokan. Baik entri kebijakan maupun nilai yang dikonfigurasi server melalui ekspansi${VAR}dan${VAR:-default}yang sama seperti.mcp.json, 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}. NilaiserverNamecocok secara harfiah dan tidak pernah diperluas. - URL mendukung wildcard
*di mana pun dalam pola, termasuk skema. Pencocokan nama host tidak peka huruf besar-kecil dan mengabaikan titik FQDN yang tertinggal, jadihttps://Mcp.Example.com/*cocok denganhttps://mcp.example.com/api. Jalur tetap peka huruf besar-kecil.
Karena ekspansi
${VAR} membaca lingkungan proses Claude Code sendiri, entri kebijakan serverCommand atau serverUrl yang mereferensikan variabel diperluas ke nilai apa pun yang ditetapkan pengguna. Gunakan URL dan perintah literal untuk entri yang Anda andalkan untuk penegakan.
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:- Baris 3: entri
serverUrlpertama. 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
serverCommandpertama. Efek yang sama untuk server stdio, jadi setiap server lokal harus cocok dengan perintah yang terdaftar dengan tepat. - Baris 11: entri
serverNamedalam daftar penolakan. Entri daftar penolakan selalu berlaku, jadi server apa pun yang bernamadangerous-serverdiblokir terlepas dari URL atau perintahnya.
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
Daftar izin hanya URL
Daftar izin hanya perintah
Daftar izin hanya perintah
Daftar izin nama dan perintah campuran
Daftar izin nama dan perintah campuran
Daftar izin hanya nama
Daftar izin hanya nama
Daftar izin dengan penggantian daftar penolakan
Daftar izin dengan penggantian daftar penolakan
Batasi daftar izin ke pengaturan yang dikelola saja
Untuk membuat daftar izin yang dikelola satu-satunya yang berlaku, aturallowManagedMcpServersOnly dalam file pengaturan yang dikelola:
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
Ketika pembatasan memblokir server, pengguna melihat kesalahan dariclaude mcp add atau server berhenti dimuat secara diam-diam. Gunakan tabel ini untuk mengenali laporan tersebut dan untuk memberitahu pengguna apa yang diharapkan sebelum Anda meluncurkan perubahan:
Dalam kasus terakhir, pengguna tidak mendapat sinyal bahwa kebijakan adalah alasan server mereka menghilang, 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. AturOTEL_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:Sumber daya terkait
- Tentukan apa yang akan diterapkan: pembatasan MCP bersama dengan aturan izin, sandboxing, dan kontrol admin lainnya
- Hubungkan Claude Code ke alat melalui MCP: referensi MCP lengkap, termasuk transportasi, cakupan, dan autentikasi
- Pengaturan: hierarki pengaturan dan bagaimana pengaturan yang dikelola memiliki prioritas
- Pengaturan yang dikelola server: kirimkan
allowedMcpServersdandeniedMcpServersdari konsol admin Claude.ai - Keamanan: model ancaman yang dilindungi kontrol ini
- Panduan Administrator Perusahaan Claude: SSO, SCIM, manajemen kursi, dan playbook peluncuran