Veronica MCP 服务器实现
使用说明
-
项目简介 Veronica Core 提供了用于实现 MCP(Model Context Protocol)后端的核心组件,其中包含针对 MCP 的同步与异步服务器适配器,以及把资源、工具、Prompt 模板等 MCP 构件暴露为 JSON-RPC 风格接口的能力。通过这些适配器,LLM 客户端可以对后端发起读取资源、执行工具、获取及渲染 Prompt 的请求,并得到标准化的 JSON-RPC 响应或通知。
-
主要功能点
- MCP 核心能力:托管资源与数据访问、注册与执行工具、定义和渲染 Prompt 模板,支持多种交互模式的 MCP 服务。
- JSON-RPC 通信:服务器端实现对 MCP 客户端的请求/响应对接,统一采用 JSON-RPC 协议进行交互。
- 同步/异步 MCP 适配:提供 Synchronised 与 Async 版本的 MCPContainmentAdapter,支持不同应用场景的集成。
- 会话与能力声明:实现会话管理、能力声明、以及跨进程/跨线程的预算与容错机制。
- 传输协议灵活性:设计支持多种传输协议(如 Stdio、SSE、WebSocket),以满足不同部署与集成场景的需求。
- 安全与审计:提供策略引擎、审计日志、策略落地与告警,确保对外暴露的能力行为可追踪。
- 与 veronica-core 的深度集成:MCP 作为 veronica-core 的服务端适配层,与现有 containment、预算、工具执行等模块无缝协作。
-
安装步骤
- 基本安装:pip install veronica-core
- 可选扩展(按需):pip install veronica-core[redis](用于分布式预算后端与 Redis 相关能力)
-
服务器配置(针对 MCP 客户端的配置思路) 注:本实现提供的是服务器端的 MCP 适配能力,仓库内部实现为 Python 模块,不一定提供独立的可执行服务器实例。因此客户端配置侧以“服务器名称/启动命令/参数”形式描述,帮助 MCP 客户端通过 JSON-RPC 与服务器对接。
- 服务器名称(server_name):veronica-mcp-server
- 启动命令(command):可采用 Python 模块运行形式,示意为:python -m veronica_core.adapters.mcp_async
- 启动参数(args):可选项用于指定传输协议与端口等,例如:
- --transport stdio
- --transport websocket
- --transport sse
- --listen-port 9000
- 说明:上述参数用于帮助 MCP 客户端理解如何与服务器建立连接与传输,实际使用时请依据部署环境及客户端能力选择合适的传输通道。客户端不需要关注内部实现细节,仅需在配置中提供 server_name、command、args 等字段以建立连接。
-
基本使用方法(操作步骤)
- 在应用中引入 Veronica Core 的 MCP 适配器,创建 MCP 服务实例并绑定到你应用的传输通道上(如 WebSocket/StdIO 等)。
- 通过 MCP 提供的标准化接口,完成对资源的读取、对工具的注册与调用、以及对提示模板的获取与渲染,以支持 LLM 的上下文构建与推理过程。
- 配置会话、预算与安全策略,确保在并发场景下的资源分配、错误处理以及审计日志均能正确落地。
- 客户端通过 JSON-RPC 对服务器发起请求,服务器返回标准 JSON-RPC 响应或发送通知,具体协议细节可参考仓库中实现的 MCP 适配器与测试用例。
-
开发/运行注意
- 该实现体现为 veronica-core 内部模块化的 MCP 适配器与测试覆盖,而非单独的外部 MCP 服务器实例。要在生产环境中部署,应在你的应用中把相关 MCP 适配器作为后端服务暴露,结合指定传输协议实现对外暴露。
- 若需要与现有 MCP 客户端对接,请关注 AsyncMCPContainmentAdapter/Sync 版本的接口契约、工具注册、资源访问以及预算管控策略等要点。
-
关注点与扩展性
- 支持多传输协议下的会话与预算一致性
- 提供可扩展的工具注册、资源模型与 Prompts 的渲染策略
- 集成 Veronica 的安全、审计与合规特性