MCP
Otter MCP is published on PyPI as otter-mcp. It is a stdio Model Context Protocol server — a repository brain for Cursor, Claude Desktop, and Claude Code: impact, architecture guard, verification, and approval-gated tasks. No monorepo clone required.
Install
pip install otter-mcp
# or run without a permanent install:
uvx otter-mcpBind a repo with OTTER_REPO_ROOT (or OTTER_REPOSITORY_ID under the API data directory). Optional persistence needs a running API plus OTTER_API_URL and OTTER_SESSION (Web/Docker otter_session cookie). CLI GitHub login alone is not an API session.
Cursor / Claude
{
"mcpServers": {
"otter": {
"command": "uvx",
"args": ["otter-mcp"],
"env": {
"OTTER_REPO_ROOT": "${workspaceFolder}"
}
}
}
}Or use "command": "otter-mcp" after pip install otter-mcp. Logs stay on stderr — stdio is the MCP framing channel.
What you get
- Deterministic graph impact (
otter_impact,otter_dependency_impact,otter_change_radar) - Evidence-backed constitution +
otter_guard/otter_why - Allowlisted verify + review gate (
PASS/REVIEW/BLOCKED) - Task orchestration mapped to Otter code-tasks — apply only after approval
Approval & security
otter_task_executewithapplyreturnsapproval_requireduntil the code-task is approved — no silent writes- No arbitrary shell tool; runners are allowlisted (npm scripts, pytest, ruff)
- Path traversal on repository ids and relative paths is rejected