-
Notifications
You must be signed in to change notification settings - Fork 2
feat(mcp): implement MCP Roots protocol — roots/list + roots/list_changed for session-scoped filesystem boundaries #2445
Copy link
Copy link
Closed
Labels
P2High value, medium complexityHigh value, medium complexityenhancementNew feature or requestNew feature or request
Description
Gap Source
Goose v1.28.0 (March 18, 2026) added MCP Roots protocol support. Competitive parity scan CI-307.
What Is Missing
MCP Roots is a standard MCP protocol capability. Root-aware MCP servers can:
- Query
roots/listto discover which filesystem directories the session is scoped to - Receive
roots/list_changednotifications when the working directory changes
Zeph's MCP client passes no roots; MCP servers implicitly use the process cwd.
Why It Matters
Root-aware MCP servers (code indexing, file editing, search) need to know which directory trees they can legally access. Without this:
- Multi-project setups get the wrong cwd
- MCP servers require out-of-band configuration workarounds
- Protocol non-conformance visible to server implementations that check for roots
Implementation Sketch
- Add
rootsfield toMcpServerConfig(list of{uri, name}pairs) - Respond to
roots/listrequests from MCP servers with configured roots - Emit
roots/list_changednotification when session cwd changes (e.g., after index re-scan) - MCP spec section: https://spec.modelcontextprotocol.io/specification/client/roots/
Priority
P2 — protocol conformance gap, visible to users with multi-project setups or root-aware MCP servers.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P2High value, medium complexityHigh value, medium complexityenhancementNew feature or requestNew feature or request