项目简介
该仓库是 Model Context Protocol (MCP) 工作坊的一部分,包含了用于学习如何构建 MCP 服务器的实验。其中 Lab 01 提供了一个基于 MCP TypeScript SDK 实现的简单 MCP 服务器示例,演示了如何定义工具和资源,并可通过 Stdio 传输协议与支持 MCP 的 LLM 客户端(如 Claude Desktop)进行通信。
主要功能点
该服务器示例实现了 MCP 的核心功能:
- 工具 (Tools):注册并提供两个可被 AI 模型调用的工具:
- 'hello': 一个简单的打招呼工具,可选择指定打招呼的对象。
- 'echo': 一个简单的回显工具,会将接收到的消息返回。
- 资源 (Resources):提供一个动态资源,可以通过 URI 模板访问:
- 'greeting://{name}': 根据 URI 中提供的名称,生成个性化的问候语。
- 协议支持:使用 Stdio 传输协议进行通信,适合通过命令行启动并与客户端交互。
安装步骤
该项目推荐使用 Docker 运行,以避免本地依赖问题。
- 克隆 GitHub 仓库到本地。
- 进入 Lab 01 目录:'cd mcp-workshop/lab01-hello-claude'
- 按照该目录下的 'README.md' 文件中的详细说明构建 Docker 镜像并运行服务器。
服务器配置 (供 MCP 客户端参考)
要让支持 MCP 的客户端连接到此服务器,客户端需要知道如何启动该服务器进程。对于使用 Stdio 传输的 MCP 服务器,客户端通常需要配置启动服务器的命令及其参数。
客户端配置通常是一个 JSON 对象,其中会包含:
- 'name': 服务器的名称,此示例为 '"Hello Claude"'。
- 'command': 一个字符串数组,表示用于启动服务器的可执行命令及其参数。例如,如果服务器脚本是 '/app/index.js' 且使用 Node.js 运行,配置可能是 '["node", "/app/index.js"]' 或如果使用 Docker 运行,可能是 '["docker", "run", "--rm", "your-mcp-image-name"]'。具体命令请参考 Lab 01 的 'README.md'。
- 'args': (可选)传递给 'command' 的额外参数列表。
- 'transport': 使用的传输协议,此示例为 '"stdio"'。
请参考您使用的 MCP 客户端的文档,了解如何添加或配置一个新的 MCP 服务器连接。
基本使用方法
一旦服务器启动并成功连接到支持 MCP 的 LLM 客户端(如配置了该服务器的 Claude Desktop),您就可以在与 AI 模型交互时使用服务器提供的功能:
- 使用工具: 在与 AI 模型对话时,可以尝试让模型调用工具。例如,请求模型执行 'hello' 工具或 'echo' 工具并提供参数。
- 访问资源: 您也可以通过 URI 格式请 AI 模型访问特定资源,例如 'greeting://Alice' 来获取对 Alice 的问候。
具体的交互方式取决于您使用的 LLM 客户端界面。
信息
分类
AI与计算