AnviLLM MCP 服务器

使用说明(简要、易执行):

  • 项目简介
    • 该仓库实现了一个以 MCP(Model Context Protocol)为核心的后端服务器组件,提供 JSON-RPC 的服务端实现,允许客户端注册工具、执行工具、管理会话以及在必要时暴露资源(初步以工具/会话相关接口为主)。
  • 主要功能点
    • JSON-RPC 服务端:解析 MCP 请求、返回 MCP 响应,支持 initialize、notifications/initialized、tools/list、tools/call 等方法。
    • 工具注册与执行:通过 Tools 列表暴露工具信息,支持 execute_code 之类的执行工具,在受控沙箱/隔离环境中执行 bash 代码并返回结果。
    • 会话与资源管理(初步):整合后端会话、Taoken 日志、执行日志、以及对工具执行结果的返回结构,便于 LLM 客户端进行上下文管理和任务编排。
    • 9P 档案系统对接(间接能力展示):仓库中包含 9P 相关实现,用于对外暴露资源、 beads、工具、技能等接口( MPC 组件与 9P 组件紧密集成)。
  • 安装与运行
    • 构建:使用 Go 构建工具编译 cmd/anvilmcp 下的可执行程序。
    • 运行:直接运行生成的可执行文件,例如 ./anvilmcp 即可启动 MCP 服务器(标准输入输出作为 JSON-RPC 的通信通道)。
    • 使用场景:MCP 客户端通过 JSON-RPC 发送请求到 MCP 服务器,进行 initialize、调用工具、查询工具列表、获取响应等。
  • 服务器配置(客户端需提供) MCP 客户端在首次连接时需要通过配置提供服务器信息与连接参数,JSON 配置示例如下(用于文档说明,实际请按客户端要求填写): { "server_name": "anvil-mcp-server", "command": "./anvilmcp", "args": [] } 注释说明:
    • server_name:MCP 服务端的名称,便于客户端标识与日志分组
    • command:启动 MCP 服务器的可执行程序路径
    • args:启动参数(若无,可留空) 注意:该 MCP 客户端配置不需要在服务器端编码实现,只用于客户端连接信息,实际通信仍通过 MCP 的 JSON-RPC 约束进行。
  • 基本使用方法
    • 启动服务器后,MCP 客户端通过 JSON-RPC 与服务器进行通信。
    • 常用流程:
      • initialize 请求:获取协议版本、能力声明等信息。
      • tools/list 请求:获取已注册的工具及其输入结构。
      • tools/call 请求:调用具体工具(如 execute_code),传入参数(如 code、language、timeout)。
      • 根据工具执行结果获取 content、文本输出等结构,LLM 客户端可据此继续对话。
    • 注意事项:
      • 服务器默认并发执行工具限制为 3 个并发执行(executionSemaphore)。
      • 执行工具的安全性由实现中的模式(如执行代码的沙箱/隔离)控制,尽量避免输出敏感信息。

服务器信息