Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
set_project_dirA

Pin the project root for this MCP session.

Useful when the MCP process was spawned with the wrong working directory — typical symptom: unbound_report shows a project path like C:\Users\<you> instead of the workspace you actually opened in Cursor. Calling this tool once re-binds every subsequent tool call to the given directory, without editing mcp.json or restarting Cursor.

Safe to call while UNBOUND — re-pointing at a directory is not a role-claim and writes nothing. It only mutates in-process state.

init_projectA

Initialize an FCoP project with a bundled preset team.

Since 3.0.2 a fresh init produces the v3 topology (per spec §1.1): fcop/_lifecycle/{inbox,active,review,done,archive}/ plus the retained v2 buckets reports/ / issues/ / shared/. The superseded v2 buckets tasks/ and log/ are no longer created on fresh init (use python -m fcop migrate --to-v3 to upgrade an existing v2 project).

Writes fcop/fcop.json, deposits LETTER-TO-ADMIN.md under fcop/, creates the workspace/ cage with a starter README (per Rule 7.5), deploys the team's three-layer docs to fcop/shared/ (TEAM-README / TEAM-ROLES / TEAM-OPERATING-RULES + roles/{ROLE}.md, both zh and en), and (per ADR-0006) deploys the bundled protocol rules to four locations so any agent host sees them: .cursor/rules/fcop-rules.mdc, .cursor/rules/fcop-protocol.mdc, AGENTS.md, and CLAUDE.md. Existing copies are archived to .fcop/migrations/<timestamp>/ before being overwritten.

init_soloA

Initialize an FCoP project in Solo mode (one AI, no dispatch).

Solo mode is for projects where a single agent works directly with ADMIN. Rule 0.b still applies: the agent uses files to split itself into proposer and reviewer, even though there is no second role.

Since 3.0.2 fresh init produces the v3 topology (per spec §1.1): fcop/_lifecycle/{inbox,active,review,done,archive}/ plus retained reports/ / issues/ / shared/. Superseded v2 buckets (tasks/, log/) are no longer created on fresh init.

Beyond fcop.json and the canonical directories, this also deposits fcop/LETTER-TO-ADMIN.md (the user manual), creates the workspace/ cage with a starter README (per Rule 7.5), deploys the bundled solo three-layer docs (TEAM-README / TEAM-ROLES / TEAM-OPERATING-RULES + roles/ME.md, both zh and en) to docs/agents/shared/, and (per ADR-0006) drops the bundled protocol rules into .cursor/rules/*.mdc + AGENTS.md + CLAUDE.md. Existing copies are archived under .fcop/migrations/<timestamp>/ before being overwritten.

create_custom_teamA

Create an FCoP project with a custom roster of roles.

Role codes can be anything — they become part of task filenames, e.g. TASK-20260423-001-BOSS-to-CODER.md. Use validate_team_config first to catch illegal role codes without writing anything.

Since 3.0.2 fresh init produces the v3 topology (per spec §1.1): fcop/_lifecycle/{inbox,active,review,done,archive}/ plus retained reports/ / issues/ / shared/. Superseded v2 buckets (tasks/, log/) are no longer created on fresh init.

Custom teams have no bundled three-layer docs, so fcop/shared/ is left empty (apart from the project's own shared/README.md). The recommended next step is to read the closest preset (fcop://teams/<closest-preset> — see the teams/_data/README.md "Custom teams" section) and hand-author your own TEAM-README.md / TEAM-ROLES.md / TEAM-OPERATING-RULES.md + roles/{ROLE}.md based on it.

The other init artifacts are deposited as usual: fcop/fcop.json, LETTER-TO-ADMIN.md, workspace/README.md, plus the protocol rule files at .cursor/rules/*.mdc + AGENTS.md + CLAUDE.md (existing copies archived under .fcop/migrations/).

validate_team_configA

Dry-run validation for a custom team config.

Use before create_custom_team to catch illegal role codes (Chinese characters, dashes, reserved names, duplicates) without writing anything to disk.

write_taskA

Create a new task file (v3: _lifecycle/inbox/; v2: fcop/tasks/).

The library assigns a filename of the form TASK-YYYYMMDD-NNN-{SENDER}-to-{RECIPIENT}.md and writes a FCoP-compliant YAML frontmatter + markdown body. In a v3 project the task is placed in _lifecycle/inbox/ so the recipient can claim_task it.

read_taskB

Read the full content of a task file.

list_tasksC

List tasks, optionally filtered.

inspect_taskA

Validate a task file against FCoP grammar.

Catches deterministic violations that raw read_file + regex agents often miss: filename says to-DEV but frontmatter says recipient: QA, protocol field mistyped, required field missing, and so on.

archive_taskA

Archive a completed task (move under docs/agents/log/).

The report file tied to this task, if any, is moved alongside so the archived pair stays together.

archive_to_historyA

Move a closed task from _lifecycle/archive/ to the deep history archive.

The task and all its associated reports are moved together into history/YYYY-MM-DD/<task-stem>/, creating an immutable, date-sharded record. The date shard defaults to the UTC date when the task was marked done; you can override it via done_date.

Call :func:archive_task first to move the task from _lifecycle/done/ to _lifecycle/archive/ before calling this tool.

bulk_archive_to_historyA

Migrate all tasks from _lifecycle/archive/ into the deep history archive.

This is a convenience migration tool. It iterates every task in _lifecycle/archive/ and calls :func:archive_to_history for each one, moving each task together with its associated reports into history/YYYY-MM-DD/<task-stem>/.

Useful when:

  • A project is being upgraded and existing archived tasks need to be moved into the new date-sharded history structure.

  • You have just finished a manual archiving session and want to flush everything from _lifecycle/archive/ into history/ in one step.

The history/ directory is created automatically if it does not yet exist.

create_taskA

Create a new task and place it in the inbox (v3) or tasks folder (v2).

This is the canonical FCoP v3 spec §8 L1 entry-point for task creation — functionally identical to :func:write_task but named to match the spec. In a v3 project the task lands in _lifecycle/inbox/ so the recipient can claim_task it.

list_historyA

List the deep history archive.

When date is supplied (YYYY-MM-DD) the tool lists every task entry stored under that date shard. When date is omitted it lists all available date shards (newest first).

read_history_taskA

Read a task from the deep history archive.

Searches history/ for the task matching task_id. Providing date restricts the search to that date shard (much faster).

claim_taskA

Claim a task from inboxactive (v3 lifecycle).

Moves the task file from _lifecycle/inbox/ to _lifecycle/active/ and appends a claim_task transition event to the file's frontmatter. On v2 projects this is a no-op that returns an informational message.

submit_taskA

Submit an active task for review: activereview (v3 lifecycle).

Moves the task file from _lifecycle/active/ to _lifecycle/review/ and appends a submit_task transition event. On v2 projects this is a no-op.

finish_taskA

Finish an active task directly: activedone (v3 lifecycle).

Moves the task file from _lifecycle/active/ to _lifecycle/done/ without a review step. Use this for tasks that do not require ADMIN approval. On v2 projects this is a no-op.

approve_taskA

Approve a task under review: reviewdone (v3 lifecycle).

Moves the task file from _lifecycle/review/ to _lifecycle/done/ and appends an approve_task event. Typically called by ADMIN after inspecting the work. On v2 projects this is a no-op.

reject_taskA

Reject / recall a task under review: reviewactive (v3 lifecycle).

Moves the task file back from _lifecycle/review/ to _lifecycle/active/ so the agent can rework it. Appends a reject_task transition event. This is the FCoP v3 "撤回" (recall) mechanism — ADMIN sends the work back for revision without discarding it. On v2 projects this is a no-op.

write_reportA

Write a completion report for a task.

Creates REPORT-<task_id>-{REPORTER}-to-{RECIPIENT}.md under docs/agents/reports/. The task_id is the canonical reference back to the source task.

list_reportsC

List reports, optionally filtered.

read_reportC

Read the full content of a report file.

write_issueB

File an issue under docs/agents/issues/.

write_reviewC

Write a REVIEW file (governance-layer decision, per ADR-0017/0025).

list_reviewsC

List REVIEW files, optionally filtered.

read_reviewA

Read the full content of a REVIEW file.

mark_human_approvedA

Record a human approval decision on a needs_human REVIEW file.

Closes the escalation loop opened by write_review(decision='needs_human'). Writes human_approval sub-structure into the REVIEW frontmatter and returns the updated review summary (per ADR-0026).

list_issuesC

List issues, optionally filtered.

get_available_teamsA

List bundled preset teams and their role rosters.

Useful before init_project to pick a template that fits the work. Each team ships with its own three-layer documentation (TEAM-README.md + TEAM-ROLES.md + TEAM-OPERATING-RULES.md) that gets deployed into docs/agents/shared/ during init_project.

get_team_statusA

Return a concise status snapshot of the current project.

Shows whether the project is initialized, which team / roster is loaded, how many open tasks / reports / issues are on disk, and the five most recent activity entries (sorted newest first).

deploy_role_templatesA

Deploy the three-layer team documentation into shared/.

Writes TEAM-README.md (bilingual), TEAM-ROLES.md, TEAM-OPERATING-RULES.md, and per-role bios under docs/agents/shared/ (both zh and en variants).

When force=True (default) existing files are archived under .fcop/migrations/<timestamp>/shared/ before being overwritten, so the action is safely reversible. When force=False existing files are left untouched and reported as skipped.

new_workspaceA

Create a workspace subdirectory under workspace/<slug>/.

workspace/<slug>/ is FCoP's soft convention for the actual artifacts of a piece of work — code, scripts, data. Keeping those out of the project root prevents yesterday's mini-game from colliding with today's report generator.

Idempotent: calling twice with the same slug updates the title / description but never wipes files you already dropped in the folder.

list_workspacesA

List all workspace/<slug>/ subdirectories with their metadata.

Picks up both workspaces created by new_workspace (they have a .workspace.json marker) and directories created by hand (shown with just the slug). Use for the at-a-glance "what's inside this project" view.

drop_suggestionA

Pressure valve for agents who disagree with the current FCoP protocol.

Writes a timestamped markdown file under .fcop/proposals/ that ADMIN can review later. This is the ONLY sanctioned way for an agent to push back on the rule files (fcop-rules.mdc / fcop-protocol.mdc). Agents MUST NOT edit the rule files themselves; those are ADMIN's source of truth.

Works before init_project / init_solo too — suggestions just land under the project root even if the project is not yet fully initialized.

fcop_reportA

FCoP Rule 0 — first tool call of every new session, also the general project-status report.

Returns one of two reports plus a versions block + optional drift warning (ADR-0006):

  1. Initialization report when docs/agents/fcop.json is missing. Lists the detected project path + resolution source and the available init modes (Solo / preset teams / custom). Does NOT ask for a role assignment — there's no team yet.

  2. UNBOUND report when the project is initialized but this session has no role. Shows project state and a role-assignment template for ADMIN to fill in.

In both cases the [Versions] block reports installed fcop-mcp / fcop versions plus the project-local vs packaged versions of the protocol rules. When the project's .cursor/rules/*.mdc is older than the wheel-bundled copy a drift warning is appended prompting ADMIN to run redeploy_rules(). Agents must NOT invoke redeploy themselves.

While UNBOUND (or uninitialized) the agent MUST NOT read task bodies, write any files (except via the explicit init tools), or claim a role from context clues.

.. note:: This tool replaced unbound_report in 0.6.3. The deprecated alias was removed in 0.7.0; existing system prompts and LETTER-TO-ADMIN.md references that still reference unbound_report must switch to fcop_report.

fcop_checkA

FCoP audit. Cross-reference git working tree + frontmatter against the FCoP ledger.

Two independent post-hoc audits, both new in 0.7.1 (fcop_protocol_version: 1.6.0):

  1. Rule 0.a.1 drift — files in git status --porcelain that live outside docs/agents/{tasks,reports,issues,log}/ are by definition work performed without the task→do→report→archive cycle.

  2. Rule 1 sub-agent role impersonation — any session_id that signed files under more than one role code. One session = one role binding for life; cross-role usage is direct evidence that a sub-agent self-claimed a role its parent session was not assigned.

This tool is detection, not prevention. It surfaces the evidence; the protocol-mandated response is for ADMIN to file an ISSUE-* and decide handoff / co-review / distinct-role per Rule 1, just as for the role_occupancy table in fcop_report().

Decomposes to filesystem operations:

  • git status --porcelain -z from the project root.

  • Walk every TASK-*.md / REPORT-*.md / ISSUE-*.md in docs/agents/{tasks,reports,issues} + docs/agents/log/*.

  • Read frontmatter only; never task bodies.

fcop_auditA

协议体检工具(ADR-0032)。扫描项目,发现协议合规缺口,产出"体检即整改方案"报告。

fcop_check 的区别:

  • fcop_check — 日常轻量自检(working-tree drift + session/role 冲突)

  • fcop_audit — 一次性深度体检(协议合规度全量扫描 + 整改方案)

三个 scope:

  • new : 新项目验收 — 协议文件是否完整部署

  • upgrade : 版本升级后验收 — 规则版本 / 文档是否同步

  • takeover : 老 non-fcop 项目首次引入 fcop — 全量合规扫描(含 6 类盲区)

  • auto : 自动推断(推荐)

产出物:fcop/shared/INSPECTION-{date}-{NNN}-{scope}.md

报告含 Execution Block:每条违规附带可直接复制的整改命令、执行人、 Tier 优先级和回滚方式。

redeploy_rulesA

ADMIN-only. Re-deploy bundled FCoP protocol rules to the project.

Writes the wheel-bundled :file:fcop-rules.mdc / :file:fcop-protocol.mdc to four locations so any agent host the project runs under sees the same rules:

.. code-block:: text

<root>/.cursor/rules/fcop-rules.mdc       # Cursor IDE
<root>/.cursor/rules/fcop-protocol.mdc    # Cursor IDE
<root>/AGENTS.md                          # Codex / Cursor / Devin / generic
<root>/CLAUDE.md                          # Claude Code CLI

Run this after pip install -U fcop-mcp (or -U fcop) to refresh on-disk copies to the newly packaged versions. fcop_report() shows when this is needed via the version drift warning.

Per ADR-0006, agents must NOT invoke this tool themselves — only ADMIN does, explicitly.

check_updateA

Compare the installed fcop-mcp version to the latest on PyPI.

Prints the local version, the latest PyPI version (if reachable), and a one-line verdict. Does NOT install anything — call upgrade_fcop afterwards for that.

upgrade_fcopA

Return the install-method-specific command to upgrade fcop-mcp.

Does NOT run pip — MCP servers cannot safely upgrade themselves mid-process, and different install methods (pip in a venv, pipx, uvx) need different commands. This tool prints the right incantation for the user to run in their own shell.

list_governance_eventsA

FCoP governance audit. Read the append-only governance event log.

Returns recent tool-call intercept events recorded by the FCoPGovernanceMiddleware (ADR-0030-bis Layer 1). Use this to understand what actions agents have taken and their risk classification.

get_governance_summaryA

FCoP governance summary. Return aggregate statistics from the governance event log: total calls by risk level, most active tools, and any CRITICAL_TAG events that should be reconciled with Tasks and Reviews.

Use as a quick health check: CRITICAL_TAG events without corresponding Task + Review coverage are governance gaps that require ADMIN attention.

fcop_list_alertsA

ADMIN Governance Alert Inbox. List governance alerts from fcop/alerts/.

Alerts are written automatically by fcop_check() when governance drift signals are detected (ADR-0031). Each alert is a structured ALERT-*.md file with severity (high/medium/low), type, and a summary of the governance gap.

This is the ADMIN's "red dot" — run this to see what governance gaps the system has surfaced, without needing to manually patrol logs.

fcop_create_alertA

ADMIN / Governance Observer only. Manually file a governance alert.

Use when you (as ADMIN or an authorized governance observer) detect a governance gap that automated scanning has not yet captured. Creates a new ALERT-*.md file in fcop/alerts/.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
resource_statusProject status snapshot (same data as :func:`get_team_status`).
resource_configRaw contents of ``docs/agents/fcop.json`` when the project is initialized.
resource_rulesFCoP protocol rules (``fcop-rules.mdc``).
resource_protocolFCoP protocol commentary (``fcop-protocol.mdc``).
resource_spec_zhFCoP v1.1 protocol spec — Simplified Chinese (informative). Returns the wheel-bundled ``fcop-spec-v1.1.zh.md`` via ``fcop.rules.get_spec("zh")``. Covers the seven core abstractions (Agent, IPC, Encoding, Event, Failure, Boundary, Audit) together with the v1.1 Capability Governance additions (risk_level, needs_human, human_approval, Skill.tools[*].risk). The canonical FCoP 3.0 specification — which introduces the Lifecycle / Event / Tool-Tier ontology that supersedes the v1.1 flag-based model — lives at ``spec/fcop-3.0-spec.zh.md`` in the source repository (not yet bundled in the wheel). Use this resource for stable v1.1 contracts; consult the 3.0 spec for the current canonical semantics. The English version is available at ``fcop://spec/en``.
resource_spec_enFCoP v1.1 protocol spec — English (informative). Returns the wheel-bundled ``fcop-spec-v1.1.en.md`` via ``fcop.rules.get_spec("en")``. Covers the seven core abstractions (Agent, IPC, Encoding, Event, Failure, Boundary, Audit) and the v1.1 Capability Governance additions. The canonical FCoP 3.0 specification lives at ``spec/fcop-3.0-spec.md`` in the source repository (not yet bundled in the wheel; see ADR-0039 for the rules on what gets bundled). Use this resource for stable v1.1 contracts; consult the 3.0 spec for the current canonical semantics.
resource_letter_zhChinese Letter-to-ADMIN user manual.
resource_letter_enEnglish Letter-to-ADMIN user manual.
resource_install_prompt_zhCanonical "have an agent install fcop-mcp" prompt (Chinese). Same text as the bundled ``agent-install-prompt.zh.md`` and the ``mcp/README.md`` § "Have an agent install fcop-mcp for you" section. ADMIN copies this and gives it to a fresh shell-capable agent. The prompt body explicitly forbids agents from auto-initialising a project after install — initialisation is ADMIN's three-way choice (solo / preset team / custom).
resource_install_prompt_enCanonical "have an agent install fcop-mcp" prompt (English). English variant of ``fcop://prompt/install``. Same content as the bundled ``agent-install-prompt.en.md``.
resource_teams_indexJSON index of all bundled teams with name / roles / leader.

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