devin-mcp
# devin-mcp
MCP server for creating, monitoring, and managing Devin AI sessions.
## Tools
### delegate
Create a Devin session and monitor it until completion. Runs as a background task with live progress updates (status changes, messages).
Supports all Devin session options:
| Parameter | Description |
|---|---|
| `prompt` | The instruction for Devin to execute (required) |
| `title` | Custom session name (auto-generated if omitted) |
| `snapshot_id` | Restore from a previous snapshot |
| `playbook_id` | Associated playbook identifier |
| `tags` | Session categorization labels |
| `max_acu_limit` | Resource consumption ceiling |
| `idempotent` | Prevent duplicate sessions with the same prompt |
| `unlisted` | Hide session from listings |
| `knowledge_ids` | Knowledge bases to include (`None` uses all, `[]` uses none) |
| `secret_ids` | Secrets to include (`None` uses all, `[]` uses none) |
### get_session
Retrieve details about an existing Devin session, including its status, messages, and metadata.
| Parameter | Description |
|---|---|
| `session_id` | The identifier of the session to retrieve (required) |
### list_sessions
List Devin sessions with optional filtering. Useful for finding session IDs to inspect or resume.
| Parameter | Description |
|---|---|
| `limit` | Maximum number of sessions to return (default 100) |
| `offset` | Pagination offset (default 0) |
| `tags` | Filter sessions by tags |
| `user_email` | Filter sessions by creator's email |
### resume_session
Send a message to an existing Devin session and monitor it until completion. Runs as a background task. Use this to wake a sleeping session or send follow-up instructions to a running one.
| Parameter | Description |
|---|---|
| `session_id` | The identifier of the session to message (required) |
| `message` | The message to send (required) |
## Requirements
- Python 3.13+
- Devin API key (starts with `apk_`)
## Usage
### Claude Code
```bash
claude mcp add devin -e DEVIN_API_KEY=apk_your_key_here -- uvx --from git+https://github.com/desertaxle/devin-mcp devin-mcp
```
### Standalone
Run the MCP server directly:
```bash
uvx --from git+https://github.com/desertaxle/devin-mcp devin-mcp
```
## Development
Install dev dependencies:
```bash
uv sync
```
Run tests:
```bash
uv run pytest
```
Run linter, formatter, and type checker:
```bash
uv run prek run --all-files
```
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get_session inspects a single session, list_sessions finds sessions, delegate creates and runs a new task, and resume_session continues an existing one. No two tools overlap in a way that would cause misselection.
Three tools follow the verb_noun pattern (get_session, list_sessions, resume_session), but 'delegate' is a bare verb without a noun, deviating slightly from the otherwise consistent style. The names are still predictable and readable.
Four tools is well-scoped for a Devin session management server. Each tool covers a distinct lifecycle action without redundancy, fitting comfortably within the ideal 3-15 range.
The set covers create (delegate), read (get_session, list_sessions), and update via message (resume_session), but lacks a delete/cancel operation for sessions. This is a minor gap that agents could work around.