🧙 MCP中的资源故事
想象一下,你的人工智能代理就像一个好奇的研究人员📚.
- 在早期的MCP项目中,你的AI需要使用 工具 --比如“read_doc_contents”或“edit_document”——就像调用函数一样。
- 但有时,你不想让人工智能 *做* 什么东西。你只想说:
👉 *“显示此文档”* 👉 *“给我拿那个JSON文件”* 👉 *“给我读PDF”*
这就是 资源 进来。
资源就像 图书馆书架上的书 🏛️.
- 每本书都有 标签(URI) 所以你知道怎么找到它(
docs://plan.md或file:///project/src/main.rs). - 当人工智能想要一本书时,它不会“调用工具”——它只是说: *“获取此URI处的内容。”*
- 然后,MCP服务器移交数据,并用元数据很好地包裹起来,如
mime_type因此,AI知道它是文本、JSON还是二进制(如PDF)。
______________________________________________________________________
🛠 资源与工具有何不同
- 工具=行动 → “做点什么”(编辑、搜索、写作、处理)。
- 资源=数据 → “获取某些内容”(只读,如HTTP中的GET)。
将工具视为 动词 资源作为 名词.
- “编辑此文档”→ Tool
- “把医生给我”→ 资源
______________________________________________________________________
🗂️ 两种资源
- 直接资源
- 就像一本总是放在同一个书架上的书。 - 例子: docs://documents → 始终为您提供文档ID列表。
- 模板化资源
- 比如问图书管理员 *“关于{主题}的书”*. - 例子: docs://{doc_id} → 插入文档名称并获取其内容。
______________________________________________________________________
🔄 工作流(资源如何工作)
- 客户端发送 资源/列表 → MCP服务器用所有可用资源进行响应。
- 客户端发送 资源/读取 带有URI→ MCP服务器以内容进行响应。
- 人工智能获取数据,格式化数据,并将其用于推理(例如,总结PDF或重写文档)。
______________________________________________________________________
🧩 本项目的主要影响
- 做 数据访问标准化:AI不需要特殊的工具来获取文档。
- 让AI在环境中更智能:比如自动完成(
@doc)在CLI中可以直接获取内容。 - 非常适合 RAG(检索增强生成) → AI在回答之前检索信息。
______________________________________________________________________
✅ 所以这个README基本上是说:
- “让我们升级我们的MCP服务器,不仅提供 *工具* 而且 *资源* (就像一个迷你知识库)。”
- 您的MCP客户端现在将知道如何 列表 资源和 读 他们。
______________________________________________________________________
⚡ ### 快速类比记住:
*工具就像让厨师给你做一道菜🍳.* *资源就像走到冰箱前,自己抓食材🥦.*
______________________________________________________________________
