Skip to content

Allow roots other than file:// #505

Description

@noctonic

Is your feature request related to a problem? Please describe.

The current spec says that roots MUST be a file:// URI.
Consider an MCP server that can summarize a confluence page. The client could set a root to be an internal confluence instance ( or even a specific folder or page ) with:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "roots": [
      {
        "uri": "https://docs.mycompany.internal",
        "name": "My Internal Confluence"
      }
    ]
  }
}

This could potentially remove a configuration step when setting up a shared / network MCP server and allow the client to easily change the boundaries of where the MCP server is working.

This is currently not allowed by the spec.

Describe the solution you'd like

Replace This MUST be a file://
with This MUST be a valid [URI](https://datatracker.ietf.org/doc/html/rfc3986)

Minor language adjustments like changing
within the filesystem to within the system

Describe alternatives you've considered

One option is to abuse the feature by adding the desired uri directly after file://
Example: file://https://docs.mycompany.internal
This is an ugly workaround.

Additional context

Forcing the use of file:// arbitrarily limits the utility of roots and ultimately reduces the likelihood that hosts will adopt and support all MCP client and server capabilities.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions