根路径是 MCP 中的一个概念,用于定义服务器的操作边界。它们为客户端提供了一种方式,以告知服务器相关资源及其位置。

什么是根路径?

根路径是客户端建议服务器关注的 URI。当客户端连接到服务器时,它会声明服务器应处理的根路径。虽然根路径主要用于文件系统路径,但它们可以是任何有效的 URI,包括 HTTP URL。

例如,根路径可以是:

file:///home/user/projects/myapp
https://api.example.com/v1

为什么使用根路径?

根路径具有以下几个重要作用:

  1. 引导:它们告知服务器相关的资源和位置
  2. 清晰性:根路径明确哪些资源属于您的工作空间
  3. 组织性:多个根路径允许您同时处理不同的资源

根路径的工作原理

当客户端支持根路径时,它会:

  1. 在连接时声明 roots 能力
  2. 向服务器提供建议的根路径列表
  3. 在根路径变更时通知服务器(如果支持)

虽然根路径是信息性的,不强制执行,但服务器应:

  1. 尊重提供的根路径
  2. 使用根路径 URI 定位和访问资源
  3. 优先在根路径边界内执行操作

常见用例

根路径常用于定义:

  • 项目目录
  • 仓库位置
  • API 端点
  • 配置位置
  • 资源边界

最佳实践

处理根路径时:

  1. 仅建议必要的资源
  2. 为根路径使用清晰、描述性的名称
  3. 监控根路径的可访问性
  4. 优雅处理根路径变更

示例

以下是一个典型的 MCP 客户端暴露根路径的示例:

{
  "roots": [
    {
      "uri": "file:///home/user/projects/frontend",
      "name": "前端仓库"
    },
    {
      "uri": "https://api.example.com/v1",
      "name": "API 端点"
    }
  ]
}

此配置建议服务器同时关注本地仓库和 API 端点,并保持它们的逻辑分离。