使用说明
项目简介
MyMCP 是一个基于 Node.js 构建的 Model Context Protocol (MCP) 服务器实现。它遵循 MCP 协议标准,旨在简化大型语言模型 (LLM) 与外部数据源和工具的连接。通过 MyMCP,您可以安全地管理和提供上下文信息,构建更强大的 LLM 应用。
主要功能点
- 资源管理 (Resources): 支持托管和管理各种类型的数据资源,例如示例中的 'greeting' 和 'info' 资源,允许客户端通过 URI 访问这些资源。
- 工具注册与执行 (Tools): 允许注册和执行外部功能,例如示例中的 'hello', 'echo', 'add' 工具,使 LLM 能够调用这些工具来执行特定任务。
- Prompt模板 (Prompts): 支持定义和使用 Prompt 模板,例如示例中的 'question' 模板,允许根据客户端请求动态生成 Prompt,定制 LLM 交互模式。
- 多种传输协议: 支持 Stdio 和 SSE (Server-Sent Events) 两种传输协议,满足不同场景的需求。Stdio 适用于本地开发和调试,SSE 适用于网络环境和多客户端连接。
- 易于扩展: 基于 MCP TypeScript SDK 构建,方便开发者扩展功能,例如添加自定义资源、工具和 Prompt 模板。
- 集成 MCP Inspector: 支持与 MCP Inspector 工具集成,方便开发者进行测试和调试。
安装步骤
-
克隆仓库
git clone https://github.com/SilenceRichard/MyMCP.git cd MyMCP -
安装依赖 确保已安装 Node.js (>= 16.0) 和 npm。
npm install -
构建项目
npm run build
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接到 MyMCP 服务器。以下是针对 Stdio 和 SSE 两种服务器的配置示例 (JSON 格式):
1. Stdio 服务器配置 适用于本地开发和调试,通过标准输入/输出流与客户端通信。
{ "serverName": "MyMCP-Stdio", "command": "./build/index.js", "args": [], "transport": "stdio", "description": "MyMCP服务器 (Stdio 传输)" }
- 'serverName': 服务器名称,自定义,用于在客户端中标识。
- 'command': 服务器启动命令,指向编译后的 'index.js' 文件。
- 'args': 启动参数,当前示例无需参数,故为空数组。
- 'transport': 传输协议,设置为 'stdio' 表示使用 Stdio 传输。
- 'description': 服务器描述信息,可选。
2. SSE 服务器配置 适用于网络环境,支持多客户端连接,通过 HTTP SSE 协议通信。
{ "serverName": "MyMCP-SSE", "command": "./build/sse-server.js", "args": [], "transport": "sse", "baseUrl": "http://localhost:3000", "ssePath": "/sse", "messagesPath": "/messages", "description": "MyMCP服务器 (SSE 传输)", "authentication": { "type": "bearer", "token": "your-secret-token" // 可选,如果 SSE 服务器启动时指定了 token } }
- 'serverName': 服务器名称,自定义,用于在客户端中标识。
- 'command': 服务器启动命令,指向编译后的 'sse-server.js' 文件。
- 'args': 启动参数,可以用于配置端口和 token,例如 '["--port=8080", "--token=your-token"]'。
- 'transport': 传输协议,设置为 'sse' 表示使用 SSE 传输。
- 'baseUrl': SSE 服务器的基础 URL,默认为 'http://localhost:3000'。
- 'ssePath': SSE 连接路径,默认为 '/sse'。
- 'messagesPath': 消息接收路径,默认为 '/messages'。
- 'description': 服务器描述信息,可选。
- 'authentication': 认证配置(可选),如果 SSE 服务器启用了认证,需要配置。
- 'type': 认证类型,例如 'bearer' 表示 Bearer Token 认证。
- 'token': Bearer Token 值,需要与 SSE 服务器启动时设置的 token 一致。
注意: SSE 服务器的端口和 token 也可以通过启动参数配置,例如:'node build/sse-server.js --port=8080 --token=your-secret-token'。 客户端配置的 'args' 字段需要与服务器启动命令的参数保持一致。
基本使用方法
-
启动服务器
- Stdio 服务器: 在项目根目录下,运行 'npm start' 命令启动 Stdio 服务器。
- SSE 服务器: 运行 'npm run start:sse' 命令启动 SSE 服务器 (默认端口 3000,无认证),或使用 'npm run start:sse:auth' 或自定义命令启动带认证的 SSE 服务器。
-
连接 MCP 客户端 配置 MCP 客户端,例如 Claude Desktop 或 MCP Inspector,根据选择的服务器类型 (Stdio 或 SSE) 填入相应的服务器配置信息。
-
测试功能 连接成功后,客户端应该能够访问 MyMCP 服务器提供的资源、工具和 Prompt 模板。可以使用 MCP Inspector 或其他 MCP 客户端工具进行测试,例如:
- 调用 'hello' 工具,输入 'name' 参数。
- 访问 'greeting://yourname' 资源。
- 使用 'question' Prompt 模板,输入 'topic' 和 'difficulty' 参数。
-
调试 (使用 MCP Inspector)
- 运行 'npm run inspector' 命令启动 MCP Inspector,它会自动连接到 Stdio 服务器。
- 对于 SSE 服务器,需要在 MCP Inspector UI 中手动配置 SSE 服务器的 URL 和认证信息进行连接。
信息
分类
AI与计算