term-llm MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,支持通过 MCP 协议向 MCP 客户端暴露工具、资源,以及提示模板的能力。服务器与客户端通过标准输入输出(stdio)等传输方式通信,核心包含服务器端的工具注册、响应请求,以及对工具调用的处理逻辑。
  • 主要功能点

    • 注册并暴露外部工具(Tools),使 LLM 客户端能够调用外部功能。
    • 管理资源(Resources),为 LLM 提供数据访问和上下文信息。
    • 定义和渲染 Prompt 模板(Prompts),支持可定制的交互模式。
    • 支持多传输协议(如 stdio,HTTP 传输等),并通过 JSON-RPC 与客户端通信。
    • 会话管理、能力声明以及对 MCP 服务的扩展性设计,便于接入更多外部服务。
    • 提供一个示例服务器实现,展示如何在 term-llm 中注册一个 MCP 服务器,以及如何通过实现函数返回 Tool 的调用结果。
  • 安装与运行

    • 从源码编译 term-llm(Go 工具链需已安装):
      • go build ./...
    • 启动一个 MCP 服务器(示例,直接在本地使用 stdio 传输):
      • 在终端执行:term-llm mcp-server --tools-json '[{"name":"read_file","description":"Read file contents","schema":{}}]'
      • 上述命令会以 stdio 传输启动一个 MCP 服务器实例,提供一个名为 read_file 的工具。
    • 使用 MCP 服务器的客户端配置(JSON 配置示例,供 MCP 客户端了解如何连接与使用):
      • 服务器配置示例(JSON,非代码块展示,供 MCP 客户端读取): { "servers": { "term-llm-mcp-stdio": { "command": "term-llm", "args": ["mcp-server", "--tools-json", "[{"name":"read_file","description":"Read file contents","schema":{}}]"] } // 如果需要更多工具,可在这里继续追加 } // 备注:此处为 MCP 客户端所用的连接信息,客户端本身并不需要此段代码,仅用于示意如何描述连接 }
    • 服务器配置说明
      • server name: term-llm-mcp-stdio
      • command: term-llm
      • args: mcp-server --tools-json "[{...}]",其中 tools-json 为 MCP Server 所暴露的工具定义列表(JSON),例如 read_file 工具包含名称与 JSON Schema。
      • 说明:MCP 客户端通过读取该 JSON 配置获取可用的 MCP 服务器名称、启动命令以及参数,从而与 MCP 服务器建立连接。
  • 基本使用方法

    • 客户端侧(LLM 客户端)要与 MCP 服务器进行通信,通常需要在配置中添加 MCP 服务器信息(如上 JSON 配置所示),然后在需要时通过如下方式调用:
      • 选择一个 MCP 服务器名称,例如 term-llm-mcp-stdio,在执行命令时通过 --mcp 传入服务器名称即可让后端执行与 MCP 服务器的交互。
    • 服务器端的实际实现将接收来自客户端的请求,返回工具调用信息或执行结果,并通过 JSON-RPC 的规范返回响应。
    • 运行示例(概览)
      • 启动 MCP 服务器:term-llm mcp-server --tools-json '[{"name":"read_file","description":"Read file contents","schema":{}}]'
      • 配置 MCP 客户端以连接该服务器(示例 JSON 配置如上所示),客户端可通过 MCP 调用访问工具并获得结果。
    • 使用场景
      • 将外部系统(文件系统、浏览器自动化、数据库等)接入 term-llm,通过 MCP 服务器暴露的工具与资源,为 LLM 提供丰富的上下文和外部能力。
  • 运行与扩展

    • 代码基包含一个实际的 MCP 服务器实现示例(如 cmd/mcp_server.go),演示如何创建一个 MCP 服务器、注册工具、并通过 stdio 传输运行。
    • 通过该示例,可以扩展更多工具、资源与提示模板,形成完整的 MCP 服务端能力。

服务器信息