使用说明

项目简介

本项目 'mcp-server' 是一个基于 Model Context Protocol (MCP) 的服务端实现,专注于提供字符串的 Base64 编码和解码功能。它作为一个独立的 MCP 服务,可以与任何兼容 MCP 协议的 LLM 客户端集成,为 LLM 应用提供字符串处理能力。

主要功能点

  • Base64 编码工具: 将普通文本字符串编码为 Base64 格式,适用于在需要传输或存储文本数据,但又需要避免特殊字符或二进制数据问题的场景。
  • Base64 解码工具: 将 Base64 编码的字符串解码回原始文本,用于还原被编码的文本数据。
  • MCP 协议支持: 完全遵循 Model Context Protocol 规范,保证与 MCP 客户端的兼容性和互操作性。
  • Stdio 通信: 使用标准输入输出 (stdio) 作为通信通道,简化部署和集成。

安装步骤

  1. 克隆仓库

    首先,使用 Git 克隆 'mcp-server' 仓库到本地:

    git clone https://github.com/DreamCats/mcp-server
  2. 进入目录

    克隆完成后,进入 'mcp-server' 目录:

    cd mcp-server/mcp-encoding-server
  3. 安装依赖

    使用 npm 安装项目依赖:

    npm install

服务器配置

MCP 客户端需要配置以下 JSON 信息来连接和使用此 MCP 服务器。请注意,这里的 'command' 和 'args' 是客户端用来启动 MCP 服务器进程的。

{
  "serverName": "string-encoding-server",  // MCP 服务器名称,与代码中定义的一致
  "command": "./encoding-server.js",      // 启动服务器的命令,指向 encoding-server.js 脚本
  "args": [],                             // 启动参数,本项目无需额外参数
  "transport": "stdio",                   // 使用 stdio 传输协议
  "capabilities": {                      // 服务器声明的能力
    "tools": {}                           // 本服务器提供工具能力
  }
}

配置说明:

  • 'serverName': 服务器的唯一标识名称,必须与 'mcp-encoding-server/index.ts' 中 'Server' 构造函数的 'name' 字段一致。
  • 'command': 启动 MCP 服务器进程的命令。由于 'encoding-server.js' 文件头声明了 '#!/usr/bin/env node',且在快速开始中直接使用 './encoding-server.js' 运行,因此这里配置为 './encoding-server.js'。 请确保该脚本具有执行权限 ('chmod +x encoding-server.js')。
  • 'args': 启动命令的参数。本项目服务器脚本不需要任何启动参数,因此配置为空数组 '[]'。
  • 'transport': 指定 MCP 服务器使用的传输协议,本项目使用 'stdio'。
  • 'capabilities': 声明服务器提供的能力,本项目声明了 'tools' 能力。

重要提示: MCP 客户端需要能够执行 'command' 指定的命令。请确保客户端环境已安装 Node.js,并且 'encoding-server.js' 脚本路径正确。

基本使用方法

  1. 启动 MCP 服务器

    MCP 客户端根据上述配置启动 'mcp-encoding-server'。服务器成功启动后,会在控制台输出 "MCP String Encoding Server running on stdio"。

  2. 客户端调用工具

    LLM 客户端可以通过 MCP 协议向 'mcp-encoding-server' 发送 'CallToolRequest' 请求,调用 'encode' 或 'decode' 工具。

    • 调用 'encode' 工具示例 (JSON-RPC 请求体)

      {
        "jsonrpc": "2.0",
        "method": "callTool",
        "params": {
          "toolName": "encode",
          "arguments": {
            "text": "Hello, MCP!"
          }
        },
        "id": "1"
      }

      服务器会返回 Base64 编码后的字符串,例如:

      {
        "jsonrpc": "2.0",
        "result": {
          "content": [
            {
              "type": "text",
              "text": "{\"encodedText\":\"SGVsbG8sIE1DUCENCg==\"}"
            }
          ]
        },
        "id": "1"
      }
    • 调用 'decode' 工具示例 (JSON-RPC 请求体)

      {
        "jsonrpc": "2.0",
        "method": "callTool",
        "params": {
          "toolName": "decode",
          "arguments": {
            "encodedText": "SGVsbG8sIE1DUCENCg=="
          }
        },
        "id": "1"
      }

      服务器会返回解码后的原始字符串,例如:

      {
        "jsonrpc": "2.0",
        "result": {
          "content": [
            {
              "type": "text",
              "text": "{\"decodedText\":\"Hello, MCP!\"}"
            }
          ]
        },
        "id": "1"
      }

    客户端需要根据 MCP 协议规范构造和解析 JSON-RPC 请求和响应,才能与 'mcp-encoding-server' 进行有效通信。

总结

'mcp-server' 提供了一个简单但实用的 MCP 服务示例,展示了如何基于 MCP 协议构建工具服务。开发者可以参考此项目,扩展更多类型的工具服务,以满足 LLM 应用的各种需求。

信息

分类

开发者工具