mcpcm is a monorepo that contains:
- A TypeScript CLI for managing MCP server configurations across AI agents.
- A FastAPI backend for ingesting install events and querying shared MCP records.
cli/:mcpcmCLI package (TypeScript/Node.js)api/:mcpcm-serverbackend (Python/FastAPI + SQLite)docs/: shared notes (for example OpenSpec usage)docker/: container assets (reserved)
- Local config management:
mcpcm add,update,del,list,find(local mode) operate on agent config files.
- Optional backend integration:
mcpcm addcan upload install telemetry toPOST /v1/ingest/mcp-servers.mcpcm find --online <keyword>queriesGET /v1/query/mcp-servers.
Set MCPPCM_SERVER_URL (or MCPPCM_API_BASE_URL) to enable backend calls from the CLI.
- Node.js
>=18(forcli/) - Python
>=3.11(forapi/) uv(Python package manager/runner)
cd api
uv sync
uv run uvicorn main:app --reloadAPI default URL: http://127.0.0.1:8000
Health check: GET /health
cd cli
npm install
npm run dev -- --helpExample:
npm run dev -- add '{"mcpServers":{"my-server":{"command":"node","args":["/path/to/server"]}}}' --agent cursorexport MCPPCM_SERVER_URL=http://127.0.0.1:8000
cd cli
npm run dev -- find --online my-servernpm run dev -- <command>
npm run build
npm run type-check
npm test
npm run format:checkMain CLI commands:
addupdatedellistfindsync
uv sync
uv run uvicorn main:app --reload
uv run pytest
uv run ruff check .
uv run ruff format .MCPPCM_SERVER_URL: backend base URL for telemetry and online findMCPPCM_API_BASE_URL: fallback alias for backend base URLMCPPCM_TELEMETRY_TIMEOUT_MS: telemetry request timeout (ms, default3000)
MCPPCM_HOST(default:127.0.0.1)MCPPCM_PORT(default:8000)MCPPCM_DATABASE_URL(default:sqlite:///./data/mcpcm.db)MCPPCM_MAX_INGEST_PAYLOAD_BYTES(default:65536)
GET /healthPOST /v1/ingest/mcp-serversGET /v1/query/mcp-servers
Details: api/docs/api-contract.md
- For repo-wide contribution and workflow rules, see
AGENTS.md. - For module-specific rules, see:
cli/AGENTS.mdapi/AGENTS.md