MCP Servers on Windows: Complete Setup Guide for Cursor IDE (2026)
Setting up MCP servers on Windows in Cursor IDE is different from Mac. This guide covers the mcp.json file location, path issues, Node.js config, and every common Windows-specific error.
MCP Server Setup on Windows for Cursor IDE (2026)
Most MCP setup guides are written for macOS. The steps look identical on the surface — but Windows has its own file paths, permission quirks, Node.js behaviors, and npx issues that cause silent failures that macOS users never encounter.
This guide is specifically for Windows users setting up MCP servers in Cursor IDE. If you've followed a generic MCP guide and it didn't work, this is the fix.
Where the mcp.json File Lives on Windows
On macOS, the MCP config is at ~/.cursor/mcp.json. On Windows, the equivalent path is:
C:\Users\\.cursor\mcp.json
If the .cursor folder doesn't exist yet, create it manually. The full path should be:
C:\Users\YourUsername\.cursor\mcp.json
Important: The dot prefix on .cursor can cause issues in Windows Explorer — Explorer hides folders starting with a dot by default. Use the address bar to navigate directly to %USERPROFILE%\.cursor\ or create the folder via command prompt:
mkdir %USERPROFILE%\.cursor
Basic mcp.json Template for Windows
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}
The structure is identical to macOS — but the execution environment is where Windows diverges.
Step 1: Install Node.js Correctly for Windows
MCP servers run via npx, which requires Node.js. The version matters.
1. Download Node.js 20 LTS from nodejs.org
2. Use the Windows Installer (.msi) — not the zip version
3. During installation, check "Automatically install the necessary tools"
4. After install, open a new Command Prompt (not PowerShell) and verify:
node --version
npx --version
Both should return version numbers. If they don't, Node.js isn't in your PATH.
Fixing PATH issues:
1. Search "Environment Variables" in Windows search
2. Click "Edit the system environment variables"
3. Under "System variables", find "Path" and edit it
4. Add: C:\Program Files\nodejs\
5. Restart Command Prompt and try again
Step 2: Handle the npx Execution Policy Issue
Windows PowerShell blocks script execution by default. If Cursor's MCP servers fail silently, this is often the cause.
Open PowerShell as Administrator and run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
This allows locally created scripts to run while still blocking unsigned remote scripts. After running this, restart Cursor completely.
Step 3: Use Full Paths When npx Doesn't Work
On Windows, Cursor sometimes can't find npx in PATH even when it works fine in your terminal. The fix is to use the full path to npx:
Find where npx is installed:
where npx
This will return something like:
C:\Program Files\nodejs\npx.cmd
Use that full path in your mcp.json:
{
"mcpServers": {
"github": {
"command": "C:\\Program Files\\nodejs\\npx.cmd",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}
Note the double backslashes — JSON requires backslashes to be escaped as \\. Using single backslashes will cause a JSON parse error.
Step 4: For Python-Based MCP Servers
Some MCP servers run via Python (uv or uvx) rather than Node.js. On Windows:
{
"mcpServers": {
"filesystem": {
"command": "uvx",
"args": ["mcp-server-filesystem", "C:\\Users\\YourUser\\Documents"]
}
}
}
Install uv for Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
After install, restart Cursor. Use forward slashes or double backslashes in directory paths within mcp.json.
Step 5: Running MCP Servers via WSL (Windows Subsystem for Linux)
If you're using WSL (Ubuntu/Debian) alongside Cursor on Windows, you can point Cursor's MCP config to WSL executables:
{
"mcpServers": {
"github": {
"command": "wsl",
"args": ["npx", "-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}
This runs the MCP server inside your WSL environment while Cursor on Windows connects to it. Works well if your dev tools are primarily WSL-based.
Common Windows-Specific Errors
"command not found: npx"
Cursor can't locate npx. Use the full path approach from Step 3.
"Error: spawn npx ENOENT"
Same root cause as above — ENOENT means the file wasn't found. Full path fix applies.
Server shows in config but no tools appear in Cursor
1. Check that your mcp.json is valid JSON (no trailing commas, proper escaping)
2. Open Cursor's Output panel → select "MCP" from dropdown
3. Look for startup errors — usually missing env variable or failed npx install
"Cannot find module" errors
The npx package hasn't downloaded yet. Run the command manually first:
npx -y @modelcontextprotocol/server-github
Let it download, then restart Cursor.
Cursor crashes when MCP server starts
Often caused by an MCP server trying to write to a path that doesn't exist on Windows. Check if the server requires a temp directory or cache path and create it manually.
"Access is denied" errors
Run Cursor as Administrator once to let it install the MCP server packages. After the first install, you can run as a normal user.
Verifying Your Setup Works
After configuring mcp.json and restarting Cursor:
1. Open Cursor settings (Ctrl + ,)
2. Search for "MCP"
3. You should see your configured servers listed with a green status indicator
Alternatively, open Cursor chat (Ctrl + L) and ask:
What MCP tools do you have available?
Cursor will list all active MCP tools. If the list is empty, the servers aren't loading — go back to the troubleshooting steps above.
Multiple MCP Servers on Windows
You can run as many servers as you need:
{
"mcpServers": {
"github": {
"command": "C:\\Program Files\\nodejs\\npx.cmd",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token"
}
},
"notion": {
"command": "C:\\Program Files\\nodejs\\npx.cmd",
"args": ["-y", "@modelcontextprotocol/server-notion"],
"env": {
"NOTION_API_TOKEN": "your_notion_token"
}
}
}
}
Each server runs as a separate process. Windows handles this fine — the main constraint is memory, not Windows-specific.
---