跳转到内容

MCP 工具

cc_server 承载一个 MCP(JSON-RPC 2.0)工具注册表,在主服务器端口(默认 9030)上以 POST /mcp 和 GET /sse 对外提供服务,协议版本为 2024-11-05。每个客户端触达的都是同一个注册表:桌面端、Web 构建产物、外部 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 按关键词搜索工具目录;返回匹配的工具、它们的参数 schema,以及每个工具此刻是否可调用
list_my_tools 列出此对话中此刻可调用的工具,按其模式过滤

第三个发现类工具 search_tools 只存在于内置运行框架内部,不属于这个 MCP 注册表。它会对本次运行自身的工具面排序,并且与 search_tool_bm25 不同,它会加载所找到内容的 schema,以便智能体在下一轮就能调用其中的匹配项。运行框架上的智能体应优先用它;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 用参数值实例化一个剧本,生成一份由操作员批准的计划
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 上报存活状态(alive、idle、stuck);静默下来会把运行时健康翻转为 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 为调用方当前这次流水线运行提交结构化输出载荷;会按该运行声明的输出 schema 校验
工具 说明
propose_orchestration 发出一个结构化的多智能体编排计划,以取得一次性前置批准;会校验并返回任何违规
工具 说明
list_feeds 列出已注册的 RSS/Atom 订阅源
list_articles 列出文章,可按订阅源、未读或已保存筛选
get_article 获取一篇文章
set_article_read 把文章标记为已读或未读
set_article_saved 保存或取消保存文章
refresh_feeds 立即重新抓取所有已启用的订阅源

在一次运行内部驱动一次性机器——一个被隔离的浏览器或 Linux 桌面、一个 Android 模拟器,或一个 iOS 模拟器。启动后无条件注册:某台机器究竟能否启动,是一个探测问题, 由这些工具在每次调用时回答。同一对话中的重复调用会复用同一台机器; 截图以图片内容返回,每个结果限一张图,而抽取出的页面/界面内容会被围栏标记为 不受信任的数据。四个 use 工具加上 rig_close 都会声明 enclosureControl 操作类别(这些 use 工具还声明 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(见上文)