modelcontextprotocol / modelcontextprotocol/servers

filesystem: Windows path rejected when request casing matches neither the configured nor on-disk spelling

Open
#470 6 comments 13 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug server-filesystem
Dominant language
TypeScript
Stars
90.5k
Forks
11.7k
Avg merge
2d 2h
Merged PRs (30d)
5

Description

When using a local version of the filesystem server on Windows I am getting access denied for paths that are allowed directories on Windows. I was moving to this to get off of my own fork sine a prior PR was merged but it is not in release.

To Reproduce
Steps to reproduce the behavior:

  1. Setup some allowed directories on Windows
  2. Try and access file with them using a local build of filesystem server

Logs
There are no errors in the logs.

Additional context
Here is an example output of read_file showing the issue.

{
  `path`: `C:\\source\\servers\\src\\fetch\\README.md`
}
Error: Access denied - path outside allowed directories: C:\source\servers\src\fetch\README.md not in c:\source, C:\Users\mgoodner

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Windows filesystem-server access check with the example path and allowed directories from the issue. Trace the allowed-directory validation and its path-casing behavior; done means an allowed Windows path is accepted when its request casing matches neither the configured nor on-disk spelling, with the existing access-denied behavior preserved for paths outside the allowlist.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.