Adding a new MCP
Cascade MCP servers are added by editing the rawmcp_config.json file (see the mcp_config.json section below).
To open the file, click the ... (Actions) menu in the top right of the Cascade panel, then click the
Open MCP config file icon in the MCPs section. Add an entry for each server under mcpServers and save the file.
stdio, Streamable HTTP, and SSE.
Devin Desktop also supports OAuth for each transport type.
For http servers, the URL should reflect that of the endpoint and resemble https://<your-server-url>/mcp.
Configuring MCP tools
Each MCP has a certain number of tools it has access to. Cascade has a limit of 100 total tools that it has access to at any given time. The MCPs section of the Cascade panel’s... (Actions) menu lists your configured servers and how many tools each has enabled.
Use the toggle next to a server to enable or disable it.
To disable individual tools, list their names in the server’s disabledTools array in mcp_config.json:
mcp_config.json
Themcp_config.json file is a JSON file that contains a list of servers that Cascade can connect to. It is located at:
- macOS / Linux:
~/.config/devin/mcp_config.json(or$XDG_CONFIG_HOME/devin/mcp_config.jsonifXDG_CONFIG_HOMEis set) - Windows:
%APPDATA%\devin\mcp_config.json
Popular MCP Server Examples
Below are configuration examples for some commonly used MCP servers. These can be added to yourmcp_config.json file.
GitHub
Repository management, file operations, and GitHub API integration.
GitHub
Repository management, file operations, and GitHub API integration.
Slack
Channel management and messaging capabilities for Slack workspaces.
Slack
Channel management and messaging capabilities for Slack workspaces.
- Create a Slack App at api.slack.com/apps
- Add the required OAuth scopes (e.g.,
channels:read,chat:write,users:read) - Install the app to your workspace and copy the Bot User OAuth Token
PostgreSQL
Read-only database access with schema inspection capabilities.
PostgreSQL
Read-only database access with schema inspection capabilities.
Filesystem
Secure file operations with configurable access controls.
Filesystem
Secure file operations with configurable access controls.
Brave Search
Web and local search using Brave's Search API.
Brave Search
Web and local search using Brave's Search API.
Memory
Knowledge graph-based persistent memory system.
Memory
Knowledge graph-based persistent memory system.
Remote HTTP MCPs
It’s important to note that for remote HTTP MCPs, the configuration is slightly different and requires aserverUrl or url field.
Here’s an example configuration for an HTTP server:
Config Interpolation
Themcp_config.json file supports variable interpolation
in the following fields: command, args, env, serverUrl, url, and
headers. This lets you avoid hardcoding secrets directly in the config file.
Two interpolation patterns are supported:
${env:VAR_NAME}— replaced with the value of the environment variableVAR_NAME. If the variable is not set, it resolves to an empty string.${file:/path/to/file}— replaced with the trimmed contents of the file at the given path. Tilde paths (e.g.~/secrets/key.txt) are supported. If the file cannot be read, the pattern is left unchanged.
headers:
Admin Controls (Teams & Enterprises)
Team admins can toggle MCP access for their team, as well as allowlist approved MCP servers for their team to use:MCP Registry
Enterprise teams can configure custom MCP registries to replace the default Devin Desktop MCP marketplace used by the Devin Local agent. Teams can link their own registry URLs to control which MCPs are available to their users. Cascade has no marketplace, so registries do not change what Cascade users see; use the MCP Allowlist to restrict Cascade servers.Configuring Custom Registries
- Navigate to your team settings
- Find the MCP Registry URLs setting
- Add one or more registry URLs
MCP Allowlist
MCP Team Settings
mcp_config.json.How Server Matching Works
When you allowlist an MCP server, the system uses regex pattern matching with the following rules:- Full String Matching: All patterns are automatically anchored (wrapped with
^(?:pattern)$) to prevent partial matches - Command Field: Must match exactly or according to your regex pattern
- Arguments Array: Each argument is matched individually against its corresponding pattern
- Array Length: The number of arguments must match exactly between allowlist and user config
- Special Characters: Characters like
$,.,[,],(,)have special regex meaning and should be escaped with\if you want literal matching
Configuration Options
Option 1: Server ID Only (Recommended)
Leave the Server Config (JSON) field empty to allow any configuration that uses this server ID.
Option 1: Server ID Only (Recommended)
Leave the Server Config (JSON) field empty to allow any configuration that uses this server ID.
- Server ID:
github-mcp-server - Server Config (JSON): (leave empty)
mcp_config.json):Option 2: Exact Match Configuration
Provide the exact configuration that users must use. Users must match this configuration exactly.
Option 2: Exact Match Configuration
Provide the exact configuration that users must use. Users must match this configuration exactly.
- Server ID:
github-mcp-server - Server Config (JSON):
mcp_config.json):env section can have different values.Option 3: Flexible Regex Patterns
Use regex patterns to allow variations in user configurations while maintaining security controls.
Option 3: Flexible Regex Patterns
Use regex patterns to allow variations in user configurations while maintaining security controls.
- Server ID:
python-mcp-server - Server Config (JSON):
mcp_config.json):- The regex
/.*\\.pymatches any Python file path like/home/user/my_server.py - The regex
[0-9]+matches any numeric port like8080or3000 - Users can customize file paths and ports while admins ensure only Python scripts are executed
Common Regex Patterns
Notes
Admin Configuration Guidelines
- Environment Variables: The
envsection is not regex-matched and can be configured freely by users - Disabled Tools: The
disabledToolsarray is handled separately and not part of allowlist matching - Case Sensitivity: All matching is case-sensitive
- Error Handling: Invalid regex patterns will be logged and result in access denial
- Testing: Test your regex patterns carefully - overly restrictive patterns may block legitimate use cases
Troubleshooting
If users report that their MCP servers aren’t working after allowlisting:- Check Exact Matching: Ensure the allowlist pattern exactly matches the user’s configuration
- Verify Regex Escaping: Special characters may need escaping (e.g.,
\.for literal dots) - Review Logs: Invalid regex patterns are logged with warnings
- Test Patterns: Use a regex tester to verify your patterns work as expected

