Enterprise users must manually turn this on via settings
Adding a new MCP plugin
New MCP plugins can be added by going to theSettings > Tools > Windsurf Settings > Add Server section.
If you cannot find your desired MCP plugin, you can add it manually by clicking View Raw Config button and editing the raw mcp_config.json file.
When you click on an MCP server, simply click + Add Server to expose the server and its tools to Cascade.

stdio and http.
For http servers, the URL should reflect that of the endpoint and resemble https://<your-server-url>/mcp.
We can also support streamable HTTP transport and MCP Authentication.
Make sure to press the refresh button after you add a new MCP plugin.
mcp_config.json
The~/.codeium/mcp_config.json file is a JSON file that contains a list of servers that Cascade can connect to.
The JSON should follow the same schema as the config file for Claude Desktop.
Here’s an example configuration, which sets up a single server for GitHub:
serverUrl field.
Here’s an example configuration for an HTTP server:
For Figma Dev Mode MCP server, make sure you have updated to the latest Figma desktop app version to use the new
/mcp endpoint.Admin Controls (Teams & Enterprises)
Team admins can toggle MCP access for their team, as well as whitelist approved MCP servers for their team to use:MCP Team Settings
Configurable MCP settings for your team.
How Server Matching Works
When you whitelist 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 whitelist 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: Plugin Store Default (Recommended)
Leave the Server Config (JSON) field empty to allow the default configuration from the Windsurf MCP Plugin Store.
Option 1: Plugin Store Default (Recommended)
Leave the Server Config (JSON) field empty to allow the default configuration from the Windsurf MCP Plugin Store.
Admin Whitelist Configuration:Matching User Config (This allows users to install the GitHub MCP server with any valid configuration, as long as the server ID matches the plugin store entry.
- 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.
Admin Whitelist Configuration:Matching User Config (Users must use this exact configuration - any deviation in command or args will be blocked. The
- 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.
Admin Whitelist Configuration:Matching User Config (This example allows users flexibility while maintaining security:
- 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
| Pattern | Matches | Example |
|---|---|---|
.* | Any string | /home/user/script.py |
[0-9]+ | Any number | 8080, 3000 |
[a-zA-Z0-9_]+ | Alphanumeric + underscore | api_key_123 |
\\$HOME | Literal $HOME | $HOME (not expanded) |
\\.py | Literal .py | script.py |
\\[cli\\] | Literal [cli] | mcp[cli] |
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 whitelist 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 whitelisting:- Check Exact Matching: Ensure the whitelist 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