15 min read

Setting Up MCP in Windsurf: Complete Configuration Guide

Windsurf by Codeium is an AI-native IDE featuring the Cascade agent for agentic coding. This guide covers configuring MCP servers in Windsurf—from Plugin Store installation to manual configuration and enterprise deployment considerations.

MCP in Windsurf: Enhanced Context for IDEs

Key Takeaways

  • Windsurf uses ~/.codeium/windsurf/mcp_config.json for MCP configuration.
  • Install servers via the Plugin Store for one-click setup, or configure manually for custom servers.
  • Cascade supports up to 100 tools across all MCP servers combined.
  • Enterprise admins can whitelist approved MCP servers for team-wide deployment.

What is Windsurf?

Windsurf is an AI-native IDE built by Codeium, featuring their Cascade agent for agentic coding workflows. Unlike traditional AI assistants that only respond to prompts, Cascade can autonomously plan and execute multi-step coding tasks.

Windsurf combines the familiarity of VS Code with deep AI integration, offering features like Cascade for agentic coding, Supercomplete for intelligent code completion, and now MCP support for extending capabilities.

With MCP integration, Cascade can access external tools, databases, APIs, and services—making it significantly more capable for real-world development tasks.

MCP in Windsurf Overview

Windsurf's MCP implementation uses the same configuration format as Claude Desktop, making it easy to migrate existing configurations. Key characteristics:

  • Configuration file: ~/.codeium/windsurf/mcp_config.json
  • Format: JSON (same schema as Claude Desktop)
  • Tool limit: 100 tools maximum across all servers
  • Agent: Cascade automatically uses relevant tools

Installing via Plugin Store

The easiest way to add MCP servers is through Windsurf's Plugin Store:

  1. Open Windsurf and click the Cascade panel
  2. Click the hammer icon (tools) at the top
  3. Select “Configure MCP”
  4. Browse the Plugin Store for available servers
  5. Click “Install” on your desired server
  6. Fill in any required configuration (API keys, paths)
  7. Click “Save” and the server will start automatically

Popular Servers in Plugin Store

Filesystem

Files

Read, write, and manage files in specified directories

GitHub

Code

Interact with GitHub repositories, issues, and pull requests

PostgreSQL

Database

Query and manage PostgreSQL databases

Puppeteer

Automation

Browser automation and web scraping capabilities

Brave Search

Search

Web search integration for current information

Memory

Context

Persistent memory and context across sessions

Manual Configuration

For custom servers or advanced configuration, edit the config file directly:

Configuration File Location

BASH
# macOS / Linux# Windows# Windows# Windows# Windows# Windowsws
%USERPROFILE%\.codeium\windsurf\mcp_config.json

Basic Configuration Structure

JSON
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": {
        "ENV_VAR": "value"
      }
    }
  }
}

Tip

You can also access the config file via Windsurf: open the Cascade panel, click the hammer icon, then select “Open Raw Config” to edit the JSON directly in the editor.

Transport Types

Windsurf supports two transport methods for MCP servers:

TransportExecutionRequirementsDescription
stdioLocalcommand + argsLocal command-line servers managed by Windsurf. Best for single-user, local development.
HTTP/SSELocal/Remoteurl + headers (optional)Remote servers using Server-Sent Events for streaming. Supports OAuth authentication.

Configuration Fields

FieldRequiredDescriptionExample
commandYes (stdio)The executable to run the server"npx", "python", "node"
argsNoArguments passed to the command["-y", "@modelcontextprotocol/server-filesystem"]
envNoEnvironment variables for the server{"API_KEY": "your-key"}
urlYes (HTTP)URL for remote HTTP/SSE servers"https://api.example.com/mcp"
headersNoHTTP headers for authentication{"Authorization": "Bearer token"}

Configuration Examples

Filesystem Server

Allow Cascade to read and write files in specific directories:

JSON
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/projects",
        "/Users/username/documents"
      ]
    }
  }
}

GitHub Integration

Enable Cascade to work with GitHub repositories:

JSON
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

PostgreSQL Database

Connect Cascade to your PostgreSQL database:

JSON
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost:5432/mydb"
      }
    }
  }
}

Multiple Servers

Combine multiple MCP servers in a single configuration:

JSON
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your_brave_api_key"
      }
    }
  }
}

Using MCP Tools in Cascade

Once configured, MCP tools become available to Cascade automatically:

Viewing Available Tools

  1. Open the Cascade panel
  2. Click the hammer icon (tools)
  3. View all connected servers and their status
  4. Expand each server to see available tools

Tool Approval

By default, Cascade asks for approval before executing MCP tools. You can:

  • Approve once: Allow the tool for this specific call
  • Approve for session: Allow all uses during current session
  • Deny: Prevent the tool from running

Cascade Agentic Workflow

Cascade can chain multiple MCP tool calls together as part of complex tasks. For example, it might search GitHub for issues, read relevant code files, and update documentation—all in a single agentic workflow.

Enterprise Configuration

For enterprise deployments, Windsurf provides admin controls for MCP server management:

Admin Whitelisting

Enterprise administrators can configure approved MCP servers centrally:

  • Whitelist mode: Only allow approved MCP servers
  • Pre-configured servers: Push server configurations to all team members
  • Credential management: Inject API keys and tokens centrally

Enterprise Feature

MCP server whitelisting and central configuration is available on Windsurf Enterprise plans. Contact Codeium for details on enterprise deployment options.

Limitations

Be aware of these current limitations when using MCP with Windsurf:

100 Tool Limit

Cascade supports a maximum of 100 tools across all connected MCP servers. If you exceed this limit, some tools may not be available. Prioritise essential tools and disable unused servers.

Tools Only

Windsurf currently supports MCP Tools functionality. Resources and Prompts from MCP servers are not yet fully supported.

Global Configuration Only

MCP configuration is global to the user. Project-specific MCP configurations are not yet supported (unlike Cursor's .cursor/mcp.json).

Troubleshooting

Server shows as “disconnected”

  • • Check that the command exists and is in your PATH
  • • Verify required environment variables are set correctly
  • • Try running the command manually in terminal to see error output
  • • Restart Windsurf after config changes

Tools not appearing in Cascade

  • • Ensure the server is showing as “connected” in the tools panel
  • • Check if you've exceeded the 100 tool limit
  • • Verify JSON syntax in mcp_config.json is valid
  • • Try clicking “Refresh” in the MCP configuration panel

npx servers fail to start

  • • Ensure Node.js is installed and npx is available
  • • Try running npx -y package-name manually first
  • • Clear npm cache: npm cache clean --force
  • • Check for network/proxy issues blocking npm registry

Configuration file not found

  • • Create the directory: mkdir -p ~/.codeium/windsurf
  • • Create an empty config: echo '{"mcpServers":{}}' > ~/.codeium/windsurf/mcp_config.json
  • • Or use the Plugin Store to install a server, which creates the file automatically

Ready to Extend Cascade?

MCP extends Cascade by connecting it to your tools and services. Start with the Plugin Store for easy setup, then explore custom configurations as your workflow demands. With access to file systems, databases, APIs, and more, Cascade becomes a capable development partner.

Frequently Asked Questions

Windsurf stores MCP configuration at ~/.codeium/windsurf/mcp_config.json on macOS/Linux and %USERPROFILE%\.codeium\windsurf\mcp_config.json on Windows. You can also access it via Cascade panel > hammer icon > Open Raw Config.

The easiest way is through the Plugin Store: open the Cascade panel, click the hammer icon, select "Configure MCP", browse available servers, and click Install. For custom servers, edit the mcp_config.json file directly.

Windsurf supports a maximum of 100 tools across all connected MCP servers combined. If you exceed this limit, some tools may not be available. Prioritise essential tools and disable unused servers to stay within the limit.

Currently, Windsurf only supports global MCP configuration. Project-specific configurations (like Cursor's .cursor/mcp.json) are not yet supported. All MCP servers are available across all projects.

Check that the command exists and is in your PATH. Verify required environment variables are set correctly in the config. Try running the command manually in terminal to see error output. Restart Windsurf after making configuration changes.

References & Further Reading

Related Articles

Ayodele Ajayi

Principal Engineer based in Kent, UK. Specialising in security governance, cloud architecture, and platform engineering.