使用说明

项目简介

本项目 'deno-mcp-server-template' 是一个使用 Deno 构建 MCP (Model Context Protocol) 服务器的模板。它旨在帮助开发者快速搭建基于 MCP 协议的后端服务,以便为大型语言模型 (LLM) 应用提供上下文信息和功能扩展。该模板预置了一个简单的字符串处理工具作为示例,展示了如何注册和使用工具。

主要功能点

  • MCP 服务器基础框架: 实现了 MCP 协议服务器的基本结构,可以处理来自 MCP 客户端的请求。
  • 工具注册与执行: 允许注册和执行外部工具,例如本例中提供的 'getStringLength' 工具,用于获取字符串长度。
  • Stdio 传输协议: 使用 Stdio (标准输入输出) 作为默认的传输协议,方便本地开发和部署。
  • 可扩展性: 通过模块化的设计,可以轻松添加和扩展资源、工具和 Prompt 模板处理逻辑。
  • 示例工具: 内置 'getStringLength' 工具,演示了如何定义和实现工具的功能。

安装步骤

  1. 安装 Deno: 确保您的系统已安装 Deno 运行时环境。您可以访问 https://deno.land/ 按照官方指南进行安装。
  2. 克隆仓库: 将 'deno-mcp-server' 仓库克隆到本地。
    git clone https://github.com/mazrean/deno-mcp-server.git
    cd deno-mcp-server
  3. 无需构建: Deno 项目无需显式构建步骤,可以直接运行。

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。请注意,以下配置为 JSON 格式,您需要将其填入 MCP 客户端的相应配置项中。

{
  "serverName": "traQ",
  "command": "deno",
  "args": ["run", "main.ts"]
}

配置参数说明:

  • 'serverName': 服务器名称,此处设置为 'traQ',与 'mcp/server.ts' 中 'McpServer' 构造函数的 'name' 字段一致。
  • 'command': 启动服务器的命令,这里使用 'deno' 命令来运行 Deno 程序。
  • 'args': 传递给 'command' 的参数列表。
    • '"run"': Deno 命令的 'run' 子命令,用于执行 Deno 脚本。
    • '"main.ts"': 要执行的 Deno 脚本文件,即 'main.ts',它是服务器的入口文件。

重要提示: 请确保 MCP 客户端能够找到 'deno' 命令,或者在 'command' 中使用 'deno' 的完整路径。 'main.ts' 文件路径是相对于 MCP 客户端启动命令的执行目录而言的,如果两者目录结构不同,您可能需要调整 'args' 中的路径。

基本使用方法

  1. 启动服务器: 在仓库根目录下,打开终端并执行以下命令启动 MCP 服务器:

    deno run main.ts

    服务器将通过 Stdio 监听来自 MCP 客户端的请求。

  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置服务器连接信息,使用上面提供的 JSON 配置。

  3. 调用工具: MCP 客户端连接成功后,即可调用服务器提供的工具。例如,您可以使用客户端发送请求调用 'getStringLength' 工具,并传入字符串参数,服务器将返回字符串的长度。 具体工具的调用方式请参考 MCP 客户端的文档。

示例工具调用 (getStringLength):

假设您使用 MCP 客户端发送调用 'getStringLength' 工具的请求,并传入参数 '{"input": "Hello MCP Server"}',服务器将返回包含字符串长度 '16' 的响应。

// 客户端请求示例 (JSON-RPC)
{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "tool_name": "getStringLength",
    "input": {
      "input": "Hello MCP Server"
    }
  },
  "id": 1
}

// 服务器响应示例 (JSON-RPC)
{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "16"
      }
    ],
    "isError": false
  },
  "id": 1
}

请注意,以上 JSON 示例仅为演示工具调用过程,实际的请求和响应格式可能需要根据您使用的 MCP 客户端库进行调整。

信息

分类

开发者工具