使用说明

项目简介

本项目是一个使用 TypeScript 开发的 MCP 服务器简易模板,旨在帮助开发者快速搭建基于 Model Context Protocol 的应用后端。它演示了如何使用 '@modelcontextprotocol/sdk' 库创建 MCP 服务器,并提供了一个 BMI 计算器工具作为示例,展示了工具的注册和实现方法。服务器通过标准输入输出 (stdio) 与 MCP 客户端进行通信。

主要功能点

  • MCP 服务器基础框架: 基于 '@modelcontextprotocol/sdk' 搭建了基本的 MCP 服务器结构。
  • 工具注册: 演示了如何使用 'server.tool()' 方法注册工具,并定义工具的输入参数和执行逻辑。
  • Zod 验证: 使用了 'zod' 库进行工具输入参数的类型验证,保证数据格式的正确性。
  • 标准输入输出通信: 使用 'StdioServerTransport' 实现 MCP 服务器通过标准输入接收请求,标准输出发送响应。
  • 示例工具: 包含一个简单的 BMI 计算器工具和一个 echo 工具,展示了工具的实现方式。

安装步骤

  1. 克隆仓库
    git clone https://github.com/ChenReuven/mcp-ts-simple-template.git
    cd mcp-ts-simple-template
  2. 安装依赖
    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' 命令来启动服务器。

基本使用方法

  1. 启动服务器 在仓库根目录下,运行命令:

    npm start

    服务器启动后,会监听标准输入,等待接收来自 MCP 客户端的请求。

  2. 使用示例工具 此模板提供了两个示例工具:

    • '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' 才能使修改生效。

信息

分类

开发者工具