Hydra 基于模型上下文协议的 MCP 服务器实现

使用说明

  • 项目简介 Hydra 的 MCP 服务器实现将 MCP 的核心能力(资源管理、工具注册/执行、Prompts 渲染等)整合在 Hydra 守护进程中,通过本地的 HTTP/SSE 传输向 MCP 客户端暴露。客户端可以通过 JSON-RPC 向该 MCP 服务器发起请求,查询或操作 Hydra 的代理/会话状态、执行工具、获取输出以及获取或渲染 Prompt 模板等。
  • 主要功能点
    • MCP 服务器与会话管理:为不同会话创建和销毁 MCP 传输通道,管理会话生命周期和工作区。
    • 工具注册与执行:提供 hydra_list_agents、hydra_create_agent、hydra_send_prompt、hydra_get_output、hydra_broadcast、hydra_kill_agent、hydra_restart_agent 等工具,LLM 客户端可通过这些工具与 Hydra 代理进行交互。
    • 资源与上下文:保留并暴露 Hydra 的代理信息、会话历史、输出缓冲等上下文信息,供 LLM 使用。
    • Prompts 定义与渲染:整合 Prompts/模板,便于 LLM 客户端在对话中灵活获取上下文模版。
    • 传输与协议:服务器端通过 HTTP/ SSE 提供服务,支持 JSON-RPC 请求/响应和相关通知。
  • 安装与运行步骤
    • 安装依赖并构建 Hydra(桌面应用)后,MCP 服务器会随 Hydra 守护进程自动启动并对外暴露 /mcp 接口。
    • MCP 服务器不是独立二进制,而是嵌入在 Hydra 守护进程中运行的一个组件;因此无需单独部署 MCP 服务器二进制。
    • 客户端要连接到 MCP 服务器时,应指向本地地址和 Hydra 守护进程暴露的端口的 /mcp 路径(端口在运行时动态分配)。
  • 服务器配置(MCP 客户端需要的最低信息) 说明:此 MCP 服务器在 Hydra 守护进程中运行,因此没有独立的可执行文件启动参数供直接使用。客户端连接信息通常通过本地 HTTP/SSE 接入点和端口暴露来建立连接。下面给出等效的 JSON 配置示例,用于描述服务器端信息,供 MCP 客户端文档参考: { "serverName": "Hydra-MCP-Server", "command": "embedded", "args": [], "endpoint": "http://127.0.0.1:<port>/mcp", "description": "Hydra 的 MCP 服务作为守护进程的一部分启动,提供 '/mcp' 路径的 JSON-RPC 服务。端口在运行时动态分配。" } 说明与注释:
    • serverName:MCP 服务在 Hydra 环境中的名称。
    • command/args:由于 MCP 服务是嵌入式运行,没有独立启动命令,此处标注为 embedded,参数为空。
    • endpoint:MCP 服务的访问地址,基于本地端口和 /mcp 路径,客户端通过该端点发起 JSON-RPC 请求。
  • 基本使用方法
    1. 启动 Hydra 桌面应用或守护进程,确保 MCP 服务正常启动并对外暴露 /mcp 接口。
    2. 使用 MCP 客户端通过指定 endpoint(http://127.0.0.1:<port>/mcp)向 Hydra 的 MCP 服务器发送 JSON-RPC 请求,例如执行 hydra_list_agents、hydra_create_agent、hydra_send_prompt 等工具。
    3. 根据返回的 JSON-RPC 响应处理结果或错误信息,并可通过通知机制获取代理状态或输出变更。
    4. 使用 Get/Subscribe 机制监听服务器端的通知,例如代理状态变更、输出变更或 headless 任务事件等。
    5. 结合 Hydra 的会话与工作区管理,确保多会话和多代理的上下文信息可被 MCP 客户端稳定消费与利用。

服务器信息