AgentFixFind a fix
MCPPartial workaroundUpdated Aug 20, 2026

MCP Filesystem rejects a Windows drive-letter case mismatch

Fix MCP Filesystem Access denied: path outside allowed directories when Windows drive-letter case or path normalization differs.

Exact error

Match the message before using the fix

Error: Access denied - path outside allowed directories: c:\Users\... not in C:\Users\...

Quick answer

Start here

Normalize both the configured allowed directory and the requested path to the same canonical Windows spelling—especially the drive-letter case—and restart the MCP server. Do not broaden the allowed root. Current Filesystem server code includes path normalization, so if the mismatch persists on a current package, check symlinks, resolved paths, and the client-supplied roots instead of assuming casing is the only cause.

Diagnosis

Why it happens

  • Older boundary checks could compare `c:` and `C:` as different strings even though Windows addresses the same drive.
  • Current implementations normalize paths, so an apparently similar error can instead come from a symlink, a different resolved root, or client-provided roots.

Safest first

Fixes, in order

01

Use one canonical drive-letter spelling

Applies when: Best match when the error differs only by `c:` versus `C:`

The original report found that matching uppercase drive letters partially avoided the rejection.

  1. Back up the MCP configuration.
  2. Use the same uppercase drive letter in the allowed directory and the client workspace path.
  3. Keep JSON backslashes correctly escaped.
  4. Restart the MCP server and client.
C:\Users\name\Documents

Expected: The requested file is recognized as inside the configured root.

02

Inspect the resolved path without widening access

Applies when: Use on current server versions or when casing already matches

A symlink or client root can resolve outside the permitted tree even if the visible path looks correct.

  1. Record the configured root and exact rejected path.
  2. Resolve symlinks/junctions and compare their real targets.
  3. Check which roots the client actually sent to the server.
  4. Allow only the narrow directory genuinely required.

Expected: The real requested path is inside the real allowed root, or the configuration clearly identifies why it is not.

Verification

Prove the fix worked

  1. Restart both the server and client.
  2. Read a harmless file inside the allowed root.
  3. Confirm a file outside the root is still rejected.

Escalation

If it still fails

  • Record the Filesystem server package version and client name.
  • Compare the canonical/resolved paths, not only the visible strings.
  • Do not set the allowed directory to an entire drive as a shortcut.

Scope

Environment and version notes

  • The original issue was closed as a duplicate and documents an older 2025 implementation.
  • Current server source contains explicit normalization, so this page does not claim the old casing workaround fixes every current release.
  • Sources rechecked August 20, 2026.

Evidence

Sources

Source labels describe the evidence available on the checked date. A closed issue is not automatically a shipped fix.

Check the configuration itself: validate your MCP configuration for JSON, command, args, env, npx, and Windows path risks. For a repeatable agent workflow, use the MCP debugging triage skill.