Aegis MCP 服务器
使用说明
- 项目简介
- 该仓库实现了一个 MCP 服务器,用于 Model Context Protocol(MCP)的后端服务。服务器通过标准输入输出的 JSON-RPC 2.0 进行通信,提供对本地虚拟机/实例的管理、工具执行和上下文相关内容的访问能力,面向 LLM 客户端(如 Claude Code、LLM 代理等)暴露能力。
- 主要功能点
- MCP 接口实现:按 MCP 2.0 规范处理 initialize、tools/list、tools/call 等请求,返回符合规范的 JSON-RPC 响应。
- 工具暴露与调用:定义并注册多类工具(如实例管理、隧道、tether 交互、外部服务调用等),支持参数化调用和内容渲染。
- 与 aegisd/Aegis 的交互:通过同一 UNIX 域套接字/HTTP API,调用宿主系统的接口实现实际操作,如实例启动、执行命令、读取日志、管理机密等。
- 运行时完整性:包含主循环、请求分派、错误处理和内容内容渲染,具备错误码与结果聚合能力。
- 结构清晰:JSON-RPC 请求/响应结构、工具定义、工具调用参数、内容渲染等类型清晰分离。
- 安装步骤
- 构建执行文件:在支持的 Go 1.17+ 环境下运行 go build ./cmd/aegis-mcp ,生成可执行文件 aegis-mcp。
- 启动方式:以标准输入/输出的 JSON-RPC 流形式启动并监听,通常由 Claude Code 集成架构调用,或通过脚本直接向该服务器发送 initialize 请求以注册能力。
- 与宿主协作:MCP 服务器通过 aegisd 的 API(同一机器的 UNIX Socket)进行资源、实例、密钥等操作暴露的能力调用。
- 服务器配置
服务器配置示例(JSON,描述性信息,供 MCP 客户端参考,不作为实际代码运行):
{
"server_name": "aegis-mcp",
"command": "aegis-mcp",
"args": []
}
配置项说明:
- server_name: MCP 服务器在客户端注册时使用的唯一标识名称。基于仓库实现,该服务器的名称通常为 aegis-mcp 或与 Claude Code 集成中的名称一致。
- command: 用于启动 MCP 服务器的可执行程序名称或路径。在本仓库中该可执行文件为 aegis-mcp。
- args: 启动时传入的参数列表。当前实现中常为空,若将来需要传入额外参数,可在此处配置。
- 基本使用方法
- 启动 MCP 服务器后,LLM 客户端通过 MCP 客户端与服务器建立连接,发送 initialize 以获取服务器信息、能力、工具列表等。
- 客户端可以通过 tools/list 获取可用工具清单,通过 tools/call 调用具体工具并获得渲染后的内容(文本、图片等)。
- 服务器会按照请求的参数执行相应操作,并通过 JSON-RPC 返回结果或错误信息。
- 若需要扩展能力,客户端可通过新工具的定义和工具处理逻辑来扩展 MCP 交互流程,而服务器端应实现对应工具的处理逻辑。