Skip to main content

MCP (Model Context Protocol) server exposing the fcop library's Project/Task/Report/Issue API to Cursor, Claude Desktop, and other MCP clients.

Project description

fcop-mcp

MCP server that exposes the fcop library as a Model Context Protocol toolkit for Cursor, Claude Desktop, and every other MCP-aware client.

This is the server shell. For the Python library (no MCP, no fastmcp dep), install fcop.


Install

pip install fcop-mcp

or let uvx pull it on demand (recommended for Cursor / Claude Desktop, because the MCP host upgrades the server without touching your Python env):

uvx fcop-mcp

Wire it into Cursor

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "fcop": {
      "command": "uvx",
      "args": ["fcop-mcp"]
    }
  }
}

Wire it into Claude Desktop

Edit the Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "fcop": {
      "command": "uvx",
      "args": ["fcop-mcp"]
    }
  }
}

Restart the client. You should see 22 tools named set_project_dir, unbound_report, init_project, init_solo, create_custom_team, validate_team_config, deploy_role_templates, new_workspace, list_workspaces, get_team_status, list_tasks, read_task, write_task, inspect_task, drop_suggestion, list_reports, read_report, list_issues, archive_task, check_update, upgrade_fcop, get_available_teams.

Where does it put files?

By default the server resolves the project root in this order (locked by ADR-0003):

  1. The last set_project_dir("…") call in this MCP session.
  2. FCOP_PROJECT_DIR environment variable.
  3. CODEFLOW_PROJECT_DIR (deprecated, prints one warning).
  4. Walk up from the current working directory looking for docs/agents/fcop.json, .cursor/rules/fcop-rules.mdc, or a pre-existing docs/agents/tasks/ directory.
  5. Current working directory, plain.

To pin a project unconditionally, put it in your MCP client config:

{
  "mcpServers": {
    "fcop": {
      "command": "uvx",
      "args": ["fcop-mcp"],
      "env": { "FCOP_PROJECT_DIR": "D:/projects/your-project" }
    }
  }
}

Upgrading from fcop 0.5.x

If your mcp.json looks like this:

"fcop": { "command": "uvx", "args": ["fcop"] }

change the one arg to:

"fcop": { "command": "uvx", "args": ["fcop-mcp"] }

and you're done. All 22 tool names, arguments, and semantics are preserved. The key in mcpServers ("fcop") does not have to change — Cursor does not care about the key name.

See MIGRATION-0.6.md for the full upgrade guide.

Stability commitment

fcop-mcp follows the Pre-1.0 Stability Charter:

  • Tool names, parameter names, and return shapes are additive-only within any 0.6.x release.
  • Breaking changes require a DeprecationWarning in a preceding minor version and a minimum 30-day migration window.
  • New capabilities arrive as new tools, not modifications to old tools.

In practice: MCP client configs that work with fcop-mcp 0.6.0 continue working with every subsequent 0.6.x and 0.7.x patch.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fcop_mcp-0.6.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fcop_mcp-0.6.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file fcop_mcp-0.6.0.tar.gz.

File metadata

  • Download URL: fcop_mcp-0.6.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for fcop_mcp-0.6.0.tar.gz
Algorithm Hash digest
SHA256 5742980f72062454e0087b14baf4475d75d85be2e0022634cd55d88b1d210929
MD5 55b201a6651ad3f06aa6f281cbbb881e
BLAKE2b-256 18817d4cd47f63c562a474a05ac8e6c019c7b051c5e08eb2c3d21abc209f80a4

See more details on using hashes here.

File details

Details for the file fcop_mcp-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: fcop_mcp-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for fcop_mcp-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b60631b1e2e448464fbb3e2be145efdc26ed27f200549c05e865097bf01d661b
MD5 f20e212014339d289c559f4175048cd3
BLAKE2b-256 4dd6d9dd6da83970598ac842ab8ba334e53ae54421a1537face2232c38d39003

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page