MCP 工具
cc_server 託管單一 MCP(JSON-RPC 2.0)工具登錄,於主伺服器連接埠(預設 9030)以 POST /mcp 與 GET /sse 提供,通訊協定版本為 2024-11-05。每個用戶端存取的都是同一個登錄:桌面版、網頁版、外部 MCP 用戶端,以及內建代理執行環境。外部 MCP 伺服器可以動態層的形式橋接進同一個登錄。
登錄大小
標題為「登錄大小」的章節| 指標 | 數量 |
|---|---|
由 cc_server 註冊的工具 |
110 |
來自 packages/cc_mcp |
108 |
來自 packages/cc_mcp_client(工具探索) |
2 |
註冊於基礎登錄(server_mcp_registry.dart) |
63 |
開機後隨其服務啟動而註冊(cc_server_runtime.dart) |
47 |
| 基礎登錄的 63 個之中,以程式碼圖儲存庫為條件者 | 5 |
這五個程式碼圖工具只有在主機把程式碼圖儲存庫傳給 buildServerMcpRegistry 時才會註冊。cc_server 一律會傳入一個,因此出貨的執行檔中 110 個全部可用。
完整登錄會透過 tools/list 完整公告,沒有任何探索閘門。工單編輯是具型別的工具。
通用參數
標題為「通用參數」的章節workspace_id
標題為「workspace_id」的章節凡是會碰到工作區範圍資料的工具,此參數皆為必填。缺少或無效的 workspace_id 會回傳明確的錯誤,而與目標實體所屬工作區不符的值會被拒絕,而不是被默默忽略。在真正全域的工具上則省略它:list_workspaces 以及六個新聞動態工具(list_feeds、list_articles、get_article、set_article_read、set_article_saved、refresh_feeds),它們使用的是伺服器擁有者每位使用者的摘要來源清單。探索工具(search_tool_bm25、list_my_tools)則選填此參數,這樣它們才能依對話模式分類可呼叫性。當代理由伺服器派送時,工作區是在伺服器端強制決定的,因此代理無法藉由傳入外來的 id 觸及另一個工作區。
工具探索
標題為「工具探索」的章節兩者都來自 cc_mcp_client,而非 cc_mcp,且都會查詢模式守門程式,因此它們回報的是_當前_對話模式中可呼叫的項目。
| 工具 | 說明 |
|---|---|
search_tool_bm25 |
依關鍵字搜尋工具目錄;回傳相符的工具、其引數結構描述,以及每個工具目前是否可呼叫 |
list_my_tools |
列出此對話中目前可呼叫的工具,並依其模式篩選 |
第三個探索工具 search_tools 只存在於內建執行環境內,並不屬於這個 MCP 登錄。它會為該次執行自身的工具介面排名,而且與 search_tool_bm25 不同,它會載入找到項目的結構描述,好讓代理能在下一個回合呼叫相符的工具。在執行環境上執行的代理應優先使用它;MCP 用戶端則有 search_tool_bm25。
代理工具
標題為「代理工具」的章節| 工具 | 說明 |
|---|---|
list_agents |
列出工作區中已註冊的代理 |
代理對等訊息與委派
標題為「代理對等訊息與委派」的章節代理彼此透過空間交談(持久、名冊可見)。ask_agent 是請求/回覆,且有強制逾時;delegate_task 則在伺服器端受深度上限、循環偵測、預算包絡與自主程度上限保護。
| 工具 | 說明 |
|---|---|
send_to_agent |
傳送單向訊息給另一個代理,以 to_agent_id 或完全相符的 to_agent_name 指定對象 |
ask_agent |
向另一個代理提問並等待其回覆,或逾時 |
delegate_task |
以受追蹤的子工單形式,將任務委派給另一個代理 |
consult_agent |
依技能把最相符的專家加入該空間,並以聚焦的簡報派送它 |
todo_read |
讀取此對話已持久化的任務檢查清單 |
技能工具
標題為「技能工具」的章節每一次安裝與更新,都會先通過一道失效即關閉的掃描閘門,技能內容才會進入磁碟或代理提示。
| 工具 | 說明 |
|---|---|
list_skills |
列出工作區中可用的技能 slug |
create_skill |
以 markdown 內容建立新技能 |
install_skill |
從 GitHub 儲存庫以釘選的 ref 安裝技能的整個目錄 |
update_skill |
將已安裝的 GitHub 技能更新至新的 ref,並重新掃描與重新釘選 |
list_skill_updates |
列出有較新版本可用的技能 |
verify_skills |
依磁碟上的內容雜湊驗證已鎖定的技能 |
pin_skill |
將磁碟上既有的技能雜湊後寫入 skills-lock.json |
計畫、playbook 與成品工具
標題為「計畫、playbook 與成品工具」的章節| 工具 | 說明 |
|---|---|
submit_plan |
規劃模式的輸出契約:發出一個具型別的 PlanDocument,會在 Plan Studio 中開啟 |
create_playbook |
將計畫儲存為具名、有版本、帶具型別 {{param}} 預留位置的範本 |
run_playbook |
以參數值具現化 playbook,產出一份由操作者核准的計畫 |
publish_artifact |
發佈一串有序的具型別區塊(markdown、table、chart、mermaid、code、JSON),由用戶端原生呈現 |
revise_artifact |
取代已發佈成品的內容 |
list_artifacts |
列出工作區的成品 |
get_artifact |
讀取單一成品 |
complete_goal |
宣告此對話作用中的持久目標(以 /goal 或 /loop 啟動)已達成 |
工作區工具
標題為「工作區工具」的章節| 工具 | 說明 |
|---|---|
list_workspaces |
列出所有工作區及其 id 與名稱(全域;無 workspace_id) |
儲存庫工具
標題為「儲存庫工具」的章節| 工具 | 說明 |
|---|---|
list_repos |
列出工作區中已註冊的儲存庫。以代理身分呼叫者收到的是其對話專屬、隔離的寫入時複製工作樹路徑,絕不會是原始檢出 |
訊息工具
標題為「訊息工具」的章節| 工具 | 說明 |
|---|---|
list_spaces |
列出工作區中的訊息空間 |
get_messages |
從空間取得訊息 |
send_message |
以具名傳送代理的身分,傳送訊息至空間 |
get_space_notes |
讀取空間的共用交接文件 |
update_space_notes |
取代空間的共用交接文件 |
todo_write |
在一次呼叫中取代此對話的任務檢查清單(傳入完整清單) |
審查工具
標題為「審查工具」的章節| 工具 | 說明 |
|---|---|
start_ai_review |
為 PR 開始 AI 審查:計算審查區域、將專家審查者展開至該 PR 的空間、撰寫導覽並收尾 |
add_review_node |
將結構化的審查發現(檔案、行、P0–P3 優先順序)加入審查空間 |
confirm_review_node |
確認同儕的發現;作者不能自行確認 |
resolve_review_node |
在實際做出變更後將發現標記為已修正;會將一筆軌跡貼入審查空間 |
dismiss_review_node |
忽略不適用的發現;會記錄一筆抑制事實,讓審查者不再重複標記它 |
request_peer_review |
請另一個審查代理對某項發現再看一眼 |
dispatch_reviewers |
將相符的審查代理同時派送至審查空間 |
submit_reviewer_verdict |
張貼每位審查者的 ship/hold/block 判定,附上信心程度與說明 |
finalize_review |
計算各節點共識與整份 PR 的判定,並關閉該次審查 |
set_cohort_summary |
設定審查群組的白話摘要 |
add_review_diagram |
將結構化、經圖形驗證的圖表(sequence、entityRelation、stateMachine)附加到群組 |
publish_review_to_github |
將已收尾的審查以行內留言加上摘要本文的形式發佈到 GitHub |
記憶工具
標題為「記憶工具」的章節| 工具 | 說明 |
|---|---|
search_memory |
搜尋事實與政策(關鍵字、語意或混合——混合為預設) |
propose_fact |
在領域中儲存一則簡短的 markdown 事實 |
supersede_fact |
將某事實標記為已被另一則取代 |
propose_policy |
在領域中儲存一條規範性規則(需要對該領域的寫入權限) |
supersede_policy |
讓某條政策退場——將其標記為停用,但保留供稽核 |
list_policies |
列出啟用中的政策,可選擇依領域篩選 |
list_memory_domains |
列出工作區的記憶領域及其事實與政策數量 |
record_observation |
將一筆原始觀察記錄到代理的工作記憶 |
get_my_notes |
讀取呼叫代理的工作記憶便條區 |
update_my_notes |
更新呼叫代理的工作記憶便條區 |
remember |
在此工作階段為代理的熱工作記憶新增一則備註(受 TTL 與數量限制) |
consolidate_memory |
執行一次整併(「睡眠」)階段:逐出過期的熱項目,並將持久的項目捲入長期事實 |
harmonize_memory |
執行跨代理的信念調和(SHMR)並標記矛盾 |
list_memory_conflicts |
列出偵測到的矛盾以及各自的解決方式 |
治理工具
標題為「治理工具」的章節| 工具 | 說明 |
|---|---|
create_goal |
建立組織目標(公司、團隊、代理或任務層級) |
list_goals |
列出目標及其層級、狀態與彙總進度 |
update_goal_progress |
設定目標的進度 |
create_approval |
為受治理的動作開啟董事會核准(退出計畫、合併、發佈、聘用、自訂) |
list_approvals |
列出核准,可選擇依狀態篩選 |
decide_approval |
記錄決定:核准、拒絕、要求修訂或重新提交 |
comment_approval |
對董事會核准留言 |
exit_plan_mode |
開啟(並在核准後消耗)一個 plan_exit 核准,使對話離開規劃模式 |
agent_heartbeat |
回報存活狀態(存活、閒置、卡住);靜默會使執行階段健康狀態轉為 recently-lost,接著轉為 offline |
list_runtime_health |
列出各代理的執行階段健康狀態 |
list_agent_presence |
列出各代理的線上狀態(健康、生命週期、執行中與排隊中的數量、容量) |
get_org_chart |
讀取回報樹,根節點為 CEO,依 reports_to 巢狀 |
create_work_product |
建立附屬於工單的持久交付項目 |
save_work_product_revision |
儲存新修訂版;傳入 base_revision_id 可在並行編輯時遭到拒絕 |
list_work_products |
列出工作成品,可選擇篩選至單一工單 |
get_work_product |
讀取工作成品及其修訂歷史 |
create_runtime_profile |
定義可重複使用的執行階段設定檔(通訊協定家族、CLI 命令、固定啟動引數) |
list_runtime_profiles |
列出工作區的執行階段設定檔 |
程式碼圖工具
標題為「程式碼圖工具」的章節只有在主機提供程式碼圖儲存庫時才會註冊。索引涵蓋出貨的語法集(Dart、JS/TS、PHP、Python、Rust、Zig、C/C++、Go、Java、Ruby、C#、Swift、Kotlin、R、Assembly、MATLAB、Ada);其他任何語言的符號都不在其中。
| 工具 | 說明 |
|---|---|
search_code |
依名稱、簽章與文件註解搜尋已索引的符號(混合 BM25 + 語意) |
code_symbol |
依完全相符的名稱查詢符號;回傳 file:line 與簽章 |
code_callers |
列出呼叫該符號或相依於該符號的符號(入邊) |
code_callees |
列出某符號所呼叫或相依的符號(出邊) |
code_impact |
計算某符號的遞移影響半徑,至指定深度 |
工單工具
標題為「工單工具」的章節| 工具 | 說明 |
|---|---|
create_ticket |
在已設定的供應商上建立工單 |
get_ticket |
依 id 取得單一工單 |
list_tickets |
列出工單,可選擇依狀態或指派對象篩選 |
update_ticket |
更新狀態、標題、描述、優先順序或標籤(狀態接受如 in_progress / completed 的別名) |
assign_ticket |
將工單指派給代理及/或團隊 |
reassign_ticket |
將工單重新指派給不同的代理 |
add_ticket_collaborator |
邀請代理協作某張工單(會加入其空間) |
comment_on_ticket |
對工單留言 |
close_ticket |
關閉工單(標記為完成),可附上選用的輸出 |
fail_ticket |
以錯誤訊息將工單標記為失敗 |
delegate_ticket |
將工單委派給代理,並建立一張受追蹤的工單 |
ticket_pr_link |
依 PR 節點 id 連結或解除連結工單與 pull request(action:link | unlink) |
ticket_relation |
新增或移除兩張工單之間的關聯——blocked_by、blocking、related_to、duplicate_of、duplicated_by、sub_issue_of、parent_of(action:add | remove) |
list_ticket_relations |
列出工單的父工單、子問題與相依連結 |
團隊與管線工具
標題為「團隊與管線工具」的章節| 工具 | 說明 |
|---|---|
record_team_activity |
記錄團隊領導者對某張工單的活動項目 |
preview_trigger |
試跑某個假設事件會啟動哪些管線執行,不實際提交任何內容 |
submit_output |
為呼叫者當前的管線執行提交結構化輸出承載資料;會依該次執行宣告的輸出結構描述驗證 |
編排工具
標題為「編排工具」的章節| 工具 | 說明 |
|---|---|
propose_orchestration |
發出結構化的多代理編排計畫以取得一次前置核准;會驗證並回傳任何違規 |
新聞動態工具
標題為「新聞動態工具」的章節| 工具 | 說明 |
|---|---|
list_feeds |
列出已註冊的 RSS/Atom 摘要來源 |
list_articles |
列出文章,可選擇依摘要來源、未讀或已儲存篩選 |
get_article |
取得單篇文章 |
set_article_read |
將文章標記為已讀或未讀 |
set_article_saved |
儲存或取消儲存文章 |
refresh_feeds |
立即重新抓取每個已啟用的摘要來源 |
隔離艙(機台)工具
標題為「隔離艙(機台)工具」的章節在執行過程中驅動用完即丟的機器——封閉的瀏覽器或 Linux 桌面、Android
模擬器,或 iOS 模擬器。開機後無條件註冊:某台機器是否真的能開機,是這些
工具每次呼叫時回答的探測問題。同一對話中重複呼叫會重用同一台機器;
螢幕截圖會以圖片內容回傳,且每個結果僅限一張圖片,擷取到的頁面/UI
內容則會圍籬標記為不受信任的資料。四個使用類工具加上
rig_close 會宣告 enclosureControl 動作類別
(使用類工具也會宣告 networkEgress 與 processSpawn;mobile_use 與
ios_use 還會宣告 packageInstall),因此唯讀模式會拒絕它們。rig_list
不宣告任何類別——它只讀取工作區狀態。每個表面完整的動詞詞彙請見
機台參考。
| 工具 | 說明 |
|---|---|
computer_use |
在封閉的 VM 中驅動 Linux 桌面:移動、點擊、拖曳、捲動、輸入、調整大小、剪貼簿、螢幕截圖 |
browser_use |
驅動無頭 Chromium、Firefox 或 WebKit(engine):瀏覽、點擊、填寫、擷取(a11y/DOM/console)、剪貼簿、螢幕截圖 |
mobile_use |
透過 ADB 驅動 Android:檢視/輸入、螢幕截圖、安裝/啟動/停止/重設/解除安裝應用程式、深層連結與 argv 形式的裝置命令 |
ios_use |
透過 WebDriverAgent/CoreSimulator 驅動 iOS 模擬器:檢視/輸入、螢幕截圖、安裝/啟動/停止/解除安裝應用程式、深層連結與 argv 形式的模擬器程序 |
rig_list |
列出工作區的機台,包含表面、狀態、顯示大小與控制者 |
rig_close |
銷毀機台並捨棄其擁有的機器狀態 |
未透過 MCP 暴露
標題為「未透過 MCP 暴露」的章節日曆與會議沒有 MCP 工具。代理無法讀取你的日曆、會議、逐字稿、行動項目或決議。產出這些行動項目與決議的摘要是以內建的 meeting_summary 管線執行,而不是代理可呼叫的工具。
依模式的工具閘門
標題為「依模式的工具閘門」的章節閘門由單一表格(ModeToolPolicy)強制執行兩次:一次在 Claude Code 配接器的 MCP 分派器中,一次在內建執行環境登錄中。被阻擋的呼叫會回傳原因。
| 模式 | 工具介面 |
|---|---|
chat |
所有已註冊的工具;沒有允許清單 |
plan |
一份精選的允許清單。不可寫入工作樹,也沒有 create / assign / delegate 工單動詞,但允許記憶、成品、待辦事項、submit_plan、exit_plan_mode,以及對已派送工單的工單完成動詞 |
review |
一份精選的允許清單:審查參與、溝通、唯讀情境取得器,以及包含 create_ticket 與 assign_ticket 的完整工單動詞集 |
orchestrate |
一份精選的允許清單:研究與讀取工具,加上 propose_orchestration、create_playbook 與 run_playbook。聘用、分解與工單完成會在核准後確定性地發生,絕不會在執行途中進行 |
無論允許清單為何,在每個模式中都允許:
| 集合 | 工具 |
|---|---|
| 記憶與成品 | 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 |
| 程式碼圖 | search_code, code_symbol, code_callers, code_callees, code_impact |
| 執行機制 | search_tool_bm25, list_my_tools, todo_write, todo_read |
名列允許清單並不代表工具就可呼叫,反之亦然:向操作者提問的能力是執行環境工具(ask_user),因此它完全不會出現在這個 MCP 目錄中。
需核准的工具
標題為「需核准的工具」的章節工具可以宣告 requiresApproval。分派器接著會建構 ApprovalPayload,並在工具執行前透過 ConfirmationPort 呈現;cc_server 會接上該埠,因此這道閘門是實際生效的。
宣告此項的已註冊工具: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。
另外,統一的動作護欄會對任何宣告非空 ActionClass 集合的工具設下閘門。在沒有連接任何核准者的情況下,prompt 決策一律拒絕。請參閱護欄。
背後沒有工具的能力
標題為「背後沒有工具的能力」的章節產品中的每個能力並非都能由代理觸及。以下這些完全沒有工具, 因此你可能在別處看過被引用的名稱,會回傳「unknown tool」:
| 能力 | 實際所在位置 |
|---|---|
| 聘用、解僱或編輯代理 | 代理介面。沒有 hire_agent / fire_agent / update_agent 工具 |
| 建立工作區 | 透過 RPC 的 workspace.upsert,它會播種並蓋上擁有權 |
| 專案(建立/列出/更新/歸入) | 工單介面。專案是操作者介面——請參閱專案 |
| 向操作者提出會阻擋的問題 | 執行環境的 ask_user 工具,而非 MCP。它會在對話中呈現表單並等待答案 |
| 個別代理診斷 | 沒有。沒有 doctor——請參閱診斷代理 |
| 日曆與會議 | 僅供人類用戶端使用的 RPC(見上文) |