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)。
- 执行工具的安全性由实现中的模式(如执行代码的沙箱/隔离)控制,尽量避免输出敏感信息。