关于 Learning about MCP
Learning about MCP 是一个基于 Node 的 MCP 服务学习项目。README 介绍了 MCP 基础概念、传输方式和服务端错误处理,并注明采样与根目录功能尚待实现。
主要功能
- 01基于 Node 的服务实现
- 02介绍 stdio 与 SSE 传输
- 03说明 MCP 核心概念
- 04SDK 内置错误处理
适用场景
- 01学习 MCP 服务概念
- 02了解不同传输方式
- 03理解服务端工具错误处理
MCP 相关
这是一个用于学习 MCP 服务的项目,介绍资源、提示词、工具、采样、根目录以及 stdio 和 SSE 传输;采样和根目录仍列为待办事项。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
了解 MCP
TODO:
学习心得
-
有两种传输方式:
-
通过 stdio。在这里,你需要提供客户端可使用的服务端二进制文件路径。
-
通过 sse。在这里,你需要提供服务端的网络地址。
- 在我看来,这种传输方式似乎更通用。它允许服务端独立于客户端进行部署。
-
-
我_真的_很想用
fastify来构建服务端,但没能让它与现有的 SDK 配合工作。- 这是一个很好的机会,可以学习如何_仅_使用 Node 编写这样的服务端!
-
与 MCP 相关的核心原语包括:
-
资源——可以把它们看作数据(例如 PDF、数据库记录等),客户端可以用它们来组织内容,从而针对用户的查询生成恰当的回复。
-
提示词——可以把它们看作预定义的提示词,有时会出现在“prompt to x”工作流的文本框下方。
-
工具——它们允许大模型代表用户执行操作。由服务端调用工具,并将结果回复给客户端。客户端的工作是将结果传递给大模型。
-
采样——说实话,我还不确定它们是什么。
-
根目录——它们定义了服务端的“边界”。例如,如果服务端公开了一个操作文件系统的工具,你可以将特定目录添加到“根目录”中,这样工具的操作范围就只限于该目录。
-
传输——上文已经介绍过。传输方式包括 STDIO 和 SSE。至于消息,则通过 JSON-RPC 2.0 格式化。
-
-
我真的很喜欢 SDK 内置错误处理这一点。
- 我可以在服务端的
tool回调函数中抛出错误,客户端 SDK 会处理错误并作出相应响应。
- 我可以在服务端的
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。