otter

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-mcp

Bind 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_execute with apply returns approval_required until 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

Source & registry

Related