Multi-Client MCP Server Installation & Setup Matrix
Complete step-by-step master reference for installing, configuring, and verifying Model Context Protocol servers across Claude Desktop, Cursor IDE, VS Code (Cline / Roo Code), Windsurf, and Zed Editor.
#1. Multi-Client Configuration Overview
Model Context Protocol servers are installed by adding server definitions to your AI client's configuration file. While file paths and configuration keys differ slightly across client applications, all MCP clients follow an identical standard syntax model.
Each server entry requires a unique identifier key, a launch command (e.g. npx, uvx, docker, or a local compiled binary path), an array of command-line args, and an optional env key-value dictionary for passing authentication keys and database credentials.
The unified architecture ensures that a single MCP server package—whether authored in TypeScript, Python, or Go—can be registered across Claude Desktop, Cursor IDE, Windsurf, VS Code, and Zed without rewriting server logic.
#2. Cross-Client Architecture & Stdio Process Lifecycle
Across all major developer environments, the host client acts as the supervisor process. It manages subprocess lifecycle, redirects standard streams, parses JSON-RPC 2.0 envelopes, and surfaces available tools to the user prompt interface.
The following architectural diagram illustrates how different AI developer environments interface with child MCP servers through isolated stdio streams:
+--------------------------------------------------------------------+
| Multi-Client MCP Host Orchestration Layer |
+--------------------------------------------------------------------+
| Claude Desktop Cursor IDE VS Code (Cline/Roo) |
| ~/Library/Application .cursor/mcp.json cline_mcp_ |
| Support/Claude/... settings.json |
+--------------------------------------------------------------------+
| | |
+-------------------------+--------------------+
|
(Child Process Execution)
v
+--------------------------------------------------------------------+
| Workstation Stdio Isolation Boundary |
| |
| Node.js Subprocess Python UVX Subprocess Docker Sandbox |
| @modelcontextprotocol/ mcp-server-sqlite docker run -i |
| server-postgres postgres:... |
+--------------------------------------------------------------------+
|
v
[ Local Databases, APIs & Filesystems ]#3. Claude Desktop Setup Matrix (macOS & Windows)
Claude Desktop loads its MCP configuration file once during application startup. To configure an MCP server in Claude Desktop:
1. Locate your configuration file based on your operating system:
• macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
• Windows: %APPDATA%\Claude\claude_desktop_config.json (C:\Users\<User>\AppData\Roaming\Claude\claude_desktop_config.json)
2. Open the file in your code editor and declare your server entries under the mcpServers key.
3. Save the file and restart Claude Desktop completely to load the new tools.
After modifying claude_desktop_config.json, you must fully restart Claude Desktop for new tools to load in the hammer icon menu.
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_github_token_here"
}
},
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}#4. Cursor IDE Setup (Workspace vs Global Configuration)
Cursor IDE features native integration with Model Context Protocol. Cursor supports both global user configurations and project-specific workspace configurations:
• Workspace Setup: Create a .cursor/mcp.json file in the root directory of your repository. This configuration is automatically loaded whenever you or your teammates open the repository in Cursor, enabling shared team toolsets.
• Global Setup: Open Cursor Settings -> Features -> MCP Servers -> Click 'Add New MCP Server'. Select stdio command transport, enter a descriptive server name, and provide your command line arguments.
{
"mcpServers": {
"filesystem-tools": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"./"
]
},
"postgres-db": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:pass@localhost:5432/app_dev"
]
}
}
}#5. VS Code (Cline & Roo Code) & Windsurf Editor Setup
For developers using Visual Studio Code, autonomous coding extensions like Cline and Roo Code provide native MCP tool orchestration loops:
1. Open the Cline or Roo Code extension panel in VS Code.
2. Click the MCP Servers (server stack) icon in the top header to open the MCP settings view.
3. Click 'Edit MCP Settings' to open cline_mcp_settings.json, paste your server configuration, and save.
For Codeium Windsurf IDE, configurations are maintained under ~/.codeium/windsurf/mcp_config.json following the standard mcpServers schema format.
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://postgres:<password>@db.xyz.supabase.co:5432/postgres"
]
}
}
}#6. Windows Path Resolution & Shell Quoting Gotchas
Configuring MCP servers on Windows requires special attention to executable path resolution and escaping backslashes:
• Double Backslashes: In JSON strings, Windows backslashes must be escaped with a double backslash (e.g. "C:\\Users\\developer\\data.db"), or alternatively formatted using forward slashes ("C:/Users/developer/data.db"), which Node.js and Python support natively.
• Command Wrappers: If npx or uvx cannot be resolved directly because they exist as .cmd or .ps1 batch wrappers, specify the absolute path to npx.cmd (e.g., "C:\\Program Files\\nodejs\\npx.cmd") or invoke via cmd.exe /c.
• Spaces in Paths: Always quote paths that contain directory spaces such as "C:\\Program Files\\..." to prevent argument tokenization errors.
#Frequently Asked Questions
A red error badge indicates the stdio subprocess failed to start. Common causes include Node.js/npx not being in your system PATH, missing required environment variables, or port conflicts.