MCP 官方文档中文版
  1. 概念
MCP 官方文档中文版
  • 开始使用
    • 简介
    • 示例 Servers
    • 示例 Clients
    • 快速上手
      • 服务器开发
      • 客户端开发
      • Claude 桌面版开发
  • 教程
    • 使用 LLMs 构建 MCP
    • 调试 Debugging
    • 调试器 Inspector
  • 概念
    • 核心架构
    • 资源 Resources
    • 提示词 Prompts
    • 工具 Tools
    • 采样 Sampling
    • 根 Roots
    • 传输 Transports
  • 开发
    • 新计划
    • 规划
    • 贡献
  1. 概念

根 Roots

理解 MCP 中的根(Roots)
根是 MCP 中的一个概念,它定义了服务器可以运行的边界。 它们为客户端提供了一种告知服务器相关资源及其位置的方式。

什么是根?#

根是一个 URI,客户端建议服务器应该关注它。 当客户端连接到服务器时,它会声明服务器应该使用的根。 虽然主要用于文件系统路径,但根可以是任何有效的 URI,包括 HTTP URL。
例如,根可以是:
file:///home/user/projects/myapp
https://api.example.com/v1

为什么使用根?#

根有几个重要的用途:
1.
指导性 (Guidance):它们告知服务器关于相关的资源和位置
2.
清晰性 (Clarity):根可以明确哪些资源是工作区的一部分
3.
组织性 (Organization):多个根可以让你同时处理不同的资源

根的工作原理#

当客户端支持根时,它:
1.
在连接期间声明 roots 功能 (capability)
2.
向服务器提供建议的根列表
3.
在根发生更改时通知服务器(如果支持)
虽然根是信息性的,并非强制性的,但服务器应该:
1.
尊重提供的根
2.
使用根 URI 来定位和访问资源
3.
优先在根边界内进行操作

常见用例#

根通常用于定义:
项目目录
仓库位置
API 终端 (API endpoints)
配置位置
资源边界

最佳实践#

使用根时:
1.
只建议必要的资源
2.
使用清晰、描述性的根名称
3.
监控根的可访问性
4.
优雅地处理根更改

示例#

以下是典型的 MCP 客户端如何公开根:
{
  "roots": [
    {
      "uri": "file:///home/user/projects/frontend",
      "name": "Frontend Repository"
    },
    {
      "uri": "https://api.example.com/v1",
      "name": "API Endpoint"
    }
  ]
}
此配置建议服务器关注本地存储库和 API 终端,同时保持它们的逻辑分离。

扫码加入 Apifox MCP 内测群

MCP生态正在快速发展,我们正在与开发者们一起探索 AI 和 API 协作的未来。

扫码加入交流群
上一页
采样 Sampling
下一页
传输 Transports
Built with