跳到內容

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 會回傳明確的錯誤,而與目標實體所屬工作區不符的值會被拒絕,而不是被默默忽略。在真正全域的工具上則省略它: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
工具 說明
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 工具。代理無法讀取你的日曆、會議、逐字稿、行動項目或決議。產出這些行動項目與決議的摘要是以內建的 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(見上文)