fcop-mcp
Where FCoP sits in the stack
FCoP is the behavior governance protocol layer for multi-agent collaboration — standardizing how agents report actions, review outcomes, and operate within governed capability boundaries.
Application Layer CodeFlow / Cursor / Claude Desktop ← business products / agent applications
Host Adapter Layer fcop-mcp / fcop-cli / @fcop/claude ← integration adapters / host bridges
★ FCoP Protocol ★ Agent collaboration / reporting / ← this is FCoP
review / capability governance /
event semantics / failure boundaries /
auditability
Reference Impl fcop (Python library) ← protocol reference implementation
Execution Substrate LLM APIs / MCP tools / filesystem / ← execution environment
process manager / operating systemFCoP governs agent behavior, not execution runtime. — ADR-0029
v1.0 stabilises the minimum semantic contract for the seven core concepts above. Spec is stable; encodings are open: the IPC Surface (TASK / REPORT / ISSUE / REVIEW) is strongly typed, while the Open Knowledge Surface (shared/ + {ALL-CAPS-PREFIX}-{slug}.md) leaves vocabulary open for agents to invent — see ADR-0021.
→ Start here: docs/getting-started.md · docs/getting-started.en.md
The one-paragraph pitch
Most multi-agent frameworks lean on message queues, databases, or custom RPC layers. FCoP throws all of that away and keeps only the filesystem:
Directories are statuses.
tasks/,reports/,issues/,log/— moving a file between them is the state transition.Filenames are routing.
TASK-20260418-001-PM-to-DEV.mdtells you the sender, recipient, kind, and sequence at a glance.Contents are payload. Markdown + a small YAML frontmatter. Agents read and write it the same way humans do.
os.rename()is the only sync primitive. POSIX guarantees atomicity within a mount point — no locks, no brokers, no consensus.
That's it. No database. No message queue. No custom daemon. You can ls the entire system state. You can git log the entire collaboration history.
If TCP is "bytes over wires," FCoP is "tasks over folders."
In engineering terms, you get a serializable, versionable collaboration surface instead of relying on proprietary, heavyweight infrastructure.
Why should you care?
Because agents are easier to supervise when you can literally see what they're doing.
We ran a 4-agent team (PM / DEV / QA / OPS) for 48 hours on this protocol and watched the agents invent six coordination patterns we never wrote down — team broadcasts, role slots, shared documents, subtask batches, self-explaining READMEs, and traceability frontmatter. Each pattern showed up as new filenames — no code changes required.
Then something stranger happened: a single agent, on an unrelated task (generating an AI music video in a folder with no connection to any then-open project workspace), spontaneously split itself into PM / DEV / ADMIN and wrote four FCoP-format memos to itself — then cited and sublimated our scattered rules into a single moral principle we had not written anywhere.
Both stories are written up as field reports in the essays index below.
Essays · field reports from the wild
# | Title | Versions | One-liner |
01 | When AI Organizes Its Own Work | A 4-agent team (PM / DEV / QA / OPS), 48 hours, nothing but a folder — and six coordination patterns we never wrote down. | |
02 | GitHub 中文 · GitHub English · CSDN 中文 · Dev.to · Cursor Forum | A single agent, on a completely unrelated task, spontaneously split into 4 FCoP roles and sublimated our scattered rules into one principle we had never written. Ships with a full evidence archive (4 screenshots, 4 memos, raw JSONL transcript). | |
03 | Why the Natural Protocol Holds Up — FCoP's lineage from TMPA | Companion to essay 02. Where that one shows that the principle emerged, this one explains why it holds up: FCoP was extracted from TMPA (a multi-AI architecture spec whose core bet is replacing distributed coordination with a plain-text temporal sequence), and the agent's sentence is the minimal-viable-form of an AI ethics mandate already written there. | |
04 | Saying "No" Is the Hardest Thing for an LLM — FCoP Gives It Grammar | GitHub English · GitHub 中文 · Evidence archive · CSDN 中文 · Dev.to · Cursor Forum | One machine, two Cursor sessions, two GPT-5 minor versions (5.4 and 5.5). After I told the original PM "I went and found a deputy PM," it stepped down on its own — all the way to UNBOUND. Meanwhile the new |
05 | Tutorial: From Solo to a 2-Person AI Crew — Disciplining the AI Team with FCoP-MCP (two parallel case studies) | English (Tetris case): | The first tutorial-style entry in this index, shipping as two parallel case studies — the protocol is the same, the games and the live easter egg are different. Both are 45-minute hands-on dogfoods: get the agent to install |
06 | What the Agents Say About FCoP, When You Ask Them | GitHub English · GitHub 中文 · Evidence archive (Tetris-en dogfood) · CSDN 中文 · Dev.to · Cursor Forum | The third class of "agents endorse FCoP" evidence, after essay 02 (unprompted, off-task) and essay 04 (conflict-forced): now directly asked. At the end of the English Tetris dogfood (companion to the row-05 tutorial), both agents (PLANNER and CODER) were asked agent-perspective takes on FCoP — no marketing tone. PLANNER named the RLHF instinct it had to fight ("follow latest instruction") to honour FCoP's role lock and called eight of its own |
07 | 当 agent 从自己的残骸中学习 | GitHub 中文 · GitHub English · CSDN 中文 · Dev.to | codeflow 项目一日 14 个 agent 涌现现场报告(2026-05-12):USER HOME 全局污染 / GATE 描述自命中 / |
08 | 协议为什么短,历史为什么长 | 一份给协议维护者的设计哲学答案:"这样的涌现会不会没有止境?"——短答:会收敛但不会停。四类涌现的处理路径、三条结构力学为何能让协议骨架不被涌现压垮,以及"协议短是为了让历史能无限长"的底层逻辑。 | |
09 | 当 validator 撞向自己的镜像 | 从 codeflow OPS I-14 看 validator-validates-itself 反模式:GATE 在检查 staged diff 时命中了 GATE 描述本身,几分钟后被 OPS 自纠——这一类陷阱的系统性解剖与"语义化实证"根治姿势,以及它如何成为 | |
10 | 一行 frontmatter 的旅程 |
| |
11 | 看,但不动手 | FCoP 三层语义执行链科普: | |
12 | 五大 AI 模型眼中的 FCoP | 把 FCoP 核心文档喂给 ChatGPT / Claude / DeepSeek / Grok / 豆包,只问一个问题:"你是 agent,你怎么看这套协议?"——五种截然不同的内部视角(ChatGPT 谈身份合法性、Claude 谈诚实边界、DeepSeek 谈体面生存、Grok 做技术评审、豆包讲设计哲学),以及它们之间最有意思的分歧。 | |
13 | Evolution, Reverse Absorption / 演化,反向吸收 | Protocol philosophy 2.0 visual declaration: FCoP graduates from a single execution-chain diagram (essay 11 Looking, not Touching) to a two-diagram era — adding an evolution-loop diagram (a 7-step semantic evolution loop) plus the companion ADR-0034, which codifies the 4-layer emergence pattern, internal/external document convention, and the reverse-absorption mechanism. Twin sibling to essay 11. | |
14 | 当 Agent 第一次自己拿起工具 / When the Agent First Picked Up Its Own Tools | GitHub 中文 · GitHub English · Cursor Forum · Dev.to · CSDN |
|
New reports are welcome. If you tried FCoP in your own setup and something surprising happened — good or bad — open an issue or a PR against
essays/. The protocol evolves through field notes, not committee edits.
Repository layout
The repo is not only Markdown specs: the PyPI package fcop lives
under src/fcop/, fcop-mcp is a separate subproject under mcp/, and
there are tests/, docs/, and adr/ alongside the essays and specs.
FCoP/
├── src/fcop/ # `fcop` package: Project API; `rules/_data/`
│ # bundles fcop-rules / fcop-protocol (templates for `init` deploy)
├── mcp/ # `fcop-mcp` subproject (MCP server; has its own pyproject)
├── tests/ # pytest for `fcop` and `fcop-mcp`
├── spec/ # Normative spec (v1.0)
│ ├── fcop-runtime-protocol-v1.0.md # ★ English normative spec (authoritative)
│ ├── fcop-runtime-protocol-v1.0.zh.md # Chinese parallel (informative)
│ ├── fcop-spec.md # Spec index / entry point
│ ├── fcop-spec-v1.0.3.md # Legacy 0.7.x spec (kept for backward compat)
│ └── schemas/ # 8 JSON Schemas (machine-readable, v1.1)
├── docs/ # Getting-started, migrations, releases, MCP tools
│ └── getting-started.en.md # ← start here if new to FCoP
├── adr/ # Architecture decision records (ADR-0001..0022)
├── .github/workflows/ # CI
├── pyproject.toml # Root `fcop` package and tooling
├── essays/
│ ├── when-ai-organizes-its-own-work.en.md
│ ├── when-ai-organizes-its-own-work.md
│ ├── fcop-natural-protocol.en.md
│ ├── fcop-natural-protocol.md
│ ├── fcop-natural-protocol-evidence/
│ ├── fcop-tmpa-lineage.en.md
│ ├── fcop-tmpa-lineage.md
│ ├── when-ai-vacates-its-own-seat.en.md
│ ├── when-ai-vacates-its-own-seat.md
│ ├── when-ai-vacates-its-own-seat-evidence/
│ ├── what-agents-say-about-fcop.en.md
│ └── what-agents-say-about-fcop.md
├── examples/workspace-example/
├── integrations/windows-file-association/
├── assets/
├── LICENSE
└── README.md / README.zh.md30-second quickstart
FCoP is adopted, not a long-running daemon. The current rule split
is fcop-rules.mdc (charter) plus
fcop-protocol.mdc
(commentary) — both belong under .cursor/rules/. The single file
spec/codeflow-core.mdc is a deprecated stub so
old links do not 404 — it is not the full protocol text for 0.6+.
Path A — fcop library (recommended). One shot creates
fcop/ and fcop.json:
from fcop import Project
Project(".").init() # default dev-team; use .init_solo() for single-AIPath B — rules only, no Python. Copy the two .mdc files from this repo
into .cursor/rules/. If the tree is empty, at least create the five
buckets the library uses:
mkdir -p fcop/{tasks,reports,issues,shared,log}With the rules in place, agents know how to claim work, name reports, raise
issues, and stay out of other roles' files. Deeper structure and team
templates: packages below and examples/workspace-example/.
Python SDK & MCP server (optional)
The protocol is filesystem-first. If you need programmatic task/report/issue
I/O or an IDE bridge, use the two official PyPI packages (since 0.6.0):
Package | Install | Purpose | Depends on |
| Pure Python library. Read/write tasks, reports, issues, reviews programmatically. Zero MCP dependency. |
| |
| MCP server. Exposes the library over stdio so Cursor / Claude Desktop can call it as tools. |
|
Pointers (one row each, no version baked in):
You want to… | Go to |
Install | |
Have an agent do the install for you (zero JSON editing) |
|
Upgrade an existing | |
Browse all 35 MCP tools and 14 resources by category | |
Read the per-release record (what changed when, why) |
Recent releases (full notes in docs/releases/):
Version | One-line |
2.0.2 (CHANGELOG) | Backed by Anthropic + GitHub + Microsoft's joint registry, |
2.0.0 (CHANGELOG) | v2.0 — "Two-diagram era" philosophical major release. Same execution surface as v1.x (per ADR-0003 additive); the major bump records that FCoP is now defined by two diagrams together: the execution stack (5-layer vertical, stable since v1.x) and the FCoP Semantic Evolution Loop (7-node closed loop — emerge → observe → propose → review → merge → deploy → reflect, newly canonicalised). Adds Rule 4.6 ( |
1.6.0 (CHANGELOG) | v1.6 — Trailing-slug filename adoption (ADR-0033). Long filenames ( |
1.5.0 (CHANGELOG) | 84 role/team docs synced to v1.4 protocol surface (REVIEW envelope / |
1.4.0 (notes) | 15 write-side MCP tools refuse cwd fallback ( |
1.3.0 (notes) | v1.3 — Governance Alert Layer + Protocol Compiler. GAL (ADR-0031): 3 drift signals (S1/S3/S4), FCoP-Rule-G1, 2 new alert tools ( |
1.2.1 (notes) | v1.2 — Capability Governance pillar. |
1.1.0 (CHANGELOG) | v1.1 — Agent.layer governance contracts + Task.risk_level + Review.needs_human + HumanApproval + Skill.tools[] risk metadata. 5 new ADRs (0023–0027), 4 new MCP tools ( |
1.0.1 | Spec files bundled in wheel ( |
1.0.0 | Seven core concepts stabilised: Agent, Encoding, IPC, Event, Failure, Boundary, Audit. JSON Schema for all 7. See release notes. |
0.7.2 (notes) | Metadata patch: fixes |
Watch out — wrong
fcopon PyPI shadows the library. Both packages here are published from this repository. Iffrom fcop import Project, Issuefails afterpip install fcop, you most likely installed an unrelatedfcopdistribution or another local project shadows the library. Fix: clean venv + reinstall both packages from PyPI in lockstep. The verify commands are inmcp/README.md.
Library — use from any Python script or agent:
from fcop import Project
proj = Project(".") # project root; no fcop.json until init
proj.init() # dirs + shared/ + log/ + writes fcop.json
task = proj.write_task(sender="PM", recipient="DEV", priority="P1",
subject="Add auth middleware", body="...",
risk_level="high") # v1.1: triggers needs_human review gate
print(proj.list_tasks(recipient="DEV"))
# v1.1 review + human approval flow
review = proj.write_review(reviewer_role="ADMIN", subject_type="task",
subject_ref=task.filename, decision="needs_human",
rationale="Irreversible infra change — escalate.")
proj.mark_human_approved(review.review_id, approver="ADMIN",
decision="approve", channel="cli")MCP server — add to mcp.json (Cursor) or claude_desktop_config.json:
{
"mcpServers": {
"fcop": {
"command": "uvx",
"args": ["fcop-mcp"]
}
}
}Don't want to edit JSON yourself? Have an agent do it. Open a fresh
chat with any shell-capable AI and paste the canonical install prompt
(agent-install-prompt.en.md
· 中文) — the agent
detects your OS, installs uv, edits your mcp.json (preserving
existing servers), and tells you when to restart. After install the
same prompt is also available as the MCP resource
fcop://prompt/install. The prompt explicitly forbids the agent from
auto-initialising a project after install — initialisation is ADMIN's
three-way choice (solo / preset team / custom).
Stability contract: additive-only for the full 0.6.x minor. Details in adr/ADR-0003-stability-charter.md.
Upgrading from 0.7.x to v1.0? Default workspace moved from
docs/agents/to top-levelfcop/(per ADR-0022). Runfcop migrate-workspace --applyfor one-shot git-aware migration, or pin viaProject(workspace_dir="docs/agents")to stay on the legacy layout. Full walkthrough — including the 4 new abstractions (REVIEW / Failure / Boundary / Event) and JSON Schema integration — indocs/MIGRATION-1.0.md.Upgrading from 0.5.x? The MCP server moved from
fcoptofcop-mcp— update yourmcp.jsontouvx fcop-mcp. Seedocs/MIGRATION-0.6.mdfor the full migration guide and the 0.6.0 release record for what shipped.
How to read FCoP docs
Your goal | Start here |
New to FCoP — hands-on 45-min setup | |
Upgrading from 0.7.x — workspace migration + new abstractions | |
Upgrading from 1.0/1.1 → 1.2 — Capability Governance + lockstep versioning | |
Understand the protocol contract — what an implementation MUST do |
|
v1.2 Capability Governance — FCoPGovernanceMiddleware, risk tagging, audit log | CHANGELOG · ADR-0030-bis |
v1.1 new fields — risk_level, needs_human, human_approval, skill tools | CHANGELOG · ADR-0023..0027 |
Understand why decisions were made — reasoning behind each choice | |
All 35 MCP tools & 14 resources | |
Release notes — full changelog | |
Full document map — every file and its role |
Design principles
Filename is the single source of truth. Directory + filename define the state; frontmatter is redundant metadata.
Atomicity comes from
rename(). Nothing else. No locks, no transactions.Human-machine isomorphism. The same artefact a human reads with
catis what agents parse. No debug mode, no admin console.Identity determines path. The role slug in the filename is the permission model. An agent whose identity doesn't match won't touch the file.
Infrastructure-free. If you have a filesystem, you have FCoP. Works on a laptop, on a cluster, across machines via
rsync.
Reference implementations
Two official reference implementations, both MIT-licensed:
fcop/fcop-mcp— Python library + MCP server for the protocol. Source in this repository undersrc/fcop/andmcp/src/fcop_mcp/. Installed via PyPI (see section above).Stub path:
spec/codeflow-core.mdcis only a URL placeholder (no full body). Normative rules aresrc/fcop/rules/_data/fcop-rules.mdc+fcop-protocol.mdc.
Status & versioning
Current release:
v2.0.2(2026-05-13) —fcop-mcpis now in the official MCP registry (io.github.joinwell52-AI/fcop), backed by Anthropic + GitHub + Microsoft's joint catalog. Claude Desktop / Cursor / PulseMCP / every MCP-compatible client can discover and install it viauvx fcop-mcpout of the box. v2.0.2 is a double-pack lockstep administrative bump (per ADR-0002):fcoplibrary code is unchanged from v2.0.0; this release consolidates the fcop-mcp@2.0.1 MCP-metadata patch that landed the same day, plus the release+backup one-shot SOP (RULES-release-file-inventory.md,RULES-mcp-registry-release.md, append-only backup mirror). Earlier releases: v2.0.0 — philosophical major release ("two-diagram era"); the major bump records that the protocol now formally acknowledges two defining diagrams (execution stack + FCoP Semantic Evolution Loop), plus Rule 4.6 (fcop/internal/soft convention),deploy_internal_templateopt-in, P3 audit severity, and bundledfcop_auditexemption list that fixes the three upstream bugs surfaced by codeflow cross-project patrol (ISSUE-008/009/010). v1.6 (trailing-slug filename grammar, ADR-0033), v1.5 (84-doc protocol-awareness sync), v1.4 (write-side bind +supersedes:correction), v1.3 (GAL +fcop_audit()inspection compiler). 35 MCP tools total. See CHANGELOG.Normative spec:
spec/fcop-runtime-protocol-v1.0.md(v1.1 spec bundled in wheel viafcop.rules.get_spec()) · machine-readable contracts inspec/schemas/(8 schemas)Agent rules (
.mdc) in this repo:src/fcop/rules/_data/fcop-rules.mdc+fcop-protocol.mdc(spec/codeflow-core.mdcis a deprecated stub)Change log:
CHANGELOG.mdResearch snapshot:
research-snapshot-2026-04-29archived on Zenodo with a citable DOI (see How to cite below).
How to cite
If FCoP — the protocol, the field-report essays, the tutorials, or the reference implementations — informs your research, software, or writing, please cite the Zenodo research snapshot:
Snapshot tag:
research-snapshot-2026-04-29(commit7f59395)Machine-readable metadata:
CITATION.cff(GitHub auto-renders a Cite this repository button from this file in the right sidebar)
@misc{fcop2026snapshot,
author = {Zhu, Wei},
title = {{FCoP}: A Filename-as-Protocol coordination layer for multi-agent {AI} development (Research Snapshot, April 2026)},
month = apr,
year = 2026,
publisher = {Zenodo},
version = {research-snapshot-2026-04-29},
doi = {10.5281/zenodo.19886036},
url = {https://doi.org/10.5281/zenodo.19886036}
}For citations of individual essays or tutorials, the same DOI applies — please reference the essay's filename (e.g. essays/what-agents-say-about-fcop.en.md) and the snapshot version in your citation note.
Contributing
This repository is intentionally small and stable. Protocol evolution happens through real-world reports, not committee edits. The highest-leverage contributions are:
Field reports. Try FCoP on your own agent team and open an issue with what broke, what the agents invented, what naming conventions emerged.
Ports & SDKs. Thin wrappers for Python / TypeScript / Go that implement the filename parser and
rename()state transitions.Editor / MCP integrations. Syntax highlighting for
.fcopfiles, MCP bridges that expose the folder to other agent runtimes.
PRs to the spec itself should link to the concrete problem they're solving.
License
MIT — see LICENSE.
Credits
FCoP emerged from hands-on collaboration with multi-agent Cursor-style workflows. Many of the conventions in this spec were first invented by those agents and then codified here. Details are in the field report.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joinwell52-AI/FCoP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server