Skip to main content
Glama

devin-api-mcp

A single devin-api MCP server providing full Devin API coverage — manage sessions, knowledge, playbooks, secrets, schedules, and attachments programmatically from any MCP client — plus the read-only DeepWiki documentation tools (ask_question, read_wiki_structure, read_wiki_contents).

Unlike the hosted Devin MCP, which routes all operational tools through the v3 API (rejecting personal apk_ keys, so sessions can't be attributed to the dispatching user), this server backs the core tools with the v1 API and your personal key — sessions show up in your Devin dashboard.

The workflow

The intended shape: a local agent (Claude Code, Codex, …) does the thinking on your machine — planning, design, review — consulting DeepWiki as an on-demand codebase expert, then delegates well-scoped implementation tasks to Devin cloud sessions and gathers the results.

flowchart LR
    subgraph local["🖥️ Your machine"]
        agent["Claude Code / Codex<br/><i>planning · design · review</i>"]
    end
    subgraph cloud["☁️ Devin cloud"]
        wiki["DeepWiki<br/><i>codebase expert</i>"]
        d1["Devin session"]
        d2["Devin session"]
    end
    agent <-- "ask_question<br/>read_wiki_*" --> wiki
    agent -- "create_session<br/>send_message" --> d1
    agent -- "delegate scoped tasks" --> d2
    d1 -- "gather_sessions → PRs, results" --> agent

Related MCP server: AnythingLLM MCP Server

Quickstart

Claude Code:

claude mcp add -s user -e DEVIN_PERSONAL_API_KEY=<your-personal-key> -- devin-api npx -y -p @jsklan/devin-api-mcp devin-api

Codex:

codex mcp add devin-api --env DEVIN_PERSONAL_API_KEY=<your-personal-key> -- npx -y -p @jsklan/devin-api-mcp devin-api

Gemini CLI:

gemini mcp add -e DEVIN_PERSONAL_API_KEY=<your-personal-key> devin-api npx -y -p @jsklan/devin-api-mcp devin-api

Get your personal key (apk_user_ prefix) from app.devin.ai → Settings → API Keys. Optionally add a second DEVIN_SERVICE_API_KEY=<org-service-key> env var (cog_ prefix, from org settings) to also enable the v3 organization tools (schedules, insights, archive, message history).

The server documents itself

Full setup, credential, and configuration docs are built into the server — no need to keep this README open:

  • Installed with no keys at all, the server starts in setup mode: it exposes a single get_setup_docs tool and instructs the connected agent to walk you through obtaining and configuring credentials. So the zero-knowledge onboarding path is just: install, connect, ask your agent to set it up.

  • With keys configured, get_setup_docs remains available for reference (adding the second key, migrating configs, other MCP clients, plugin install).

To install as a Claude Code plugin instead: /plugin → Marketplaces → add jsklan/devin-api-mcp → install devin-api (keys via environment variables, same as above).

What you get

Which tools are registered depends on which keys are set; tools whose backing key is absent are simply not registered — nothing shows up broken.

  • Personal key (DEVIN_PERSONAL_API_KEY, apk_user_; DEVIN_API_KEY accepted as fallback) — sessions (create/list/get/message/gather/terminate/tag), knowledge, playbooks, secrets, attachment upload, plus the three DeepWiki docs tools (proxied to mcp.devin.ai with your key, so private repos work).

  • Service key (DEVIN_SERVICE_API_KEY, cog_) — the v3-exclusive organization tools: schedules, session insights, archive/delete, paginated message history, tag management, attachment download.

  • Attribution rule: with both keys, capabilities that exist in both APIs stay backed by v1 + your personal key so sessions remain user-attributed; the service key only adds its exclusives.

Run get_setup_docs (or read src/setup-docs.ts) for the full breakdown.

Deprecated aliases

  • deepwiki (standalone docs-only proxy server) — merged into devin-api in 1.1.0. The bin still works but prints a deprecation warning; remove the separate deepwiki entry from your MCP config.

  • devin-api-v1 / devin-api-v3 — unified into devin-api in 1.0.0; both aliases launch the unified server.

Tool names are unchanged in both migrations, so existing prompts and automations keep working. Aliases will be removed in a future major version.

API Coverage

  • The v1 tool set wraps the Devin REST API v1.

  • The v3 tool set wraps the Devin REST API v3 organization endpoints (org_id auto-discovered at startup via /v3/self). Enterprise (/v3/enterprise/...) and beta (/v3beta1/...) endpoints are intentionally excluded.

  • The DeepWiki tools proxy to the upstream Devin MCP server (DEEPWIKI_UPSTREAM_URL, default https://mcp.devin.ai/mcp; optional DEVIN_ORG_ID header).

Written in TypeScript with Zod schema validation.

License

MIT

Available Tools

3 tools
ask_questionA

Ask any question about a GitHub repository and get an AI-powered, context-grounded response.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesThe question to ask about the repository.
repoNameYesGitHub repository or list of repositories (max 10) in owner/repo format.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral transparency. It discloses that responses are AI-powered and context-grounded, which is useful. However, it does not mention limitations such as potential inaccuracy, access restrictions, or how the context is obtained.

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 a single, clear sentence that states the action, target, and result without any wasteful words. It is optimally concise and front-loaded.

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

Completeness3/5

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

The tool is moderately complex (AI Q&A over repositories), and the description/schema together convey the essential information for invocation. However, it lacks behavioral nuance (e.g., how answers are generated, limitations) and does not reference the output schema, though that is optional when an output schema exists.

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

Parameters3/5

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

Schema descriptions cover both parameters with 100% coverage, so the description does not need to add parameter-level details. It adds minimal value by reinforcing the 'question' and 'repository' concepts, but nothing beyond the schema.

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 identifies a specific action ('Ask any question') on a specific resource ('a GitHub repository') and the expected outcome ('AI-powered, context-grounded response'). It is distinct from sibling tools (read_wiki_contents, read_wiki_structure), though it does not explicitly reference them.

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

Usage Guidelines3/5

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

The description implies usage when you need to ask a question about a repository, but it does not provide explicit guidance on when to prefer this tool over alternatives, nor does it mention any exclusions or prerequisites.

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

read_wiki_contentsC

View documentation about a GitHub repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNameYesGitHub repository in owner/repo format (e.g. "facebook/react").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits, but it only says 'View', implying a read-only operation. It does not disclose what content is viewed (e.g., wiki vs README), error behavior, or output format. The lack of detail leaves significant ambiguity for the agent.

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 a single concise sentence that is front-loaded with the verb. It is appropriately brief for a simple tool, though it could have included more specific terminology like 'wiki' to be more precise.

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

Completeness2/5

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

Given the tool name references 'wiki' but the description says 'documentation', there is ambiguity in the resource scope. The description does not clarify its relationship to sibling tools or mention any limitations, making it incomplete for reliable selection even though an output schema exists.

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

Parameters3/5

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

The input schema fully describes the sole parameter repoName with a clear example. The tool description adds no additional parameter semantics, so the baseline of 3 applies due to high schema coverage.

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 it 'View documentation about a GitHub repository', providing a specific verb and resource. However, it does not explicitly distinguish from sibling tools like read_wiki_structure, which likely reads the wiki structure rather than contents.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Sibling tool names suggest a wiki-specific context, but no explicit context or exclusions are given.

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

read_wiki_structureA

Get a list of documentation topics for a GitHub repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNameYesGitHub repository in owner/repo format (e.g. "facebook/react").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'Get a list' implies a read-only operation with no side effects, which is transparent, but it does not disclose any potential limitations, such as whether only top-level topics are returned or if the list is flat. It is adequate but minimal.

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 a single, clear sentence with no filler. It fully conveys the core purpose without redundancy.

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 (one parameter, output schema present), the description is nearly complete. It would benefit from a brief note about the output structure or when to use this versus sibling tools, but the essential information for selection and invocation is present.

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

Parameters3/5

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

Schema coverage is 100% with a clear description of repoName (owner/repo format). The tool description adds little beyond the schema, but the schema already provides sufficient meaning, so the baseline of 3 is appropriate.

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 a specific action ('Get a list') and resource ('documentation topics for a GitHub repository'). It distinguishes from sibling tools by focusing on structure/topics rather than content (read_wiki_contents) or Q&A (ask_question).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. Sibling tool names suggest related functions, but the description does not mention them or any specific context like 'use this to browse available wiki pages before reading content.'

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. 3 tool updatesv0.6.0
    • First observedask_question
    • First observedread_wiki_contents
    • First observedread_wiki_structure

TDQS

A3.6/5.0
Disambiguation5/5

Each tool serves a distinct purpose: ask_question provides AI-powered answers, read_wiki_contents retrieves full documentation, and read_wiki_structure lists available topics. There is no meaningful overlap between asking questions and reading wiki docs.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: ask_question, read_wiki_contents, read_wiki_structure. Naming is uniform and predictable.

Tool Count5/5

With only three tools, the server is tightly scoped to AI-powered repository Q&A and wiki access. This is well within the ideal range and each tool is essential to the core purpose.

Completeness4/5

The set covers the primary workflows: asking questions and reading wiki documentation. A minor gap is the lack of functionality beyond wiki content (e.g., general repository file browsing), but for the stated AI Q&A focus it is sufficient.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

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/jsklan/devin-api-mcp'

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