Model Context Protocol Advanced Topics
← 所有课程
课程 04Model Context Protocol Advanced Topics

Roots

摘要音频

本节课没有语音摘要。

学习笔记

📚 学习笔记:根系统 (Root System)

一、 核心概念

  • 定义: 根系统(Roots)是一种规范化的方式,用于授予 MCP 服务器访问特定文件和文件夹的权限。
  • 目的: 限制服务器可以访问的文件范围,实现权限控制。
  • 主要优势:
  • 安全限制: 确保工具只能访问预先授权的特定区域。
  • 提高效率: 允许 AI(如 Claude)自主在授权的区域内搜索文件,无需用户提供复杂的完整路径。

二、 解决的问题

  • 问题: 当用户只提供文件名(例如 biking. mp4)时,AI 无法在用户庞大且复杂的本地文件系统中定位该文件。
  • 传统方案的缺陷: 要求用户必须提供完整的、限定的路径(例如 movies/biking. mp4),这不方便用户操作。

三、 运作机制与工具

为了解决上述问题,MCP 服务器需要引入以下工具:

  • list roots: 返回服务器被授权可以读取的文件或文件夹列表(即“根”)。
  • read directory: 列出特定目录下的所有文件和文件夹。
  • convert video: 执行实际操作的工具。

工作流程(示例):

  • 用户在启动服务器时,定义根目录(例如:desktop)。
  • AI 调用 list roots → 发现可访问的根目录。
  • AI 调用 read directory → 在根目录内发现目标文件(biking. mp4)。
  • AI 获得完整路径 → 调用 convert video 执行任务。

四、 关键实现要点(重要!)

  • 权限控制的责任: 根系统的概念是松散的。MCP SDK 不会自动限制访问。
  • 服务器的职责: 必须在 MCP 服务器端实现访问检查逻辑(例如 is path allowed 函数)。
  • 检查逻辑: 当任何工具尝试访问文件或文件夹时,服务器必须检查该路径是否包含在任何已定义的根目录之内。如果不在,则拒绝访问。
  • 替代方案: 不强制要求使用 list roots 工具,也可以将根目录列表手动放入提示词(prompt)中提供给 AI。

Takeaways

  • 根系统(Roots)是一种规范化授权方式,用于限制MCP服务器访问特定文件和文件夹的权限,实现安全控制。
  • 该机制解决了AI仅凭文件名无法定位文件的问题,提高了AI在授权区域内的搜索效率。
  • AI通过调用 list roots 和 read directory 等工具来发现并获取目标文件的完整路径。
  • 根系统概念是松散的,MCP SDK不会自动限制访问,服务器必须自行实现路径检查逻辑(如 is path allowed)。
抽认卡 8 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.