使用说明

项目简介

这是一个使用 TypeScript 编写的 MCP (Model Context Protocol) 服务器脚手架项目。它提供了一个快速启动 MCP 服务器的基础框架,开发者可以在此基础上轻松构建自己的 MCP 服务器,为大型语言模型 (LLM) 应用提供资源管理、工具注册和 Prompt 模板等核心上下文服务。

主要功能点

  • MCP 服务器基础框架: 实现了 MCP 协议的基本服务器结构,可以处理客户端的 JSON-RPC 请求。
  • 资源和工具管理: 预留了资源 (Resources) 和工具 (Tools) 的定义接口,虽然示例中为空,但可以方便地扩展和注册各种资源和工具,供 LLM 调用。
  • 工具注册示例: 提供了一个简单的工具注册示例 ('tool-name'),演示了如何定义和实现工具函数,可以返回文本内容。
  • Stdio 传输支持: 默认使用 Stdio (标准输入输出) 作为传输协议,方便本地开发和调试。
  • 易于扩展: 项目结构清晰,代码简洁,方便开发者根据自身需求进行定制和扩展。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/siavashdelkhosh81/typescript-mcp-server-boilerplate
    cd typescript-mcp-server-boilerplate
  2. 安装依赖: 确保已安装 yarnnpm。推荐使用 yarn。

    yarn

    或者

    npm install
  3. 构建项目 (可选): 虽然可以直接运行 'src/index.ts',但通常 TypeScript 项目会先构建成 JavaScript 文件。本项目未提供构建脚本,如果需要构建,可以自行配置 TypeScript 编译。

    对于快速体验,可以跳过构建步骤,直接使用 'ts-node' 或 'node --loader ts-node/esm src/index.ts' 运行 'src/index.ts' 文件 (需要先安装 'ts-node')。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是 JSON 格式的配置示例,请根据您的实际情况进行调整。

{
  "serverName": "mcp_server",  // MCP 服务器名称,与服务器代码中定义的 'name' 属性一致
  "command": "node",           // 启动 MCP 服务器的命令,这里假设使用 Node.js 运行
  "args": ["src/index.ts"]      // 启动命令的参数,指向服务器入口文件。如果已构建,则指向构建后的 JavaScript 文件,例如 "dist/index.js"
}

配置参数说明:

  • '"serverName"': 必须与 'src/index.ts' 中 'McpServer' 构造函数中 'name' 属性的值 '"mcp_server"' 保持一致。客户端通过此名称识别服务器。
  • '"command"': 指定用于启动 MCP 服务器的可执行命令。由于这是一个 TypeScript 项目,通常使用 'node' 命令来运行 JavaScript 文件。如果需要使用 'ts-node' 直接运行 TypeScript 文件,请将命令修改为 'ts-node' 或 'node --loader ts-node/esm',并确保已安装 'ts-node'。
  • '"args"': 一个字符串数组,包含传递给启动命令的参数。这里指向 'src/index.ts' 文件作为服务器的入口点。重要提示: 如果项目经过 TypeScript 编译,并且输出到 'dist' 目录,那么应该将 '"args"' 修改为指向构建后的 JavaScript 文件,例如 '["dist/index.js"]'。

基本使用方法

  1. 启动 MCP 服务器: 在项目根目录下,运行以下命令启动服务器 (如果未构建,且已安装 'ts-node'):

    yarn ts-node src/index.ts

    或者 (如果已构建,假设构建输出到 'dist' 目录)

    node dist/index.js

    服务器启动后,将在控制台输出日志信息,表示服务器正在运行并监听客户端连接。

  2. 配置 MCP 客户端: 根据上面提供的服务器配置信息,配置您的 MCP 客户端,确保客户端能够连接到正在运行的 MCP 服务器。

  3. 调用工具 (示例): 使用 MCP 客户端向服务器发送调用工具的请求,工具名称为 '"tool-name"'。服务器将执行 'server.tool("tool-name", ...)' 中定义的工具函数,并返回包含 "Hello world" 文本内容的响应。

  4. 扩展功能: 开发者可以根据实际需求,修改 'src/index.ts' 文件,添加更多的资源定义、工具注册和 Prompt 模板支持,构建功能完善的 MCP 服务器。

信息

分类

开发者工具