项目简介
本仓库 'mcp-servers' 收集了多个使用 Model Context Protocol (MCP) 协议构建的服务器示例。这些示例服务器展示了 MCP 服务器的核心功能,包括注册和执行工具 (Tools),以及通过标准化的 JSON-RPC 接口与 MCP 客户端进行通信。仓库旨在帮助开发者理解和实践 MCP 服务器的开发,并为构建各种 LLM 应用的后端服务提供参考。
主要功能点
- 工具 (Tools) 示例: 仓库包含了多个功能各异的服务器示例,如:
- 计算器服务器: 提供基本的算术运算工具(加、减、乘、除)。
- SSE 计算器服务器: 计算器服务器的增强版,使用 Server-Sent Events (SSE) 实现实时通信。
- 天气服务器: 提供获取天气信息的工具,例如查询州的天气警报和特定地点的天气预报。
- 文件管理器服务器: 提供全面的文件系统操作工具,包括目录列表、文件读写、删除、移动、元数据获取和文件搜索等功能。(资源 (Resources) 的概念在此服务器中通过 FileSystemResource 类得到体现,虽然没有显式注册为 MCP 资源,但它承担了资源管理的角色)
- 多种传输协议: 示例展示了如何使用 Stdio 和 SSE 两种传输协议与 MCP 客户端通信。
- 输入验证: 使用 Zod 库进行工具参数的输入验证,保证数据安全性和可靠性。
- 易于扩展: 仓库结构清晰,易于理解和扩展,开发者可以参考示例添加新的 MCP 服务器和工具。
安装步骤
-
克隆仓库
git clone https://github.com/im2nguyen/mcp-servers.git cd mcp-servers -
选择服务器示例并进入目录 例如,要使用 'mcp-calculator-server',请进入其目录:
cd mcp-calculator-server其他服务器示例目录包括:'mcp-calculator-sse-server', 'mcp-weather-server', 'mcp-file-manager-server'。
-
安装依赖 在选定的服务器示例目录下运行:
npm install -
构建 (部分服务器) 对于 TypeScript 编写的服务器(如 'mcp-weather-server' 和 'mcp-file-manager-server'),需要先构建:
npm run buildJavaScript 编写的服务器(如 'mcp-calculator-server' 和 'mcp-calculator-sse-server')则不需要此步骤。
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接到 MCP 服务器。以下是各个示例服务器的配置信息,客户端需要根据实际使用的服务器选择相应的配置:
1. 计算器服务器 (mcp-calculator-server)
{ "serverName": "Calculator Server", "command": "node", "args": ["index.js"], "cwd": "./mcp-calculator-server" }
- 'serverName': 服务器名称,用于客户端识别。
- 'command': 启动服务器的命令,这里使用 'node' 运行 JavaScript 文件。
- 'args': 命令参数,指定要运行的 JavaScript 文件 'index.js'。
- 'cwd': 工作目录,指定在 'mcp-calculator-server' 目录下执行命令。
2. SSE 计算器服务器 (mcp-calculator-sse-server)
{ "serverName": "Calculator Server", "command": "node", "args": ["index.js"], "cwd": "./mcp-calculator-sse-server" }
配置与普通计算器服务器类似,但此服务器使用 SSE 协议,客户端需要支持 SSE 连接。
3. 天气服务器 (mcp-weather-server)
{ "serverName": "weather", "command": "node", "args": ["dist/index.js"], "cwd": "./mcp-weather-server" }
- 'args': 指向构建后的 JavaScript 文件 'dist/index.js'。
- 'cwd': 工作目录为 'mcp-weather-server'。
4. 文件管理器服务器 (mcp-file-manager-server)
{ "serverName": "File Manager Server", "command": "node", "args": ["dist/index.js"], "cwd": "./mcp-file-manager-server" }
- 'args': 指向构建后的 JavaScript 文件 'dist/index.js'。
- 'cwd': 工作目录为 'mcp-file-manager-server'。
注意: 'command' 和 'args' 需要根据客户端的具体环境进行调整,例如 Node.js 的安装路径等。 'cwd' 确保命令在正确的服务器目录下执行。
基本使用方法
-
启动服务器 在选定的服务器示例目录下运行:
npm start服务器成功启动后,会在控制台输出运行信息,例如计算器服务器会输出 'Calculator MCP server running on stdio'。 SSE 服务器会输出 'Calculator MCP server running on http://localhost:3000'。
-
配置 MCP 客户端 根据上述 "服务器配置" 部分的信息,配置您的 MCP 客户端,使其能够连接到启动的 MCP 服务器。
-
使用 MCP 客户端与服务器交互 通过 MCP 客户端,您可以调用服务器提供的工具 (Tools) 来执行相应的操作。例如,对于计算器服务器,您可以调用 'add', 'subtract', 'multiply', 'divide' 等工具进行计算。对于文件管理器服务器,您可以调用 'list-directory', 'read-file', 'write-file' 等工具进行文件系统操作。 具体工具的使用方法和参数请参考每个服务器示例的代码和 'README.md' 文件。
例如,使用 MCP 客户端调用计算器服务器的 'add' 工具:
客户端发送 MCP 请求 (JSON-RPC 格式) 到服务器,请求调用 'add' 工具并传入参数 'a' 和 'b'。服务器执行加法运算后,将结果作为 MCP 响应返回给客户端。 客户端根据响应内容进行后续处理。
注意: 本仓库仅提供服务器示例,不包含 MCP 客户端实现。您需要使用兼容 MCP 协议的客户端才能与这些服务器进行交互。
信息
分类
开发者工具