The Problem: Global MCP Server Fails to Start in WSL
When configuring MCP servers globally in VS Code WSL environments, developers encounter:
spawn npm ENOENT spawn /usr/bin/node ENOENT Error: Unable to start MCP server globally
What is Global MCP Configuration?
Global MCP configuration allows MCP servers to be available across all VS Code workspaces without project-specific setup. This means:
- One configuration works for all projects
- No need to configure MCP per workspace
- Consistent server availability across different folders
- Team-wide standardized MCP setup
Root Cause in WSL Environments
WSL (Windows Subsystem for Linux) VS Code instances struggle with global MCP servers due to:
- PATH resolution issues in WSL context
- Incorrect global configuration location
- Environment variable access problems in cross-platform setups
The Global Configuration Solution
1. Global Configuration Location
For global MCP server access, place config here:
~/.vscode-server/data/User/mcp.json
This location ensures the MCP server is available globally across all VS Code workspaces in WSL.
2. Working Global Configuration
Use this proven global format:
{
"servers": {
"gitlab-mcp-server": {
"type": "stdio",
"command": "npm",
"args": [
"run",
"start",
"--prefix",
"/path/to/your/mcp_server/gitlab_mcp_server"
],
"env": {
"GITLAB_URL": "https://gitlab.com",
"GITLAB_API_URL": "https://gitlab.com/api/v4",
"GITLAB_TOKEN": "glpat-xxxxxx"
}
}
},
"inputs": []
}3. Global Implementation Steps
Create the global config directory:
mkdir -p ~/.vscode-server/data/User/
Add your global configuration:
cat > ~/.vscode-server/data/User/mcp.json << 'EOF'
{
"servers": {
"your-global-mcp-server": {
"type": "stdio",
"command": "npm",
"args": [
"run",
"start",
"--prefix",
"/home/username/your_mcp_server"
],
"env": {
"API_TOKEN": "your-token-here"
}
}
},
"inputs": []
}
EOFTest global access:
- Open any workspace in VS Code WSL
Ctrl+Shift+P→ “MCP: List Servers”- Your server should be available in every workspace
Global vs Local Configuration
| Configuration Type | Location | Scope |
|---|---|---|
| Global | mcp.json | All workspaces |
| Local | mcp.json | Single workspace only |
Why Global Configuration Works
| Element | Global Benefit |
|---|---|
npm command | Works consistently across all WSL workspaces |
--prefix flag | Absolute path works from any workspace location |
~/.vscode-server/data/User/ | VS Code’s global configuration directory |
env section | Environment variables available globally |
Global Multi-Server Example
Configure multiple servers globally:
{
"servers": {
"gitlab-global": {
"type": "stdio",
"command": "npm",
"args": ["run", "start", "--prefix", "/path/to/gitlab_mcp"],
"env": {"GITLAB_TOKEN": "token1"}
},
"jira-global": {
"type": "stdio",
"command": "npm",
"args": ["run", "start", "--prefix", "/path/to/jira_mcp"],
"env": {"JIRA_TOKEN": "token2"}
},
"company-api-global": {
"type": "stdio",
"command": "npm",
"args": ["run", "start", "--prefix", "/path/to/company_mcp"],
"env": {"API_KEY": "company-token"}
}
},
"inputs": []
}Global Configuration Troubleshooting
Global server not appearing in all workspaces?
Verify global config location:
ls -la ~/.vscode-server/data/User/mcp.json
Check VS Code is using WSL properly:
- Ensure you’re in WSL mode (bottom-left corner shows “WSL: Ubuntu” or similar)
- Restart VS Code completely
Test global availability:
# Test from any directory cd /tmp # Your MCP server should still be available in VS Code
Global Team Setup
Team global configuration template:
{
"servers": {
"team-global-mcp": {
"type": "stdio",
"command": "npm",
"args": [
"run",
"start",
"--prefix",
"/home/REPLACE_USERNAME/team_mcp_servers/global"
],
"env": {
"TEAM_API_URL": "https://api.company.com",
"TEAM_API_TOKEN": "REPLACE_WITH_PERSONAL_TOKEN"
}
}
},
"inputs": []
}Key Global Configuration Benefits
✅ Works across all workspaces: No per-project setup needed
✅ Team standardization: Same MCP servers for everyone
✅ Simplified maintenance: Update once, works everywhere
✅ WSL compatibility: Reliable in WSL environments
This global configuration approach eliminates MCP server startup errors and provides consistent access across all VS Code workspaces in WSL environments.