stdio MCP server for the FCoP Python library: exposes the fcop package's Project, task, report, and issue APIs to MCP clients (Cursor, Claude Desktop, …). Optional bridge, not a second protocol; depends on fcop 0.6.x, FastMCP, websockets.
Project description
fcop-mcp
MCP (stdio) server — the optional IDE bridge for the same FCoP stack. It
wraps the official fcop library; it is not
a second “FCoP product” and does not replace the protocol text.
- What FCoP is (protocol only, product-agnostic):
docs/fcop-standalone.en.md(中文fcop-standalone.md) - Pure Python lib /
pip install fcop: filesystem + Project API, PyYAML only — PyPIfcop(see that package’sdescriptionand Documentation). - This package (
fcop-mcp):pip install fcop-mcp— stdio tools/resources for clients; same repo, foldermcp/. - Source home: joinwell52-AI/FCoP
The
fcopon PyPI must be the FCoP library (summary mentions File-based Coordination Protocol,pyyaml, nofastmcpinsidefcop). Ifpip show fcopsays MCP toolbox orfrom fcop import Issuefails, you have a wrong distribution — fix with a clean venv and reinstall (see Verify below).
One-page install (what we recommend for customers)
Goal: a dedicated Python environment for MCP only, so no other project’s .pth or wrong fcop shadows the real library.
A. Recommended: dedicated venv + python -m fcop_mcp
- Python 3.10+ on
PATH(3.10–3.13 tested in CI; avoid very new 3.14 until CI covers it). - Create a venv (paths are examples — adjust if you like):
Windows (PowerShell)
$v = "$env:USERPROFILE\.cursor\fcop_mcp_venv"
py -3.10 -m venv $v
& "$v\Scripts\pip.exe" install -U pip
& "$v\Scripts\pip.exe" install -U "fcop" "fcop-mcp"
macOS / Linux
VENV="$HOME/.cursor/fcop_mcp_venv"
python3 -m venv "$VENV"
"$VENV/bin/pip" install -U pip
"$VENV/bin/pip" install -U "fcop" "fcop-mcp"
- Cursor user config — file:
- Windows:
%USERPROFILE%\.cursor\mcp.json - macOS / Linux:
~/.cursor/mcp.json
Add or merge (use the real python path from step 2):
{
"mcpServers": {
"fcop": {
"command": "C:\\Users\\YOUR_USER\\.cursor\\fcop_mcp_venv\\Scripts\\python.exe",
"args": ["-m", "fcop_mcp"]
}
}
}
On macOS, command is like /Users/YOUR_USER/.cursor/fcop_mcp_venv/bin/python.
- Fully restart Cursor (or Developer: Reload Window), then open MCP and confirm
fcopis connected.
Why this path? uvx (below) is convenient but first run can take a long time to download dependencies; some MCP hosts time out. A fixed venv avoids that and avoids name conflicts with other editable installs of fcop on the same machine.
B. Alternative: uvx fcop-mcp (quickest to try, slower cold start)
{
"mcpServers": {
"fcop": {
"command": "uvx",
"args": ["fcop-mcp"]
}
}
}
Install uv first. First connection may download many wheels — wait for it; don’t spam reconnect. If you see Aborted or timeouts, use A above.
Verify (2 commands)
In the same venv you use for MCP:
python -c "from fcop import Issue, Project; print('fcop OK', Project)"
python -c "from fcop_mcp.server import mcp; print('fcop-mcp OK')"
If the first line fails, fcop is not the FCoP library — uninstall and reinstall in a clean venv (fcop / fcop-mcp from PyPI, same 0.6.x minor in lockstep with the current release).
Claude Desktop
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Use the same command / args as Cursor (either A with your venv python, or B with uvx).
Upgrading from uvx / args: ["fcop"] (0.5.x)
"fcop": { "command": "uvx", "args": ["fcop-mcp"] }
The mcpServers key name can stay "fcop". Full guide:
docs/MIGRATION-0.6.md
Where the server looks for the project
Resolution order (see ADR-0003):
- Last
set_project_dirin this MCP session FCOP_PROJECT_DIR- Legacy 0.5.x env var
CODEFLOW_PROJECT_DIR(still recognized with a deprecation warning — useFCOP_PROJECT_DIR) - Walk up for
docs/agents/fcop.json/fcop-rules.mdc/docs/agents/tasks/ - Current working directory
To pin a folder in config:
"env": { "FCOP_PROJECT_DIR": "D:/path/to/your/repo" }
Stability (0.6.x)
Tool and resource shapes are additive-only within 0.6.x (stability charter). Configs that work on fcop-mcp 0.6.0+ should keep working on later 0.6.x patch releases.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fcop_mcp-0.6.2.tar.gz.
File metadata
- Download URL: fcop_mcp-0.6.2.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
850ee7d53e23fac1262b92ad3897c95ffb7a61a9ffe6afdbaabfc1369c21ecdf
|
|
| MD5 |
f6c6f7c7b4c12ff92e30043e1005364b
|
|
| BLAKE2b-256 |
97aa61f300f55702feedbd7808a15c2fc64d55de9ca6a401c76503adc47266c0
|
File details
Details for the file fcop_mcp-0.6.2-py3-none-any.whl.
File metadata
- Download URL: fcop_mcp-0.6.2-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36e3b3feac8e3cfa0988a90b4cf8a04d2c28bed238571bbcf1df2add61b8d042
|
|
| MD5 |
10c5d3be80c8117f0d61c37a1e80ffaf
|
|
| BLAKE2b-256 |
517970d51139e51b9783349f6a0f1df6b3b4df4220ec9dbe49fb33b2e7a5123a
|