Why we don't install this one from the extension browser
Installing Windows MCP through Claude Desktop's built-in extension browser has consistently been unreliable — it appears to install but doesn't actually connect, or breaks after updates. The manual install below is the tested, working path. It takes a few more minutes but always works.
What you'll do, at a glance
- Open PowerShell and run three commands to install the plumbing
- Open Claude Desktop's config file (via Settings, not by hunting through folders)
- Paste in a small block of text
- Have a fresh Claude conversation clean it up for you
- Save and restart Claude Desktop
Step 1 — Open PowerShell
PowerShell is a command window built into Windows. You don't need to know anything about it — you'll just paste commands into it.
- Press the Windows key on your keyboard
- Type
powershell - Click Windows PowerShell in the search results
A dark blue window with a blinking cursor will open. That's PowerShell. Leave it open.
Step 2 — Run the three install commands
Copy this entire block:
winget install --id=astral-sh.uv -e --source winget --accept-package-agreements --accept-source-agreements
$env:Path = [Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [Environment]::GetEnvironmentVariable("Path","User")
uv python install 3.13Paste it into PowerShell by right-clicking inside the window (that's how paste works there — Ctrl+V doesn't). Then press Enter.
You'll see progress bars and messages scroll by. When PowerShell shows a fresh prompt again (a blinking cursor on a new line with your username), this step is done.
If you see red error messages, jump to the Troubleshooting section at the end of this document.
Worth doing now, not just if it breaks
Defender (or another antivirus) interfering with uv/uvx has now shown up on multiple machines — and it's not only a first-install problem. It can come back hours after a successful install, because the interference can invalidate the cache itself; the next install attempt then hits the same error again. If Windows MCP was working and later breaks with an install-time error, this is the most likely cause.
The durable fix, from an Administrator PowerShell:
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\uv"Doing this now, before you hit the problem, is better than waiting for it to break.
Step 3 — Open the Claude Desktop config file
Do not try to find this file in File Explorer yourself. The path is deeply hidden and different on every machine. Claude Desktop has a shortcut.
- In Claude Desktop, open Settings
- Click Developer in the sidebar
- Click Edit Config
A File Explorer window will pop up with a file named claude_desktop_config.json already highlighted.
Right-click that file → Open with → Notepad. If Notepad isn't shown, click Choose another app and pick it.
Notepad will open with the file's contents visible. It may be empty ({}) or already have some text.
Step 4 — Paste the Windows MCP block at the very top
Read this before pasting
Your config file may already have other things in it — other MCP servers, extensions, settings from Claude Desktop or other tools you've installed. Do not delete any of that. You're just adding to the top.
After you paste, the file will probably look broken — possibly two
mcpServerssections, missing commas, weird spacing. That's expected and it's fine. Step 5 (letting a fresh Claude conversation clean it up) is what fixes all of that.Do not try to fix the JSON syntax yourself. JSON is unforgiving — one wrong comma or bracket and Claude Desktop will crash-loop every time you launch it and none of your MCPs will connect. Just paste, then let Claude clean it up in the next step.
Copy this block:
"mcpServers": {
"windows-mcp-1": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
},
"windows-mcp-2": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
},
"windows-mcp-3": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
}
},Where to paste it: at the very top of the file, right after the opening { on the first line. Everything that was already in the file stays exactly where it was — just push it down.
After pasting, the top of your file should look roughly like this (the ... represents whatever was already in your file — leave that alone, do not type the dots yourself):
{
"mcpServers": {
"windows-mcp-1": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
},
"windows-mcp-2": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
},
"windows-mcp-3": {
"command": "uvx",
"args": ["windows-mcp==0.7.4"]
}
},
...
}If your file was empty or just had {} in it before, that's fine too — the "existing content" is simply nothing, and Step 5 will still work.
Why three instances? Claude Desktop's Cowork mode can run multiple actions in parallel. Three named instances (windows-mcp-1, -2, -3) let it use several at once for faster automation. One instance also works if you never plan to parallelize — three doesn't hurt.
Step 5 — Have a fresh Claude conversation clean it up
This is the most important step. If you skip it or try to fix the file by hand, Claude Desktop will almost certainly crash-loop on startup. JSON has no tolerance for typos — one misplaced comma is enough to break everything.
Do not attempt manual cleanup. Do this instead:
In Notepad, press Ctrl+A to select everything, then Ctrl+C to copy it
Open a new Claude conversation (start a fresh chat — don't use one where you've been working on something else, and don't use the same chat you may have used earlier)
Paste the content into the chat and type this message:
Check this for me — should be valid JSON, preserve all entries, don't reorder anything. Give it back to me in a copy block.
Claude will respond with a cleaned-up version inside a code block. Click the copy button at the top corner of that code block.
Back in Notepad, press Ctrl+A to select everything, then Ctrl+V to paste — this replaces the entire file with the clean version.
Press Ctrl+S to save. Close Notepad.
Claude will merge any duplicate mcpServers sections, fix commas, correct brackets, and preserve every entry that was already in your file. That's exactly what this step is for.
Step 6 — Restart Claude Desktop (fully)
Just closing the Claude window isn't enough — you have to quit it from the system tray.
- Look at the bottom-right corner of your screen, near the clock. You may need to click the small ^ arrow to reveal hidden icons.
- Find the Claude icon among the tray icons
- Right-click it and choose Quit (or Exit)
- Wait a few seconds
- Relaunch Claude Desktop from the Start menu
Step 7 — Verify it worked
Open a new chat in Claude Desktop. Look for the tools/MCP indicator — you should see windows-mcp-1, windows-mcp-2, and windows-mcp-3 in the list, all showing as connected.
Test it with a simple ask like:
Can you take a screenshot of my desktop?
If Claude does it, you're done for Windows MCP.
A second, equally good test — especially useful for confirming Filesystem MCP specifically, since the screenshot test above only proves Windows MCP is working — is to ask Claude to write a small file:
Can you write a test file to [a folder you approved] with today's date in it?
If Claude creates it and you can see it in that folder, both the write access and the approved-folder scope are confirmed working. Either test is fine on its own; running both once, the first time, is a good habit — they check different things.
If you've set up a Claude Project Assistant project with the Project Audit / Health Check feature installed, running a health check afterward is a good second confirmation — it reports connector status directly, rather than you needing to remember to test it yourself every time.
Combine Windows MCP with the Filesystem MCP from earlier and Claude can now read your files, edit them, and control your desktop.