parapetai-mcp¶
parapetai-mcp is an MCP server for
Claude Code (and any other MCP client): device-code login to a Parapet
control plane, provisioning agents, pulling the exact quickstart config a
codebase needs, and six packaged skills that scaffold, retrofit, or
audit a governed agent project for you.
It ships as its own PyPI package, separate from parapetai-agent — you
don't need it to use the SDK, and using it never requires writing
Cedar-aware code by hand if you'd rather have an agent do it.
Install¶
It's a CLI tool (a [project.scripts] entry point), not a library
anything imports — and most Python installs on macOS/Linux now ship as
PEP 668 "externally managed", which
makes a bare pip install parapetai-mcp fail. Use
pipx:
No pipx? brew install pipx on macOS, or
python3 -m pip install --user pipx && pipx ensurepath elsewhere. If
uv is already on the machine,
uv tool install parapetai-mcp is an equivalent one-liner.
Requires Python 3.12+.
Set up a project¶
parapetai-mcp init # installs all packaged parapet-* skills into .claude/skills/
claude mcp add parapet -e PARAPETAI_CONTROL_PLANE_URL=https://app.parapet.run -- parapetai-mcp serve
init [project_dir](default.) copies every packaged skill —parapet-maf,parapet-adk,parapet-langgraph,parapet-quickdemo,parapet-install-prereqs,parapet-audit,parapet-audit-fix— into<project_dir>/.claude/skills/parapet-<name>/. It never touches anything outside.claude/skills/; it does not instrument your project's code itself. That's what the skills themselves do once invoked.claude mcp add ...registersparapetai-mcp serveas an MCP server with Claude Code, pointed at a control plane (defaults tohttps://app.parapet.runif you omit the-eoverride).serve(no other flags) runs the MCP server over stdio — this is what an MCP client actually launches; you don't run it by hand.
Once connected, ask Claude Code to build a demo, add Parapet to an existing MAF/ADK project, or audit an existing codebase for ungoverned model/tool calls, and the relevant skill takes it from there — see Skills for what each one does, and MCP tools for the individual tools they call along the way.
Environment¶
| Variable | Default | Controls |
|---|---|---|
PARAPETAI_CONTROL_PLANE_URL |
https://app.parapet.run |
The control plane every parapet_* tool talks to, unless a per-call argument overrides it |
PARAPETAI_MCP_CONFIG_DIR |
~/.parapet |
Where the CLI token (credentials.json, one entry per control-plane URL) is stored after parapet_login_start/parapet_login_wait |
Never paste a token, agent secret, or any other credential into chat — the
login flow is designed specifically to avoid that: parapet_login_start
opens a browser approval page (and hands back a manual fallback URL/code
either way), parapet_login_wait polls until you approve, and neither
ever returns the credential itself to the calling model.
Source¶
MIT licensed, part of the same repo as the SDK:
github.com/Parapet-run/parapet-agenticai-sdk/tree/main/mcp-server.