使用说明
项目简介
'mcp-server' 是一个对 Model Context Protocol (MCP) 服务器进行了简化的封装库,它基于官方 MCP SDK 构建,旨在帮助开发者更快速、便捷地搭建 MCP 服务器。该项目通过提供更高层次的抽象,简化了工具注册和服务器启动流程,让开发者可以专注于实现工具的具体逻辑,而无需深入了解 MCP 协议的底层细节。
主要功能点
- 简化 MCP 服务器开发: 提供了 'MCPServer' 类,通过简单的 API 即可创建和运行 MCP 服务器。
- 工具注册: 允许开发者注册自定义工具,并由服务器统一管理。
- 工具执行: 接收 MCP 客户端的工具调用请求,并执行相应的工具。
- 基于官方 MCP SDK: 底层完全兼容 MCP 协议,保证了与 MCP 客户端的互操作性。
- 支持 Stdio 传输: 默认使用 Stdio (标准输入输出) 作为传输协议,方便本地测试和部署。
安装步骤
-
创建项目目录并初始化:
mkdir my-mcp-server cd my-mcp-server yarn init -y -
安装必要的依赖:
yarn add @modelcontextprotocol/sdk zod zod-to-json-schema yarn add -D @types/node typescript yarn add @la-rebelion/mcp-server -
配置 'package.json' 和 'tsconfig.json': (请参考仓库 README 中的说明进行配置,主要是添加 'build' 和 'start' 脚本,并配置 TypeScript 编译)
-
创建 'src' 目录和工具文件: 在 'src' 目录下创建 'tools' 文件夹,并按照示例创建你的工具文件 (例如 'EchoTool.ts'),实现你的工具逻辑。
-
创建 'index.ts' 入口文件: 在 'src' 目录下创建 'index.ts' 文件,并参照示例代码注册你的工具并启动服务器。
-
构建项目:
yarn build
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令才能连接。以下是一个典型的 'serverConfig.json' 配置示例,适用于本仓库创建的 MCP 服务器:
{ "serverName": "My MCP Server", // MCP 服务器名称,与 index.ts 中 MCPServer 构造函数中的名称一致 "command": "node", // 启动 MCP 服务器的命令,这里使用 node "args": ["build/index.js"], // 启动命令的参数,指向构建后的 index.js 文件 "transport": "stdio" // 使用 stdio 传输协议 }
配置说明:
- 'serverName': 服务器名称,应与 'index.ts' 代码中 'MCPServer' 实例化的名称一致。这个名称会显示在 MCP 客户端中。
- 'command': 启动服务器的可执行命令。由于项目是 Node.js 项目,构建后通过 'node' 命令运行 'build/index.js'。
- 'args': 传递给 'command' 的参数,这里指向编译后的 'index.js' 文件路径。
- 'transport': 指定 MCP 服务器使用的传输协议,这里 'stdio' 表示使用标准输入输出进行通信,这是最常用的本地开发和测试方式。
将以上 JSON 配置复制到 MCP 客户端的服务器配置中即可。 例如,Claude Desktop 客户端可以在 "Preferences" -> "Custom Servers" 中添加新的服务器配置。
基本使用方法
-
启动服务器: 在项目根目录下运行以下命令启动 MCP 服务器:
yarn start # 或者 node build/index.js服务器启动后,将监听标准输入输出,等待 MCP 客户端连接和发送请求。
-
配置 MCP 客户端: 根据上述 服务器配置 部分的说明,在 MCP 客户端 (如 Claude Desktop) 中配置连接到你的 MCP 服务器。
-
在 MCP 客户端中使用工具: 连接成功后,MCP 客户端应该能够发现你注册的工具 (例如 'echo' 工具)。你可以在客户端中像调用其他功能一样调用这些工具,与 LLM 进行更丰富的交互。
注意: 本仓库提供的 'mcp-server' 库主要用于简化 MCP 服务器的搭建,开发者需要根据自身需求实现具体的工具逻辑。示例中的 'EchoTool' 只是一个简单的演示,实际应用中需要根据具体场景开发更有用的工具。
信息
分类
AI与计算