Alat MCP
cc_server menghosting satu registri alat MCP (JSON-RPC 2.0), yang dilayani pada port server utama (bawaan 9030) di POST /mcp dan GET /sse, versi protokol 2024-11-05. Setiap klien menjangkau registri yang sama: desktop, build web, klien MCP eksternal, dan runtime agen bawaan. Server MCP eksternal dapat dijembatani ke registri yang sama sebagai lapisan dinamis.
Ukuran registri
Bagian berjudul “Ukuran registri”| Ukuran | Jumlah |
|---|---|
Alat yang didaftarkan oleh cc_server |
110 |
Dari packages/cc_mcp |
108 |
Dari packages/cc_mcp_client (penemuan alat) |
2 |
Didaftarkan di registri dasar (server_mcp_registry.dart) |
63 |
Didaftarkan pasca-boot saat layanannya menyala (cc_server_runtime.dart) |
47 |
| Dari 63 milik registri dasar, bergantung pada repo graf kode | 5 |
Kelima alat graf kode itu didaftarkan hanya ketika host meneruskan repo graf kode ke buildServerMcpRegistry. cc_server selalu meneruskannya, sehingga seluruh 110-nya aktif di biner yang dikirim.
Registri lengkapnya diumumkan di tools/list tanpa gerbang penemuan. Penyuntingan tiket adalah alat bertipe.
Parameter umum
Bagian berjudul “Parameter umum”workspace_id
Bagian berjudul “workspace_id”Wajib pada setiap alat yang menyentuh data bercakupan ruang kerja. workspace_id yang hilang atau tidak valid mengembalikan galat eksplisit dan nilai yang tidak cocok dengan ruang kerja entitas sasaran akan ditolak alih-alih diabaikan diam-diam. Hilangkan pada alat yang benar-benar global: list_workspaces dan keenam alat umpan berita (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), yang mengikuti daftar feed per pengguna milik pemilik server. Alat penemuan (search_tool_bm25, list_my_tools) menerimanya secara opsional agar dapat mengklasifikasikan kelayakan pemanggilan berdasarkan mode percakapan. Saat agen dikirim oleh server, ruang kerja dipaksakan di sisi server, sehingga agen tidak dapat menjangkau ruang kerja lain dengan memberikan id asing.
Penemuan alat
Bagian berjudul “Penemuan alat”Keduanya berasal dari cc_mcp_client, bukan cc_mcp, dan keduanya mengonsultasikan penjaga mode sehingga melaporkan apa yang dapat dipanggil pada mode percakapan saat ini.
| Alat | Deskripsi |
|---|---|
search_tool_bm25 |
Telusuri katalog alat berdasarkan kata kunci; mengembalikan alat yang cocok, skema argumennya, dan apakah masing-masing dapat dipanggil saat ini juga |
list_my_tools |
Tampilkan daftar alat yang dapat dipanggil saat ini dalam percakapan ini, difilter berdasarkan modenya |
Alat penemuan ketiga, search_tools, hanya ada di dalam harness bawaan dan bukan bagian dari registri MCP ini. Alat itu memberi peringkat pada permukaan alat milik run itu sendiri dan, tidak seperti search_tool_bm25, memuat skema dari apa yang ditemukannya sehingga agen dapat memanggil kecocokan itu pada gilirannya berikutnya. Agen di harness sebaiknya memilihnya; klien MCP memiliki search_tool_bm25.
Alat agen
Bagian berjudul “Alat agen”| Alat | Deskripsi |
|---|---|
list_agents |
Tampilkan daftar agen yang terdaftar di sebuah ruang kerja |
Pesan antar rekan agen dan delegasi
Bagian berjudul “Pesan antar rekan agen dan delegasi”Agen saling berbicara melalui space (tahan lama, terlihat di daftar anggota). ask_agent bersifat permintaan/balasan dengan timeout wajib; delegate_task dijaga di sisi server oleh batas kedalaman, deteksi siklus, selubung anggaran, dan plafon otonomi.
| Alat | Deskripsi |
|---|---|
send_to_agent |
Kirim pesan satu arah ke agen lain, dialamatkan dengan to_agent_id atau to_agent_name yang persis |
ask_agent |
Ajukan pertanyaan ke agen lain dan tunggu balasannya, atau habis waktu |
delegate_task |
Delegasikan tugas ke agen lain sebagai tiket anak yang dilacak |
consult_agent |
Tambahkan spesialis yang paling cocok berdasarkan skill ke space dan kirimkan dengan pengarahan yang terfokus |
todo_read |
Baca daftar tugas percakapan ini yang tersimpan |
Alat skill
Bagian berjudul “Alat skill”Setiap instalasi dan pembaruan melewati gerbang pemindaian fail-closed sebelum konten skill mana pun mencapai disk atau prompt agen.
| Alat | Deskripsi |
|---|---|
list_skills |
Tampilkan daftar slug skill yang tersedia di sebuah ruang kerja |
create_skill |
Buat skill baru dari konten markdown |
install_skill |
Pasang seluruh direktori skill dari repo GitHub pada ref yang dipatok |
update_skill |
Perbarui skill GitHub yang terpasang ke ref baru, memindai ulang dan mematok ulang |
list_skill_updates |
Tampilkan daftar skill yang memiliki versi lebih baru |
verify_skills |
Verifikasi skill yang terkunci terhadap hash kontennya di disk |
pin_skill |
Hash skill yang ada di disk ke dalam skills-lock.json |
Alat rencana, playbook, dan artefak
Bagian berjudul “Alat rencana, playbook, dan artefak”| Alat | Deskripsi |
|---|---|
submit_plan |
Kontrak keluaran mode rencana: pancarkan PlanDocument bertipe yang terbuka di Plan Studio |
create_playbook |
Simpan rencana sebagai templat bernama dan berversi dengan placeholder {{param}} bertipe |
run_playbook |
Buat instance playbook dengan nilai parameter, menghasilkan rencana yang disetujui operator |
publish_artifact |
Publikasikan daftar blok bertipe yang berurutan (markdown, tabel, bagan, mermaid, kode, JSON) yang dirender secara native di klien |
revise_artifact |
Ganti konten artefak yang telah dipublikasikan |
list_artifacts |
Tampilkan daftar artefak ruang kerja |
get_artifact |
Baca satu artefak |
complete_goal |
Nyatakan tujuan tahan lama aktif percakapan (dimulai dengan /goal atau /loop) telah tercapai |
Alat ruang kerja
Bagian berjudul “Alat ruang kerja”| Alat | Deskripsi |
|---|---|
list_workspaces |
Tampilkan daftar semua ruang kerja beserta id dan namanya (global; tanpa workspace_id) |
Alat repo
Bagian berjudul “Alat repo”| Alat | Deskripsi |
|---|---|
list_repos |
Tampilkan daftar repo yang terdaftar di sebuah ruang kerja. Agen pemanggil menerima jalur worktree copy-on-write terisolasi milik percakapannya, tidak pernah checkout aslinya |
Alat pesan
Bagian berjudul “Alat pesan”| Alat | Deskripsi |
|---|---|
list_spaces |
Tampilkan daftar space pesan di sebuah ruang kerja |
get_messages |
Ambil pesan dari sebuah space |
send_message |
Kirim pesan ke sebuah space sebagai agen pengirim yang bernama |
get_space_notes |
Baca dokumen serah-terima bersama milik sebuah space |
update_space_notes |
Ganti dokumen serah-terima bersama milik sebuah space |
todo_write |
Ganti daftar tugas percakapan ini dalam satu panggilan (berikan daftar lengkapnya) |
Alat tinjauan
Bagian berjudul “Alat tinjauan”| Alat | Deskripsi |
|---|---|
start_ai_review |
Mulai tinjauan AI untuk sebuah PR: hitung area tinjauan, sebarkan peninjau spesialis ke space PR, susun penelusuran terpandu, dan finalisasi |
add_review_node |
Tambahkan temuan tinjauan terstruktur (berkas, baris, prioritas P0–P3) ke sebuah space tinjauan |
confirm_review_node |
Konfirmasi temuan rekan; penulisnya tidak dapat mengonfirmasi sendiri |
resolve_review_node |
Tandai temuan sudah diperbaiki setelah benar-benar melakukan perubahan; memposting jejak ke space tinjauan |
dismiss_review_node |
Tolak temuan yang tidak berlaku; mencatat fakta penekanan agar peninjau berhenti menandainya lagi |
request_peer_review |
Minta agen peninjau lain untuk meninjau ulang sebuah temuan |
dispatch_reviewers |
Kirim agen peninjau yang cocok ke sebuah space tinjauan, secara bersamaan |
submit_reviewer_verdict |
Posting putusan ship/hold/block per peninjau beserta keyakinan dan penjelasannya |
finalize_review |
Hitung konsensus per node dan putusan per PR lalu tutup tinjauan |
set_cohort_summary |
Tetapkan ringkasan berbahasa sederhana sebuah kohort tinjauan |
add_review_diagram |
Lampirkan diagram terstruktur yang diverifikasi graf (sequence, entityRelation, stateMachine) ke sebuah kohort |
publish_review_to_github |
Publikasikan tinjauan yang telah difinalisasi ke GitHub sebagai komentar inline plus badan ringkasan |
Alat memori
Bagian berjudul “Alat memori”| Alat | Deskripsi |
|---|---|
search_memory |
Telusuri fakta dan kebijakan (kata kunci, semantik, atau hibrida — hibrida adalah bawaannya) |
propose_fact |
Simpan fakta markdown pendek di sebuah domain |
supersede_fact |
Tandai sebuah fakta digantikan oleh fakta lain |
propose_policy |
Simpan aturan normatif di sebuah domain (memerlukan izin tulis padanya) |
supersede_policy |
Pensiunkan sebuah kebijakan — menandainya tidak aktif tetapi tetap menyimpannya untuk audit |
list_policies |
Tampilkan daftar kebijakan aktif, dapat difilter berdasarkan domain |
list_memory_domains |
Tampilkan daftar domain memori ruang kerja beserta jumlah fakta dan kebijakannya |
record_observation |
Catat observasi mentah ke memori kerja agen |
get_my_notes |
Baca ruang coretan memori kerja agen pemanggil |
update_my_notes |
Perbarui ruang coretan memori kerja agen pemanggil |
remember |
Tambahkan catatan ke memori kerja panas agen untuk sesi ini (dibatasi TTL dan jumlah) |
consolidate_memory |
Jalankan proses konsolidasi (“tidur”): keluarkan item panas yang kedaluwarsa, gulirkan yang tahan lama menjadi fakta jangka panjang |
harmonize_memory |
Jalankan harmonisasi keyakinan antar agen (SHMR) dan tandai kontradiksi |
list_memory_conflicts |
Tampilkan daftar kontradiksi yang terdeteksi dan bagaimana masing-masing diselesaikan |
Alat tata kelola
Bagian berjudul “Alat tata kelola”| Alat | Deskripsi |
|---|---|
create_goal |
Buat tujuan organisasi (tingkat perusahaan, tim, agen, atau tugas) |
list_goals |
Tampilkan daftar tujuan beserta tingkat, status, dan progres agregatnya |
update_goal_progress |
Tetapkan progres sebuah tujuan |
create_approval |
Buka persetujuan dewan untuk tindakan yang diatur (keluar dari rencana, merge, rilis, rekrutmen, kustom) |
list_approvals |
Tampilkan daftar persetujuan, dapat difilter berdasarkan status |
decide_approval |
Catat keputusan: setujui, tolak, minta revisi, atau kirim ulang |
comment_approval |
Komentari persetujuan dewan |
exit_plan_mode |
Buka (dan, setelah disetujui, pakai) persetujuan plan_exit, mengalihkan percakapan keluar dari mode rencana |
agent_heartbeat |
Laporkan kelayakan hidup (hidup, menganggur, macet); berdiam diri mengalihkan kesehatan runtime menjadi recently-lost, lalu offline |
list_runtime_health |
Tampilkan daftar kesehatan runtime setiap agen |
list_agent_presence |
Tampilkan daftar kehadiran setiap agen (kesehatan, siklus hidup, jumlah yang berjalan dan dalam antrean, kapasitas) |
get_org_chart |
Baca pohon pelaporan, CEO di akar, bersarang berdasarkan reports_to |
create_work_product |
Buat hasil kerja tahan lama yang dilampirkan ke sebuah tiket |
save_work_product_revision |
Simpan revisi baru; berikan base_revision_id agar ditolak saat ada penyuntingan bersamaan |
list_work_products |
Tampilkan daftar hasil kerja, dapat difilter ke satu tiket |
get_work_product |
Baca hasil kerja beserta riwayat revisinya |
create_runtime_profile |
Definisikan profil runtime yang dapat dipakai ulang (keluarga protokol, perintah CLI, argumen peluncuran tetap) |
list_runtime_profiles |
Tampilkan daftar profil runtime ruang kerja |
Alat graf kode
Bagian berjudul “Alat graf kode”Didaftarkan hanya saat host menyediakan repo graf kode. Indeksnya mencakup kumpulan grammar yang dikirim (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); simbol dalam bahasa lain tidak ada.
| Alat | Deskripsi |
|---|---|
search_code |
Telusuri simbol yang terindeks berdasarkan nama, tanda tangan, dan komentar dokumentasi (hibrida BM25 + semantik) |
code_symbol |
Cari simbol berdasarkan nama persis; mengembalikan file:line dan tanda tangannya |
code_callers |
Tampilkan daftar simbol yang memanggil atau bergantung pada sebuah simbol (tepi masuk) |
code_callees |
Tampilkan daftar simbol yang dipanggil atau diandalkan oleh sebuah simbol (tepi keluar) |
code_impact |
Hitung radius dampak transitif sebuah simbol, hingga kedalaman tertentu |
Alat tiket
Bagian berjudul “Alat tiket”| Alat | Deskripsi |
|---|---|
create_ticket |
Buat tiket pada penyedia yang dikonfigurasi |
get_ticket |
Ambil satu tiket berdasarkan id |
list_tickets |
Tampilkan daftar tiket, dapat difilter berdasarkan status atau penerima tugas |
update_ticket |
Perbarui status, judul, deskripsi, prioritas, atau label (status menerima alias seperti in_progress / completed) |
assign_ticket |
Tetapkan tiket ke agen dan/atau tim |
reassign_ticket |
Tetapkan ulang tiket ke agen lain |
add_ticket_collaborator |
Undang agen untuk berkolaborasi pada sebuah tiket (ditambahkan ke space-nya) |
comment_on_ticket |
Komentari sebuah tiket |
close_ticket |
Tutup tiket (menandainya selesai) dengan keluaran opsional |
fail_ticket |
Tandai tiket gagal dengan pesan galat |
delegate_ticket |
Delegasikan tiket ke agen, membuat tiket yang dilacak |
ticket_pr_link |
Tautkan atau lepas tautan tiket dan pull request berdasarkan id node PR (action: link | unlink) |
ticket_relation |
Tambahkan atau hapus relasi antara dua tiket — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove) |
list_ticket_relations |
Tampilkan daftar induk, sub-issue, dan tautan dependensi sebuah tiket |
Alat tim dan pipeline
Bagian berjudul “Alat tim dan pipeline”| Alat | Deskripsi |
|---|---|
record_team_activity |
Catat entri aktivitas pemimpin tim terhadap sebuah tiket |
preview_trigger |
Uji kering pipeline mana yang akan dijalankan oleh peristiwa hipotetis, tanpa melakukan commit apa pun |
submit_output |
Kirim muatan keluaran terstruktur untuk eksekusi pipeline pemanggil saat ini; divalidasi terhadap skema keluaran yang dideklarasikan run tersebut |
Alat orkestrasi
Bagian berjudul “Alat orkestrasi”| Alat | Deskripsi |
|---|---|
propose_orchestration |
Pancarkan rencana orkestrasi multi-agen terstruktur untuk satu persetujuan di muka; memvalidasi dan mengembalikan pelanggaran apa pun |
Alat umpan berita
Bagian berjudul “Alat umpan berita”| Alat | Deskripsi |
|---|---|
list_feeds |
Tampilkan daftar feed RSS/Atom yang terdaftar |
list_articles |
Tampilkan daftar artikel, dapat difilter berdasarkan feed, belum dibaca, atau disimpan |
get_article |
Ambil satu artikel |
set_article_read |
Tandai artikel sudah dibaca atau belum dibaca |
set_article_saved |
Simpan atau batal menyimpan artikel |
refresh_feeds |
Ambil ulang setiap feed yang aktif sekarang |
Alat enclosure (rig)
Bagian berjudul “Alat enclosure (rig)”Kendalikan mesin sekali pakai — browser atau desktop Linux yang terkurung, emulator
Android, atau Simulator iOS — dari dalam sebuah run. Didaftarkan pasca-boot,
tanpa syarat: apakah sebuah mesin benar-benar dapat boot adalah pertanyaan probe
yang dijawab alat tersebut per panggilan. Panggilan berulang dalam satu percakapan memakai ulang satu mesin;
tangkapan layar dikembalikan sebagai konten gambar dengan anggaran satu gambar per hasil, dan
konten halaman/UI yang diekstrak dipagari sebagai data tidak tepercaya. Keempat alat *_use plus
rig_close mendeklarasikan kelas tindakan enclosureControl
(keempat alat itu juga mendeklarasikan networkEgress dan processSpawn; mobile_use dan
ios_use juga mendeklarasikan packageInstall), sehingga mode hanya-baca menolaknya. rig_list
tidak mendeklarasikan apa pun — ia hanya membaca status ruang kerja. Kosakata verba lengkap per permukaan ada di
referensi rigs.
| Alat | Deskripsi |
|---|---|
computer_use |
Kendalikan desktop Linux di VM terkurung: gerakkan, klik, seret, gulir, ketik, ubah ukuran, papan klip, tangkapan layar |
browser_use |
Kendalikan Chromium, Firefox, atau WebKit headless (engine): navigasi, klik, isi, ekstrak (a11y/DOM/konsol), papan klip, tangkapan layar |
mobile_use |
Kendalikan Android melalui ADB: periksa/masukkan, tangkapan layar, pasang/mulai/hentikan/atur ulang/copot pemasangan aplikasi, deep link, dan perintah perangkat berbentuk argv |
ios_use |
Kendalikan Simulator iOS melalui WebDriverAgent/CoreSimulator: periksa/masukkan, tangkapan layar, pasang/mulai/hentikan/copot pemasangan aplikasi, deep link, dan proses simulator berbentuk argv |
rig_list |
Tampilkan daftar rig sebuah ruang kerja beserta permukaan, status, ukuran layar, dan pengendalinya |
rig_close |
Hancurkan rig dan buang status mesin yang dimilikinya |
Tidak diekspos melalui MCP
Bagian berjudul “Tidak diekspos melalui MCP”Kalender dan rapat tidak memiliki alat MCP. Agen tidak dapat membaca kalender, rapat, transkrip, item tindakan, atau keputusan Anda. Ringkasan yang menghasilkan item tindakan dan keputusan berjalan sebagai pipeline meeting_summary bawaan, bukan sebagai alat yang dapat dipanggil agen.
Gerbang alat berdasarkan mode
Bagian berjudul “Gerbang alat berdasarkan mode”Gerbang ditegakkan dua kali dari satu tabel (ModeToolPolicy): sekali di dispatcher MCP untuk adapter Claude Code dan sekali di registri harness bawaan. Panggilan yang diblokir mengembalikan alasannya.
| Mode | Permukaan alat |
|---|---|
chat |
Setiap alat yang terdaftar; tanpa daftar izin |
plan |
Daftar izin terkurasi. Tanpa penulisan worktree dan tanpa verba tiket create / assign / delegate, tetapi memori, artefak, todo, submit_plan, exit_plan_mode, dan verba penyelesaian tiket pada tiket yang dikirim diizinkan |
review |
Daftar izin terkurasi: partisipasi tinjauan, komunikasi, pengambil konteks hanya-baca, dan seluruh rangkaian verba tiket termasuk create_ticket dan assign_ticket |
orchestrate |
Daftar izin terkurasi: alat riset dan baca plus propose_orchestration, create_playbook, dan run_playbook. Perekrutan, dekomposisi, dan penyelesaian tiket terjadi secara deterministik setelah persetujuan, tidak pernah di tengah run |
Diizinkan di setiap mode terlepas dari daftar izin:
| Himpunan | Alat |
|---|---|
| Memori dan artefak | search_memory, propose_fact, propose_policy, supersede_fact, supersede_policy, record_observation, update_my_notes, get_my_notes, list_memory_domains, list_policies, publish_artifact, revise_artifact, list_artifacts, get_artifact |
| Graf kode | search_code, code_symbol, code_callers, code_callees, code_impact |
| Mekanika run | search_tool_bm25, list_my_tools, todo_write, todo_read |
Berada di daftar izin tidak membuat sebuah alat dapat dipanggil, dan sebaliknya juga berlaku: kemampuan bertanya ke operator adalah alat harness (ask_user), sehingga sama sekali tidak pernah muncul di katalog MCP ini.
Alat dengan gerbang persetujuan
Bagian berjudul “Alat dengan gerbang persetujuan”Sebuah alat dapat mendeklarasikan requiresApproval. Dispatcher kemudian membangun ApprovalPayload dan menampilkannya melalui ConfirmationPort sebelum alat berjalan; cc_server menyambungkan port itu, sehingga gerbangnya aktif.
Alat terdaftar yang mendeklarasikannya: create_ticket, update_ticket, assign_ticket, reassign_ticket, close_ticket, ticket_relation, create_goal, update_goal_progress, create_approval, decide_approval, comment_approval, create_work_product, save_work_product_revision, create_runtime_profile, install_skill, update_skill.
Secara independen, pagar pengaman tindakan terpadu menerapkan gerbang pada setiap alat yang mendeklarasikan himpunan ActionClass yang tidak kosong. Keputusan prompt tanpa pemberi persetujuan yang terhubung akan ditolak. Lihat Pagar pengaman.
Kemampuan tanpa alat di baliknya
Bagian berjudul “Kemampuan tanpa alat di baliknya”Tidak setiap kemampuan dalam produk dapat dijangkau agen. Kemampuan ini tidak punya alat sama sekali, sehingga nama yang mungkin pernah Anda lihat dirujuk di tempat lain akan mengembalikan “unknown tool”:
| Kemampuan | Di mana ia berada sebagai gantinya |
|---|---|
| Merekrut, memberhentikan, atau menyunting agen | UI agen. Tidak ada alat hire_agent / fire_agent / update_agent |
| Membuat ruang kerja | workspace.upsert melalui RPC, yang menyemai dan menstempel kepemilikan |
| Proyek (buat / daftar / perbarui / arsipkan) | UI tiket. Proyek adalah permukaan operator — lihat Proyek |
| Mengajukan pertanyaan yang memblokir ke operator | Alat harness ask_user, bukan MCP. Alat ini merender formulir di dalam percakapan dan memblokir sampai ada jawaban |
| Diagnosis per agen | Tidak ada. Tidak ada doctor — lihat Diagnosis agen |
| Kalender dan rapat | RPC hanya untuk klien manusia (lihat di atas) |