MCP Hangar 服务端实现
使用说明
-
项目简介
- MCP Hangar 服务端是一套完整的后端框架,旨在为大型语言模型客户端提供标准化的上下文信息和能力:资源管理(数据与数据访问)、工具注册与执行(外部功能调用)、以及 Prompt 模板的定义与渲染。服务器通过 JSON-RPC 与客户端通信,支持多种传输模式(如标准输入输出、HTTP/WebSocket 等),并具备健康检查、观测、日志与可扩展的插件体系。
-
主要功能点
- 资源与数据访问:提供对资源的托管与读取能力,方便 LLM 客户端获取所需上下文数据。
- 工具注册与执行:注册可调用的外部工具,LLM 客户端可通过统一接口调用工具实现外部功能。
- Prompt 模板与交互模式:支持定义和渲染可定制的提示模板,适配不同的交互场景。
- JSON-RPC 通信:客户端通过标准的 JSON-RPC 请求与服务器交互,得到结构化的 JSON 响应。
- 会话与能力声明:服务器端负责会话、能力声明、以及多提供者的统一管理。
- 多传输协议:支持 stdio、HTTP(SSE/WebSocket 等)等传输模式,便于不同桌面端与云端客户端使用。
- 高并发与可扩展性:内置并发控制、并发上限、热加载、健康检查和可观测性,适合大规模部署。
- 观测与告警:内置指标与日志系统,便于性能与健康监控。
-
安装与运行步骤
- 依赖与环境
- Python 3.11 及以上。
- 需要安装的依赖包通常通过配置文件或包管理器安装(仓库中包含 Hyper-link/CLI/Runtime 初始化代码,实际部署时请按项目文档进行依赖安装)。
- 启动服务器
- 通过命令行入口启动服务,默认情形通常以 stdio 模式启动以兼容 Claude Desktop 等桌面端。
- 或使用 HTTP 模式启动以便通过网络调用(需配置跨域、安全认证等)。
- 运行示例
- 以配置文件启动:mcp-hangar serve --config ~/.config/mcp-hangar/config.yaml
- 以默认配置启动(若已内置 starter bundle/提供者):mcp-hangar serve
- 运行前置条件
- 确保配置文件中正确注册提供者、资源、工具及认证策略等。
- 若使用 HTTP/WS 模式,请确保网络可达、端口开放,并根据需求启用认证机制。
- 依赖与环境
-
服务器配置(针对 MCP 客户端的启动信息,客户端需读取该配置以建立连接) 说明:MCP 客户端需要知道 MCP 服务器的启动命令及参数,以便在客户端侧配置并发调用与连接。
- server name: hangar
- command: ["mcp-hangar", "serve"]
- args: ["--config", "~/.config/mcp-hangar/config.yaml"] 备注:可根据实际部署替换为你本地/服务器上的配置文件路径与需要的参数。该配置用于告知客户端如何启动并连接到 MCP Hangar 服务器以获取资源、工具和 prompts 的上下文信息。
- 说明注释:以上信息用于客户端侧的自动化接入配置,帮助快速接入服务器。客户端本身不需要实现服务器逻辑,只需要知道如何启动并与该服务器建立 JSON-RPC 通信即可。
-
基本使用方法
- 流程概要
- 启动服务:按照配置启动服务器(标准输入输出模式或 HTTP 模式)。
- 通过客户端请求资源、调用工具、获取 Prompt 等,服务器返回结构化的 JSON-RPC 响应。
- 客户端可以通过并发调用实现多工具的并行执行,服务器按规则进行处理并返回聚合结果。
- 典型场景
- 提供给 LLM 客户端上下文与工具执行能力,以实现复杂的自我增强与推理工作流。
- 支持多提供者并发执行、热加载、健康检查等能力,适合大规模多租户场景。
- 流程概要