Otter MCP — Engineering Intelligence Layer
Official Model Context Protocol stdio server. External AI agents (Cursor, Claude Desktop, Claude Code) get a repository brain: impact, architecture guard, verification, and approval-gated tasks.
Install (no monorepo clone)
pip install otter-mcp
# or: uv pip install otter-mcp
Or run without a permanent install:
uvx otter-mcp
Cursor / Claude (mcp.json)
{
"mcpServers": {
"otter": {
"command": "uvx",
"args": ["otter-mcp"],
"env": {
"OTTER_REPO_ROOT": "${workspaceFolder}"
}
}
}
}
If you prefer pip’s console script:
{
"mcpServers": {
"otter": {
"command": "otter-mcp",
"env": {
"OTTER_REPO_ROOT": "${workspaceFolder}"
}
}
}
}
Optional API persistence
{
"env": {
"OTTER_REPO_ROOT": "${workspaceFolder}",
"OTTER_API_URL": "http://127.0.0.1:8000",
"OTTER_SESSION": "your-web-otter-session-cookie",
"OTTER_REPOSITORY_ID": "imported-repo-id"
}
}
Auth note: CLI otter login (GitHub) is not an API session. Export the Web/Docker otter_session cookie as OTTER_SESSION.
Requirements
- Python 3.11+
- A local checkout via
OTTER_REPO_ROOTand/or an imported repo underREPOSITORY_DATA_DIR/{repository_id} - Optional: running Otter API for memory / code-tasks
Tools
| Tool | Purpose |
|---|---|
otter_understand |
Targeted context (retrieval + neighbors) |
otter_impact |
Blast radius from a focus path |
otter_change_radar |
Pre-write scope / risk / complexity |
otter_dependency_impact |
Reverse consumers of a file/module/dep |
otter_guard |
Proposal vs inferred constitution |
otter_why |
Evidence-backed “why does this exist?” |
otter_memory |
List/add memory via API |
otter_verify |
Allowlisted tests/lint + architecture |
otter_review_gate |
PASS / REVIEW / BLOCKED |
otter_task_create |
Plan + optional API code-task (no writes) |
otter_task_status |
Task status from API |
otter_task_validate |
Review gate vs objective |
otter_task_execute |
generate / approve / apply — apply only when approved |
Writes never apply silently: otter_task_execute with apply returns approval_required until status is approved.
Resources & prompts
- Resources:
otter://repo/overview,architecture,constitution,health,dependencies,otter://task/{id}… - Prompts:
otter-investigate,otter-plan,otter-review,otter-debug,otter-security-review,otter-architecture-review
Developer install (from this monorepo)
pip install -e apps/mcp
export OTTER_REPO_ROOT=/path/to/repo
otter-mcp
Security
- No general
execute_shelltool — only allowlisted npm scripts / pytest / ruff - Path traversal rejected on
repository_idand relative paths - Oversized tool JSON is truncated in responses
MCP Registry
Package metadata: server.json. Registry name: io.github.manasdutta04/otter.
See also: https://otter.manasdutta.com/docs/mcp
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file otter_mcp-0.2.0.tar.gz.
File metadata
- Download URL: otter_mcp-0.2.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f99562b6561ff7dc06305b4c13de2dd138e7070bde8dd8439e6ef43150c770
|
|
| MD5 |
8d3090de9ccaab8a10b3d615ff843727
|
|
| BLAKE2b-256 |
850689783987e8884ac11744bb4edc35eea0cb61a63ca7d5fdbc2b529bb25c00
|
File details
Details for the file otter_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: otter_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 37.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db8e2de25399259eb9687feb84a28ba58065895858f4c5029c9964377a183a97
|
|
| MD5 |
07f83cbaf7702d898b7bef2cfdfbfc94
|
|
| BLAKE2b-256 |
c4eae5213c10fbad1ab49603fd44613436eb028f99abe6bf9e041a444089b93e
|