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
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.
- Back up the MCP configuration.
- Use the same uppercase drive letter in the allowed directory and the client workspace path.
- Keep JSON backslashes correctly escaped.
- Restart the MCP server and client.
C:\Users\name\DocumentsExpected: The requested file is recognized as inside the configured root.
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.
- Record the configured root and exact rejected path.
- Resolve symlinks/junctions and compare their real targets.
- Check which roots the client actually sent to the server.
- 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
- Restart both the server and client.
- Read a harmless file inside the allowed root.
- 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.