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 的安全、审计与合规特性

服务器信息