How It Works
1
Configure a server
You define an MCP server in your config file with a command, arguments, and optional environment variables.
2
Server launches
Devin CLI starts the server process when needed. The server connects to the external API (GitHub, Linear, etc.).
3
Tool discovery
The agent discovers what tools the server provides (e.g.,
create_issue, list_repos).4
Tool execution
When the agent calls an MCP tool, the request flows through the server to the external service and the result is returned.
Quick Example
Add a GitHub MCP server to your project:Permission Control
Once configured, MCP tools appear with a namespaced format:mcp__<server>__<tool>. For example, a “github” server with a “create_issue” tool becomes mcp__github__create_issue.
MCP tools are subject to the same permission system as built-in tools. You can control access at multiple levels:
Prompts as Slash Commands
Beyond tools, an MCP server can publish prompts — reusable, parameterized instructions declared through the MCPprompts capability. Devin CLI exposes each one as a slash command:
linear server that publishes a bug_report prompt becomes /mcp__linear__bug_report. Prompt commands are listed in the command palette under their own MCP category, described with the title or description the server publishes, and annotated with an argument hint built from the prompt’s declared parameters — <name> for required arguments and [name] for optional ones.
When you send the command, Devin CLI fetches the prompt from the server and substitutes the messages it returns as your message for that turn.
How arguments map
Whatever you type after the command name is mapped positionally onto the prompt’s declared arguments — first word to the first argument, second word to the second, and so on. The last declared argument receives all of the remaining text, so free-form trailing input survives intact:ENG-1234 fills the first declared argument and the rest of the line fills the last one. If the prompt declares no arguments at all, anything you type is appended to the expanded prompt rather than dropped.
Only servers that have already connected contribute advertised commands (connections are warmed in the background at startup), but invocation resolves lazily — typing
/mcp__<server>__<prompt> works even when the command was never advertised, connecting to the server on demand.Authentication
Some remote MCP servers (such as Atlassian, Notion, and Linear) require OAuth authentication. Each MCP client authenticates independently — tokens from Windsurf or Claude Code are not shared with Devin CLI. After adding a remote server, authenticate with:devin mcp logout followed by devin mcp login — see MCP Configuration — Authentication and Re-authenticating for details.
Disabling Servers
You can temporarily disable an MCP server without removing its configuration or credentials:Next Steps
Configuration
Learn how to configure MCP servers in detail
Permissions
Control which MCP tools the agent can use

