Haira MCP Server
使用说明(简要、便于上手)
-
项目简介
- Haira 提供一个内置的 MCP 服务器,用来实现对资源、工具和提示模板的托管、注册与执行,以及将工作流暴露为 MCP 工具供外部代理或系统调用。服务器通过 JSON-RPC 与 MCP 客户端通信,支持多传输通道(stdio、SSE),并具备会话管理、能力声明和可扩展的上下文服务能力。
-
主要功能点
- MCP 核心能力:解析 MCP 请求、返回 MCP 响应、支持初始化、工具清单查询及工具调用等 JSON-RPC 场景。
- 传输方式:实现 stdio(子进程上下文中的 MCP 服务)和 SSE(HTTP/Server-Sent Events)两种传输,便于在不同部署环境中接入。
- 与 Haira 生态集成:可以将 Haira 的工作流通过 MCP 暴露为外部工具,外部代理可对其进行调用。
- 会话与上下文:保持会话状态、记忆上下文数据,为 LLM 客户端提供更丰富的上下文。
-
安装与运行
- Haira 的 MCP 组件是 Haira 运行时的一部分,与 Haira 的编译输出一起构成一个可执行能力强的后端。实际部署通常以 Haira 二进制的某种模式启动并暴露 MCP 服务(示例中包含 stdio 与 SSE 两种连接方式)。
- 运行环境要求:Go 1.22+,以及 Haira 运行时的完整依赖。MCP 服务器可与 MCP 客户端协作,无需额外的前端依赖。
-
服务器配置(MCP 客户端需要的启动信息) 说明:MCP 客户端需要一个用于连接 MCP 服务器的配置信息。以下给出两种常见场景的描述,具体字段含义如下:
- server name:MCP 服务器的名称,用于标识与日志。
- command 与 args(stdio 模式时使用):用于启动 MCP 服务器进程的可执行路径及传递给服务器进程的参数。
- transport 与 endpoint(sse 模式时使用):指定传输方式及连接端点地址。 注意:以下信息仅用于 MCP 客户端配置示例说明,实际客户端实现可能不需要也不强制使用注释中的字段名。核心在于描述性字段即可帮助理解如何连接和使用服务器。
- SSE 模式示例(建议用于本地网络部署):
- server_name: "Haira MCP Server"
- transport: "sse"
- endpoint: "http://localhost:9000/sse"
- STDIO 模式示例(若以子进程方式集成 MCP 服务器):
- server_name: "Haira MCP Server"
- transport: "stdio"
- command: "/path/to/haira-binary"
- args: ["mcp"] 说明:MCP 客户端会基于以上字段决定以哪种传输方式连接 MCP 服务器,并据此建立初始化与后续的工具查询、调用等操作。
-
基本使用方法
- 启动 MCP 服务器后,MCP 客户端通过以下步骤与 Haira MCP 服务器交互:
- 连接建立:根据配置选择 stdio 或 SSE 传输方式。
- 初始化握手:发送 initialize 请求,获取服务器协议版本与能力信息。
- 工具查看与调用:请求工具列表(tools/list),随后可对指定工具发起调用(tools/call),以完成对资源或功能的访问。
- 安全与扩展:服务端负责会话管理、能力声明以及在必要时对传输协议进行扩展,支持将外部工具集成到 MCP 客户端的工作流中。
- 监控与日志:结合 Haira 的 Observe/Langfuse 体系,进行可观测性与遥测数据的收集。
- 常见问题处理
- 如连接失败,请检查传输类型配置、端点 URL 或子进程命令路径是否正确。
- 若服务器端有更新,请确保 MCP 客户端使用的工具描述和参数保持与服务端同步。
- 启动 MCP 服务器后,MCP 客户端通过以下步骤与 Haira MCP 服务器交互: