使用说明
项目简介
本项目是一个使用 TypeScript 开发的 MCP 服务器简易模板,旨在帮助开发者快速搭建基于 Model Context Protocol 的应用后端。它演示了如何使用 '@modelcontextprotocol/sdk' 库创建 MCP 服务器,并提供了一个 BMI 计算器工具作为示例,展示了工具的注册和实现方法。服务器通过标准输入输出 (stdio) 与 MCP 客户端进行通信。
主要功能点
- MCP 服务器基础框架: 基于 '@modelcontextprotocol/sdk' 搭建了基本的 MCP 服务器结构。
- 工具注册: 演示了如何使用 'server.tool()' 方法注册工具,并定义工具的输入参数和执行逻辑。
- Zod 验证: 使用了 'zod' 库进行工具输入参数的类型验证,保证数据格式的正确性。
- 标准输入输出通信: 使用 'StdioServerTransport' 实现 MCP 服务器通过标准输入接收请求,标准输出发送响应。
- 示例工具: 包含一个简单的 BMI 计算器工具和一个 echo 工具,展示了工具的实现方式。
安装步骤
- 克隆仓库
git clone https://github.com/ChenReuven/mcp-ts-simple-template.git cd mcp-ts-simple-template - 安装依赖
npm install
服务器配置
MCP 客户端需要配置以下信息以连接到此 MCP 服务器:
{ "serverName": "My App", "command": "npm", "args": ["start"], "説明": "serverName: MCP 服务器的名称,在 index.ts 中定义。", "説明": "command: 启动 MCP 服务器的命令,这里使用 npm 启动。", "説明": "args: 启动命令的参数,这里使用 start 脚本启动。" }
配置说明:
- 'serverName': MCP 服务器的名称,对应 'index.ts' 中 'McpServer' 构造函数中定义的 'name' 字段。客户端可以通过此名称识别服务器。
- 'command': 启动 MCP 服务器的命令。由于项目使用 npm 管理和启动,所以这里设置为 'npm'。
- 'args': 启动命令的参数。'npm start' 命令会执行 'package.json' 中定义的 'start' 脚本,该脚本负责编译 TypeScript 代码并启动服务器。
注意: 请确保你的环境中已安装 Node.js 和 npm,并且能够执行 'npm start' 命令来启动服务器。
基本使用方法
-
启动服务器 在仓库根目录下,运行命令:
npm start服务器启动后,会监听标准输入,等待接收来自 MCP 客户端的请求。
-
使用示例工具 此模板提供了两个示例工具:
- 'echo': 回显工具,接收 'text' 参数,返回相同的文本内容。
- 'calculate-bmi': BMI 计算器,接收 'weightKg' (体重,公斤) 和 'heightM' (身高,米) 参数,返回计算出的 BMI 值。
你可以使用 MCP 客户端(例如实现了 MCP 协议的 LLM 应用或客户端工具)向服务器发送符合 MCP 协议的 JSON-RPC 请求,调用这些工具。例如,调用 'calculate-bmi' 工具的请求可能如下 (JSON-RPC 格式,仅为示例,实际客户端请求格式可能有所不同):
{ "jsonrpc": "2.0", "method": "tool_call", "params": { "tool_name": "calculate-bmi", "parameters": { "weightKg": 70, "heightM": 1.75 } }, "id": 1 }服务器会计算 BMI 值,并将结果作为 JSON-RPC 响应返回给客户端。
开发自定义工具
你可以参考 'index.ts' 中的示例,通过 'server.tool()' 方法注册和实现自己的工具。只需定义工具名称、参数 schema (使用 'zod') 和执行函数即可。修改 'index.ts' 后,需要重新运行 'npm start' 才能使修改生效。
信息
分类
开发者工具