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.
The above link will only work if you have admin privileges 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
/.*\\.py
matches any Python file path like/home/user/my_server.py
- The regex
[0-9]+
matches any numeric port like8080
or3000
- 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
env
section is not regex-matched and can be configured freely by users - Disabled Tools: The
disabledTools
array 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