Skip to main content
Glama

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)

Related MCP server: AgentHub

Requirements

  • Python 3.13+

  • Devin API key (starts with apk_)

Usage

Claude Code

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:

uvx --from git+https://github.com/desertaxle/devin-mcp devin-mcp

Development

Install dev dependencies:

uv sync

Run tests:

uv run pytest

Run linter, formatter, and type checker:

uv run prek run --all-files

Available Tools

4 tools
delegateA

Delegate a task to Devin and monitor until completion.

Creates a new Devin session with the given prompt and monitors it until the session reaches a terminal state (finished, blocked, or expired). Progress updates are reported as the session executes.

Args: prompt: The instruction for Devin to execute. title: Custom session name. Auto-generated if not provided. snapshot_id: Restore from a previous snapshot. playbook_id: Associated playbook identifier. tags: Session categorization labels. max_acu_limit: Resource consumption ceiling (positive integer). idempotent: If true, prevents duplicate sessions with same prompt. unlisted: If true, hides session from listings. knowledge_ids: Knowledge bases to include. None uses all, empty list uses none. secret_ids: Secrets to include. None uses all, empty list uses none. progress: FastMCP Progress dependency for reporting status updates.

Returns: Final session details including status, messages, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleNo
promptYes
unlistedNo
idempotentNo
secret_idsNo
playbook_idNo
snapshot_idNo
knowledge_idsNo
max_acu_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does a good job by explaining that the tool monitors until 'finished, blocked, or expired' and that 'progress updates are reported as the session executes.' It also clarifies side effects for parameters like idempotent and unlisted. Minor gaps remain, such as potential long-running behavior or cancellation details, but the core behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured with a lead sentence, a behavior overview, a clearly formatted Args list, and a Returns section. It is appropriately sized for a tool with 10 parameters: no redundant sentences, each line adds value. The front-loaded purpose makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 10 parameters, no annotations, and an output schema, this description is thorough. It covers the tool's full lifecycle (creation, monitoring, terminal states), parameter semantics, and what the return contains. It leaves little ambiguity about when to invoke it and what to expect, especially given the rich parameter explanations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions are empty (0% coverage), so the description must fully explain parameters, and it does. Every schema parameter gets a meaningful explanation, and it adds crucial nuances like 'None uses all, empty list uses none' for knowledge_ids and secret_ids. This goes well beyond the schema and fully compensates for the lack of structured descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific action: 'Delegate a task to Devin and monitor until completion.' It further explains it creates a new Devin session and monitors it, which succinctly distinguishes it from sibling tools like get_session and list_sessions. The verb and resource are explicit and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: to start a new task and monitor it. It mentions creating a new session and monitoring until a terminal state, which sets expectations. However, it does not explicitly name alternatives or state when not to use it, so it misses the 'explicit exclusions/alternatives' bar for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sessionA

Retrieve details about an existing Devin session.

Use this to inspect the current status, messages, and metadata of a session. This is useful for checking whether a session is still running, has finished, or has gone to sleep due to ACU limits.

Args: session_id: The identifier of the session to retrieve.

Returns: Session details including status_enum, messages, title, tags, and metadata. The status_enum field indicates the session state: working, blocked, expired, finished, suspend_requested, resume_requested, or resumed.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It adds useful context by listing the possible status_enum values (working, blocked, etc.) and clarifies the kind of data returned. It doesn't discuss failure modes or permissions, but for a simple read operation this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence, usage guidance, an Args section, and a Returns section. Every sentence provides useful information without redundancy, making it appropriately sized and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a simple retrieval tool: it specifies the input, output, and interprets the key status field. It could mention what happens for invalid session_ids or explicitly differentiate from list_sessions, but given the output schema exists and the tool is straightforward, it covers the essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only says 'session_id' is a string with no description. The tool description compensates with 'The identifier of the session to retrieve,' which adds clear meaning. Even though schema coverage is 0%, the description fully explains the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Retrieve details about an existing Devin session.' It uses a specific verb and resource, and distinguishes from siblings like list_sessions (which lists) and resume_session (which resumes) by focusing on retrieving a single session's details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use the tool: 'Use this to inspect the current status, messages, and metadata of a session' and gives concrete scenarios like checking if a session is running or sleeping. While it doesn't explicitly mention alternatives or exclusions, the context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sessionsA

List Devin sessions with optional filtering.

Use this to find sessions by tags or email, or to get an overview of recent sessions. Useful for finding session IDs to inspect or resume.

Args: limit: Maximum number of sessions to return (default 100). offset: Pagination offset (default 0). tags: Filter sessions by these tags. user_email: Filter sessions by the creator's email address.

Returns: A dict with a 'sessions' key containing a list of session summaries, each with session_id, status_enum, title, tags, and other metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
limitNo
offsetNo
user_emailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavior, and it does include return structure (a dict with 'sessions' key and summary fields). However, it does not mention sort order, pagination stability, or any potential errors or edge cases. Given the tool is a simple read/list operation, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear opening line, then an 'Args' section and a 'Returns' section. Each sentence adds value, and the structure makes it easy to scan. There is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (a list operation with optional filters) and the presence of an output schema, the description covers the key facets: what it does, when to use it, the parameters, and the return shape. It misses minor details like sorting behavior but overall is complete enough for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining every parameter (limit, offset, tags, user_email) with enough context: defaults are given, and the purpose of each filter is stated. This goes above and beyond what the raw schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('List Devin sessions') with a resource and purpose ('find sessions by tags or email, or get an overview of recent sessions'). It also mentions usefulness for finding session IDs to inspect or resume, which implicitly distinguishes it from sibling tools like get_session or resume_session, though not naming them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context: 'Use this to find sessions by tags or email, or to get an overview of recent sessions. Useful for finding session IDs to inspect or resume.' This tells the agent when to use the tool, but it does not explicitly state exclusions or describe when to prefer a sibling tool, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_sessionA

Send a message to a Devin session and monitor it until completion.

Use this to resume a session that has gone to sleep (e.g. due to ACU limits) or to send follow-up instructions to a running session. Sending a message to a sleeping session will wake it up. After sending the message, the session is monitored until it reaches a terminal state.

Args: session_id: The identifier of the session to message. message: The message to send (e.g. instructions to continue work). progress: FastMCP Progress dependency for reporting status updates.

Returns: Final session details including status, messages, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: sending a message wakes a sleeping session, and the session is monitored until a terminal state. It mentions the return includes status, messages, and metadata, offering useful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise summary, usage context, args, and returns. It is slightly longer than necessary due to the extra progress arg and returns description, but each section adds value and the key guidance is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description doesn't need to explain return values in detail. It covers the main purpose, when to use, wake-up behavior, and monitoring semantics. It lacks details on error handling or timeouts, but is complete enough for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero descriptions, so the description's Args section is essential. It clearly explains session_id and message, and also mentions progress as a dependency, even though it's not in the schema. This adds meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Send a message to a Devin session and monitor it until completion,' a specific verb+resource+outcome that clearly distinguishes it from siblings like get_session and list_sessions. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: to resume a sleeping session or send follow-up instructions to a running session. It also explains the wake-up behavior, providing clear context, though it doesn't explicitly exclude alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observeddelegate
    • First observedget_session
    • First observedlist_sessions
    • First observedresume_session

TDQS

A4.4/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/desertaxle/devin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server