Agent-Sandbox MCP 服务器
-
项目简介 该仓库实现了一个以 MCP(Model Context Protocol)为核心的后端服务,面向 AI 代理场景提供统一的上下文服务。核心能力包括托管与管理“资源(Resources)”、注册并执行“工具(Tools)”、定义与渲染“提示模板(Prompts)”,并通过 JSON-RPC 与客户端进行通信。服务具备会话管理、能力声明,以及对多种传输方式(如 SSE、WebSocket、STDIO)的支持,以适配不同的客户端需要。
-
主要功能点
- MCP 服务端实现:实现了 MCP 的服务端框架、工具注册与执行、以及对客户端的 JSON-RPC 风格请求/响应处理。
- 资源与沙箱管理:通过 Kubernetes 资源(ReplicaSet/Pod 等)管理沙箱环境,支持多租户、多会话的并发执行。
- 工具注册与执行:提供对外暴露的工具集合,LLM 客户端可通过 MCP 调用外部功能(如代码执行、浏览器操作等)。
- Prompts/模板渲染:支持基于模板的沙箱创建与运行时配置,便于不同任务的上下文定制。
- 非阻塞与流式通信:通过 StreamableHTTPHandler(SSE)等实现 MCP 的流式交互。
- 与现有生态对接:实现了对 E2B 这样的协议/SDK 的兼容,以及对现有沙箱/资源管理设计的对接。
-
安装步骤
- 将代码部署到 Kubernetes 集群(仓库自带 install.yaml,需具备可用的 Kubernetes 集群)。
- 通过 Ingress/端口转发暴露 API 服务,确保 MCP 客户端能访问 /mcp 端点。
- 启动后端服务,MCP 客户端即可通过 http(s) 请求与 /mcp 进行交互,完成创建、查询、删除等操作。
-
服务器配置 下面给出 MCP 客户端在连接此 MCP 服务器时可使用的配置示例(JSON 格式,描述了服务器名称、启动命令及参数,便于客户端在连接前做初始化准备;注意:客户端本身通常不需要包含敏感信息): { "server_name": "agent-sandbox-mcp-server", "command": ["agent-sandbox"], "args": [ "--kube-namespace=default", "--config=/path/to/config.yaml" ], "description": "MCP 服务器,提供沙箱资源管理、工具执行和提示模板渲染等能力。部署在 Kubernetes 集群中,通过 /mcp 提供 JSON-RPC 风格的服务。" }
- 说明
- server_name: MCP 服务器的唯一标识名称,便于在多服务器环境中区分。
- command/args: 启动服务器的命令及参数,实际命令应当对应构建后的可运行二进制名称及其运行时参数(如命名空间、配置文件路径等)。
- description: 对服务器的简要描述,帮助运维与开发者快速理解用途。
- 说明
-
基本使用方法
- 关注点
- 客户端需要指向 MCP 服务器的 /mcp 端点,使用 MCP 的客户端 SDK 进行会话建立、调用工具、请求资源等。
- 常见流程
- 通过 MCP 客户端连接到服务端的 /mcp,进行会话建立。
- 使用 createSandbox、listSandbox、getSandbox、deleteSandbox 等工具方法执行沙箱的生命周期管理。
- 通过 sandboxExecutor 等工具在沙箱内执行具体任务;服务器会对沙箱进行资源隔离与生命周期管理。
- 若需要扩展功能,可通过 MCP 的 Tool 机制注册新的操作,并通过客户端进行调用。
- 关注点
-
其他说明
- 本实现包含了完整的服务端逻辑,具备 Kubernetes 集群内外部协作能力(资源管理、审计、自动清理等)。
- 如要在本地或集群环境进行快速验证,请参照仓库 README 的 Quick Start 及示例用例进行操作。