TinyMCP Server SDK 使用说明

项目简介

TinyMCP Server SDK 是一个使用 C++ 开发的轻量级 SDK,旨在帮助开发者快速构建 MCP 服务器。该 SDK 实现了 MCP 协议的核心框架,特别是针对 工具 (Tools) 功能的服务器端实现。虽然目前尚未完全支持 MCP 协议的所有特性(例如资源和 Prompt),但已经可以作为一个有效的 Tools-type MCP Server 运行。

主要功能点

  • MCP 协议支持: 基于 JSON-RPC 2.0 协议实现 MCP 标准通信。
  • 生命周期管理: 支持连接初始化、能力协商和会话控制。
  • 工具 (Tools) 执行: 允许 LLM 客户端调用服务器端注册的外部工具,实现与外部系统的交互,例如数据库查询或 API 调用。(已实现,是当前版本的主要功能
  • Stdio 传输: 默认支持 Stdio 标准输入输出传输协议。
  • 取消和进度: 支持通过通知消息取消正在进行的请求和跟踪长时间运行操作的进度。
  • 分页: 支持分页返回结果。

安装步骤

  1. 环境准备: 确保已安装 C++ 编译环境(例如 GCC 或 Visual Studio)和 CMake 构建工具。
  2. 下载代码: 从 GitHub 仓库 https://github.com/Qihoo360/TinyMCP 克隆代码到本地。
  3. 编译项目:
    • 进入项目根目录。
    • 创建构建目录(例如 'build' 目录):'mkdir build'
    • 进入构建目录:'cd build'
    • 使用 CMake 生成构建文件:'cmake ..'
    • 编译项目:'cmake --build . --config Release' (或者根据您的平台选择 Debug 配置)
    • 编译成功后,在 'Example/MCPServer/' 目录下将生成可执行文件 'MCPServer' (或 'MCPServer.exe' 在 Windows 平台)。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数以建立连接。以下是 TinyMCP Server SDK 示例服务器的配置信息(JSON 格式),客户端需要根据此配置连接到服务器:

{
  "serverName": "EchoServer",  // MCP 服务器名称,定义在 EchoServer.cpp 的 SERVER_NAME
  "command": "/path/to/TinyMCP/Example/MCPServer/build/MCPServer", // MCP 服务器可执行文件的绝对路径,请替换为实际路径
  "args": [], // 启动参数,示例服务器不需要额外的启动参数
  "transport": "stdio", // 传输协议,默认为 stdio
  "protocolVersion": "2024-11-05" // MCP 协议版本
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,用于客户端识别,与服务器代码中定义的服务名称一致。
  • 'command': 重要,MCP 服务器可执行文件的绝对路径。请根据您的实际编译输出路径进行替换。
  • 'args': 启动服务器时需要传递的命令行参数。对于示例 'EchoServer',此项为空数组 '[]'。
  • 'transport': 使用的传输协议,TinyMCP 默认实现了 'stdio' 传输。
  • 'protocolVersion': MCP 协议版本,与服务器 SDK 遵循的协议版本一致。

基本使用方法

  1. 启动服务器: 在命令行终端中,执行编译生成的 'MCPServer' 可执行文件。
  2. 配置 MCP 客户端: 在 MCP 客户端应用中,根据上述 服务器配置 信息配置连接参数。
  3. 客户端与服务器交互: 客户端通过配置的连接与 TinyMCP Server SDK 示例服务器建立 MCP 会话,并可以调用服务器注册的工具(例如示例中的 'echo' 工具)进行交互。

示例 'echo' 工具的使用: 示例服务器注册了一个名为 'echo' 的工具。客户端可以发送 'CallToolRequest' 请求来调用此工具,并传递 'input' 参数。服务器会将收到的 'input' 参数原样返回。

注意:

  • 该 SDK 示例主要展示了 Tools-type MCP Server 的基本框架和工具执行功能。
  • Resources 和 Prompts 等功能在当前版本中尚未实现。
  • 实际使用时,您需要根据 TinyMCP SDK 提供的接口,扩展和定制 MCP 服务器的功能,例如注册和实现自己的工具任务。

信息

分类

开发者工具