The hosted documentation server exposes read-only search and retrieval over
the entire pyRPC documentation. No Python installation and no pyRPC project
are required.
npx @pyrpc/mcp mcp
This command configures your AI coding client to use:
https://mcp.pyrpc.com/mcp
It is a thin convenience wrapper around the
add-mcp configuration engine,
which maintains native support for 19 coding agents including Claude Code,
Cursor, VS Code, OpenCode, Windsurf, Codex, Zed, Antigravity, Cline, and
Gemini CLI. add-mcp is the configuration utility; it is not the MCP server.
Useful flags:
npx @pyrpc/mcp mcp --global # user-level instead of project-levelnpx @pyrpc/mcp mcp --agent cursor # configure a specific agentnpx @pyrpc/mcp mcp --list # supported agents
Prefer the upstream tool directly? It is the same result:
claude_desktop_config.json only accepts local stdio servers. For remote
servers, Claude Desktop uses connectors configured in the app:
Settings -> Connectors -> Add custom connector, then paste
https://mcp.pyrpc.com/mcp. The connection is brokered through Anthropic's
cloud per their custom-connector model.
The local server runs inside your project's Python environment, imports your
configured backend module, and answers from the live registry, giving agents
ground truth about your application.
No procedure execution. There is no tool that invokes your backend
code, so agents cannot cause database writes, network calls, or other side
effects through pyRPC's MCP.
Local-only. The process is spawned by your own client in your project
environment. No telemetry, no network egress.
Claude / Cursor / VS Code / OpenCode | launches subprocess v pyrpc mcp | imports your backend module vyour routers, registry, schemas
The server must run in the same Python environment as your project because it
imports your code. That is automatic when clients spawn pyrpc mcp from the
project root.
Agent: unsure how mutation invalidation works, searches the remote
docs server for mutation invalidation react, reads the adapter guide via
get_doc, and follows the documented pattern.
Agent: verifies the payload with
check_call("get_post", { "id": "abc" }) before writing client code:
{ "valid": false, "errors": [{ "param": "id", "message": "Input should be a valid integer" }] }
Agent: fixes the payload, confirms types are current with
run_codegen(dry_run=true), regenerates with dry_run=false.