Skip to content

filesystem: tool calls use the old allow-list while a roots refresh is pending #5101

Description

@cliffhall

Problem

In the filesystem server, tool calls wait for the initial roots load (#3204), and since #5097 for a refresh that overtakes it, but a normal runtime notifications/roots/list_changed does not hold them back. While its roots/list request is pending, tool calls are authorized against the previous allow-list, so a client that has announced that a root is gone can still have it read or modified until the answer arrives.

Reported by Copilot on the v1.0.0 merge PR #5090 (thread r4237017991). Follows #5094 and #5097.

Reproduce

  1. A Roots client exposes one root; list_directory on it succeeds.
  2. The client withdraws the root and sends notifications/roots/list_changed, but answers the server's roots/list slowly.
  3. A list_directory on the root sent during that wait succeeds against the old allow-list.

Expected

Every roots refresh is a barrier: a tool call that arrives while a refresh is pending waits for it (and for any newer one that overtakes it), then runs against the result. If the refresh fails, waiting calls proceed against the current allow-list, as today.

Activity

  1. added this to the v2.0.0 milestone on Oct 10, 2026
  2. added
    bugSomething isn't working
    server-filesystemReference implementation for the Filesystem MCP server - src/filesystem
    on Oct 10, 2026
  3. self-assigned this
    on Oct 10, 2026
  4. added a commit that references this issue on Oct 10, 2026
  5. cliffhall commented on Oct 10, 2026

    @cliffhall
    MemberAuthor

    Fixed on v2/main by #5102 and on the release branch v2/release/1.0.0 by #5103 (ships in v1.0.0).

  6. added 2 commits that reference this issue on Oct 11, 2026
    3f6aaf4
    9f3197e
  7. modified the milestones: v2.0.0, v1.0.0 on Oct 11, 2026
  8. added 2 commits that reference this issue on Oct 12, 2026
    92f9558
    5b400a6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingserver-filesystemReference implementation for the Filesystem MCP server - src/filesystemv2

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions