FCoP MCP

September 14, 2026 · View on GitHub

Current package pair: 4.0.3, with 49 tools / 12 resources / 4 templates. The three Branch tools introduced in 4.0.1 remain available; all signatures are unchanged. MCP requires fcop>=4.0.3,<4.1.0 and uses the declared package compatibility pairs.

fcop tools --json reads the public offline fcop_mcp.catalog.get_tool_catalog() from the same declarations used by MCP registration. It neither starts MCP nor performs work. With only Core installed it reports MCP as unavailable. CLI reference / 中文参考.

4.0.1 新增 Branch 创建、只读家族检查及原子合并;原 reopen_task 和旧入口保留。 全部锁、幂等收据、REVIEW 追加与恢复由 Core 实现,MCP 只转换参数。 未就绪摘要允许 null,同时返回 merge_ready=false 和结构化原因;merge 不接受 null。 详见 Branch merge contract / 中文合同

Capability / 能力Public MCP entry / 入口v4 behavior / 行为
Workspaceinit_solo, init_projectExplicit protocol_version="4.0"; returns workspace_id; no legacy rules redeployment
TASK / Branchcreate_task, write_taskworkspace_id, durable operation_id; optional branch_of
T2 / T3claim_task, submit_taskinbox → active; active → review with current REPORT head
T4 / T5approve_task, reject_taskreview → done / active; edge-specific REVIEW, REPORT and single-use authorization
T6reopen_taskdone → active; separate reopen REVIEW and authorization; new attempt
T7archive_taskdone → archive; Root with Branches also needs current digest and convergence REVIEW
REPORTwrite_report, list_reports, read_reportcurrent attempt_id; immutable append; head_only query; is_head/head_ref/head_digest
Authorizationwrite_review, mark_human_approvedappend authorized facts; trusted evaluator registered at server initialization, never supplied in a tool request
Familyinspect_task(include_family_digest=true)canonical family_digest, not a client-computed substitute
Convergencewrite_review(review_kind="convergence")family_digest and references to Branch REPORT heads; does not move a TASK
Rule discoveryresources/list, resources/templates/list, resources/readversion-selected read-only representations; discovery ≠ adoption ≠ Runtime consumption
Legacy deploymentredeploy_rules, deploy_role_templatessupported Legacy versions only; v4 rejects without Host writes; no automatic migration
Errors / retryrelevant write callsstructured code; same operation_id exact retry; different digest OPERATION_ID_CONFLICT; zero effects on rejection

reopen_task(task_id, review_ref, authorization_ref, profile_ref, actor, lang="") requests only T6. It does not accept operation_id, evaluator or an arbitrary edge. finish_task and the four history tools reject v4; close_issue and a generic transition tool are not added. Listing tools is not a promise that every old operation applies to every workspace version.

并发不是独立工具:相关写入共享原子性、family lock 线性化、持久幂等、 精确重试、冲突拒绝、零副作用和恢复合同。MCP 不拥有第二套恢复状态机, 不增加公共 recovery MCP 工具;Core 恢复面与已提交请求重试须明确区分。

Versioned resources / 版本化只读资源

The installed adapter exposes 12 concrete resources and 4 templates. Use discovery, not hard-coded old counts. fcop://protocol keeps Markdown for v3; for v4, Core returns {path, revision, sha256} and MCP projects this identity deterministically as Markdown, without rereading or interpreting the spec. fcop://guidance/{assembly}/{language} is versioned guidance. Templates are read-only views, not envelope generators or authorization issuers.

Real Branch loop / 真实 Branch 闭环

create_task(branch_of=...)
inspect_task(include_family_digest=true)
write_report(attempt_id=...)
write_review(review_kind="convergence", family_digest=..., references=...)
archive_task(review_ref=..., family_digest=...)

This is a parameter map; a real call must also supply the workspace, subject, current attempt and transition evidence required by its tool schema. Public stdio client exercises a sequential TASK, Root plus two Branches, both completions, convergence, Root T7, two processes racing on one operation ID, restart, exact retry and conflict zero-effects. The client never imports fcop or fcop_mcp. Trusted startup uses a demo-only evaluator, not production issuer verification.

Candidate installation · MCP adapter reference · English README · 中文 README.

Historical 3.x reference / 以下仅为历史 3.x 工具说明

The following tables describe the released legacy interface, not the v4 contract. Counts, migration instructions and binding conventions below apply only to their stated legacy versions. 上方 v4 能力表不更改下面的历史语义。

总览

工具(tools)共 45 个,按 Tier 分级:

Tier含义工具数
L0只读/查询,无写盘若干
L1写盘操作,需绑定角色(binding_required大多数

v3 新增(相对 v2/v1.x):

  • v3 任务生命周期(5 个):claim_task / submit_task / finish_task / approve_task / reject_task
  • 历史深档案(4 个):archive_to_history / bulk_archive_to_history / list_history / read_history_task
  • v3 spec 对齐(1 个):create_taskwrite_task 的 v3 规范别名)

1. 起手式(每次新会话先调)

工具何时调关键参数
fcop_report每个新 MCP 会话的第一个调用(FCoP Rule 0)。返回项目状态;未初始化时给出三选一初始化建议;已初始化但本会话未认领角色时输出 UNBOUND 报告。报告头部含版本比对,漂移时提示 redeploy_ruleslangzh/en
set_project_dirMCP 把项目根定位错了,不改 mcp.json、不重启 Cursor 就能切换。path(绝对路径)
fcop_check日常轻量自检:schema 合规、文件名一致性、frontmatter 完整性,含治理事件日志摘要。不写盘。lang

2. 项目初始化(三选一)

工具用途关键参数
init_project预设团队模板初始化:dev-team / media-team / mvp-team / qa-team。建立 fcop/ 五目录 + history/,写 fcop.json,部署三层文档。幂等team(默认 dev-team)、lang
init_soloSolo 模式:单 AI 角色直接对 ADMIN,不做派发。role_code(默认 ME)、role_labellang
create_custom_team自定义角色初始化。强烈建议先 validate_team_config 干跑。team_nameroles(逗号分隔)、leaderlang
validate_team_config不写盘地校验自定义团队配置。rolesleader
get_available_teams列出仓库内置团队及其 leader / 成员。lang

3. 任务创建与查询

任务文件命名:TASK-YYYYMMDD-NNN-{SENDER}-to-{RECIPIENT}.md
v3 项目任务落在 _lifecycle/ 各阶段目录;v2 项目落在 fcop/tasks/

工具用途关键参数
create_taskv3 规范 §8 L1 入口:创建任务,v3 项目落入 _lifecycle/inbox/,v2 落入 fcop/tasks/。与 write_task 功能完全相同,命名符合 spec。senderrecipientsubjectbodypriorityP0P3)、thread_keyreferencesrisk_level
write_taskcreate_task(v2 兼容名称,长期维护)。同上
read_task读任务全文(含各阶段目录)。filename(文件名或 TASK-…-NNN
list_tasks按发件人 / 收件人 / 状态 / 日期过滤,带分页。senderrecipientstatusdatelimitoffset
inspect_task离线校验 schema 与「文件名↔frontmatter」一致性,不写盘。filename
archive_taskdone/ 里的已完成任务(含同名报告)搬到 _lifecycle/archive/(v3)或 fcop/log/(v2)。task_id

risk_levelhigh / irreversible 的任务按 ADR-0024 应配套 write_review(decision="needs_human"),由 ADMIN 用 mark_human_approved 闭合审批链。


4. v3 任务生命周期流转

仅 v3 项目有效;v2 项目调用这些工具会返回提示性 no-op 消息。

v3 任务在 _lifecycle/ 下按阶段流转:

inbox → active → review → done → archive → history/YYYY-MM-DD/<stem>/
              ↘ (直接完成,无需审核) ↗
工具阶段流转关键参数
claim_taskinboxactive:agent 领取任务,开始执行。task_idactor(领取者角色码)
submit_taskactivereview:agent 提交工作,等待审核。task_idactor
finish_taskactivedone:agent 直接完成(无需审核路径)。task_idactor
approve_taskreviewdone:ADMIN/治理角色审核通过。task_idactor(默认 ADMIN)、note
reject_taskreviewactive:ADMIN 打回重做,task 退回 active 阶段供修改。task_idactornote(建议写明原因)

5. 报告流(reports/)

工具用途关键参数
write_report写完成报告,回到指定收件人(通常是 leader/PM)。task_idreporterrecipientbodystatusdone/in_progress/blocked)、priority
list_reports过滤列出。reportertask_idstatuslimitoffset
read_report读报告全文。filename(或对应 task_id

6. 问题流(issues/)

工具用途关键参数
write_issue上报问题:阻塞、规则不清、外部故障等。reportersummarybodyseveritycritical/high/medium/low,亦支持 P0P3
list_issues过滤列出。reporterseveritylimitoffset

7. 审核流(reviews/)

REVIEW 文件是治理层对制品的决策记录(ADR-0017)。

工具用途关键参数
write_review写一份 REVIEW(治理层决策)。reviewer_rolesubject_typetask/report/role_switch/code_change)、subject_refdecision(见下表)、rationalerequired_changesneeds_changes 时必填)、reviewer_agentbodysubject_short
list_reviews过滤列出,标注 [human_approval pending] / [human_approved]reviewer_roledecisionsubject_typestatusopen/archived/all)、limitoffset
read_review读 REVIEW 全文,含 human_approval 子结构展示。filename(文件名或 Review ID)
mark_human_approved关闭 needs_human 升级回路(ADR-0026)。把 human_approval 事件写入已有 REVIEW frontmatter。approver 必须是 layer: admin 的角色。review_idapproverdecisionapprove/reject)、channelcomment

decision 枚举(5 值):

含义
approved制品通过,可以继续
rejected制品被否决,不得继续
needs_changes需要修改(必须配 required_changes
abstained审核者回避
needs_humanagent 主动上升人工——REVIEW 停留 pending,ADMIN 需调 mark_human_approved 闭合

8. 历史深档案(history/)— v3 新增

仅 v3 项目有效。历史档案按日期分片存储在 history/YYYY-MM-DD/<task-stem>/,永不覆盖,适合长期回溯。

典型归档流程(v3):

finish_task / approve_task

   _lifecycle/done/
       ↓ archive_task
   _lifecycle/archive/
       ↓ archive_to_history(单个)或 bulk_archive_to_history(批量)
   history/2026-05-22/TASK-20260522-001-ME-to-ADMIN/
       ├── TASK-20260522-001-ME-to-ADMIN.md
       └── REPORT-20260522-001-ME-to-ADMIN.md
工具用途关键参数
archive_to_history把单个任务(及其关联报告)从 _lifecycle/archive/ 移入 history/YYYY-MM-DD/<stem>/先调 archive_task,再调本工具task_iddone_date(覆盖日期分片,默认使用任务自身 done_at
bulk_archive_to_history_lifecycle/archive/所有任务批量迁入历史档案。一次性迁移利器,适合升级后批量整理旧归档。done_date(为所有任务统一覆盖日期,留空则各自读 done_at
list_history列出历史档案。不传 date 时列所有日期分片(最新在前);传 date 时列该分片下所有任务。dateYYYY-MM-DD,可选)
read_history_task从历史档案读取指定任务全文。传 date 可限定分片范围,速度更快。task_iddate(可选)

9. 团队 / 共享文档 / 工作区

工具用途关键参数
get_team_status项目状态快照:初始化状态、团队/leader、open task/report/issue/review 数、最近活动。lang
deploy_role_templates部署 / 刷新 fcop/shared/ 里的团队文档与角色档案。force=True 时先归档再覆盖。teamlangforce(默认 True
new_workspaceworkspace/<slug>/ 下建工作目录,不要把代码写到项目根。幂等。slug^[a-z][a-z0-9-]*$、≤ 40)、titledescription
list_workspaces列出现有 workspace/<slug>/lang

10. 协议泄压阀

工具用途关键参数
drop_suggestion唯一让 agent 对协议提反对意见的合法通道:写一份带时间戳的 markdown 到 .fcop/proposals/禁止自己改 fcop-rules.mdccontentcontext

11. 维护(自检与升级)

工具用途关键参数
check_update比对本地 fcop-mcp 与 PyPI 最新版(不写盘、不安装)。lang
upgrade_fcop打印针对你的安装方式的升级命令。自动跑 pip。lang
redeploy_rulesLegacy v1–v3 only / ADMIN-only。仅维护显式 Legacy 工作区;v4 无论 force/archive 都返回 toolkit:OPERATION_NOT_IMPLEMENTED,零写入。不是 4.x 安装或升级步骤;v4 通过包内及 MCP rules/protocol/guidance resources 获取规则。force(默认 True)、archive(默认 True)、lang

12. 治理事件审计

基于 ADR-0030-bis Layer 1 MCP Middleware。每个工具调用自动打 risk 标签并写入 fcop_events.jsonl

工具用途关键参数
list_governance_events读取 fcop_events.jsonl,列出最近 N 条治理事件(tool / risk / tag / session_id / 时间戳)。last_n(默认 50)、risk(过滤)、tag(过滤)
get_governance_summary汇总统计:总调用量 / 各风险层分布 / Top 10 工具 / CRITICAL_TAG 事件清单。

13. 治理告警(GAL — ADR-0031)

fcop_check() 自动扫描治理漂移信号,命中则写入 fcop/alerts/ALERT-*.md

工具用途关键参数
fcop_list_alerts读取告警收件箱,支持按 status / severity 过滤。statusopen/acknowledged/resolved)、severitylast_n(默认 20)
fcop_create_alertADMIN / 治理观察者手动归档治理缺口。severityalert_typesummarysuggestion

告警类型:

类型触发条件严重度
critical_tool_unreviewed24h 内有 CRITICAL_TAG 工具调用,但无对应 Review 文件high
missing_independent_verdict执行窗口 > 6h 无任何治理事件(Solo Blindspot,FCoP-Rule-G1)high
long_running_without_reconciliationopen Task 超 24h 未归档low

FCoP-Rule-G1write_report / fcop_report ∈ 执行域,不构成治理信号。只有 write_review / mark_human_approved / fcop_check 才算独立治理视角。


14. 协议体检(fcop_audit)

一次性深度体检;fcop_check 是日常轻量自检,二者互补。

工具用途关键参数
fcop_audit三场景协议体检,发现 6 类合规盲区,产出 INSPECTION 报告(含 Execution Block 整改建议)。scopenew/upgrade/takeover/auto,默认 auto)、outputfile/stdout/both)、project_path

三场景:

场景触发条件扫描内容
new新项目验收协议文件是否完整部署
upgrade版本升级后验收规则/文档版本是否同步
takeover老 non-fcop 项目首次引入全量扫描(6 类盲区)

附录:工具完整列表(45 个)

#工具分类Tier
1fcop_report起手式L0
2set_project_dir起手式L1
3fcop_check起手式L0
4init_project初始化L1
5init_solo初始化L1
6create_custom_team初始化L1
7validate_team_config初始化L0
8get_available_teams初始化L0
9create_task任务L1
10write_task任务L1
11read_task任务L0
12list_tasks任务L0
13inspect_task任务L0
14archive_task任务L1
15claim_taskv3 生命周期L1
16submit_taskv3 生命周期L1
17finish_taskv3 生命周期L1
18approve_taskv3 生命周期L1
19reject_taskv3 生命周期L1
20write_report报告L1
21list_reports报告L0
22read_report报告L0
23write_issue问题L1
24list_issues问题L0
25write_review审核L1
26list_reviews审核L0
27read_review审核L0
28mark_human_approved审核L1
29archive_to_history历史档案L1
30bulk_archive_to_history历史档案L1
31list_history历史档案L0
32read_history_task历史档案L0
33get_team_status团队/工作区L0
34deploy_role_templates团队/工作区L1
35new_workspace团队/工作区L1
36list_workspaces团队/工作区L0
37drop_suggestion泄压阀L1
38check_update维护L0
39upgrade_fcop维护L0
40redeploy_rules维护L1
41list_governance_events治理审计L0
42get_governance_summary治理审计L0
43fcop_list_alertsGALL0
44fcop_create_alertGALL1
45fcop_audit体检L0

常见问题

项目根是怎么找到的?
set_project_dirFCOP_PROJECT_DIR → 向上找 fcop/fcop.json / fcop-rules.mdc / fcop/tasks/ → 当前 cwd。

create_task vs write_task
功能完全相同。create_task 是 FCoP v3 规范 §8 的命名;write_task 是 v1/v2 兼容名称。两者长期并存。

v3 生命周期工具在 v2 项目能用吗?
不能,但不会报错——会返回提示性 no-op 消息,说明当前是 v2 项目。

history/_lifecycle/archive/ 有什么区别?
_lifecycle/archive/ 是中间站(已完成但待深度归档);history/ 是最终归宿(按日期分片,永久只读)。archive_to_history 负责把任务从前者迁移到后者。

risk_level=high 时必须 Review 吗?
协议层不强制阻塞,但 high / irreversible 的任务按 ADR-0024 应配套一个 write_review,且推荐 decision="needs_human" 由 ADMIN 用 mark_human_approved 闭合。

升级了 fcop-mcp 还要不要改 mcp.json
3.x 内不必改——工具 shape 是只增不改的。改 mcp.json 仅当换了启动方式(uvx ↔ 固定 venv 的 python -m fcop_mcp)。


本页是导航索引,权威说明在源码 docstring;工具列表由 CI 对照 tool_surface.json 校验。