hotpath-meta-mcp-server
使用说明(Markdown 格式)
-
项目简介
- 该仓库中实现了一个基于 Model Context Protocol(MCP)的服务器端组件,作为 hotpath-rs 的扩展能力,提供向 LLM 客户端暴露性能数据的能力(如函数性能、通道/流/未来等数据的查询入口,以及相关的日志和统计信息)。
- MCP 服务以 JSON-RPC 风格与客户端通信,内置对多种数据类型的查询(函数时序/分配、通道/流/未来、线程等),并通过简化的 HTTP 服务暴露端点与可选鉴权进行安全访问。
-
主要功能点
- 提供 MCP 工具(Tools)接口,用于查询函数时序、分配统计、通道/流/未来等数据,以及相关的日志记录。
- 提供资源访问能力,聚合并暴露对资源、数据流和线程等的监控信息。
- 基于 JSON-RPC 的请求/响应模型,客户端可通过标准化接口获取数据。
- 服务器端会话管理、能力声明、以及可选的鉴权保护(通过环境变量开启鉴权)。
- 通过嵌入式实现方式(不是独立可执行文件),可在支持热路径的应用中集成,端口默认 6781,输出路径、日志等可通过配置控制。
-
安装步骤
- 将项目在包含 hotpath-meta 的 Rust 应用中编译集成(MCP 服务是 hotpath-meta 的一部分,通常随应用程序一起运行,而非独立的独立二进制)。
- 确保在运行应用时开启环境变量配置:
- HOTPATH_META_MCP_PORT:MCP 服务器监听端口,默认 6781。
- HOTPATH_META_MCP_AUTH_TOKEN(可选):若设置,将开启基于 Authorization 的简单鉴权。
- 在你的应用入口(包含热路径 profiling 的运行时)中确保 MCP 服务被初始化并处于运行状态(一般通过在应用启动后自动创建,或由模型代理在需要时调用启动逻辑)。
- MCP 客户端侧无需实现细节,仅需要指定服务器地址与认证信息进行连接。
-
服务器配置(示例说明,非代码) 说明:MCP 服务器作为应用的一部分运行,端口和鉴权通过环境变量控制。以下为可用的配置信息字段与含义,实际部署时请将字段填入你的应用配置中(JSON 形式): { "server_name": "hotpath-meta-mcp", "command": "嵌入式服务(在你的应用二进制中运行,无独立可执行文件)", "args": [], "endpoint": "http://localhost:6781/mcp", "auth": { "enabled": true/false, "token_env": "HOTPATH_META_MCP_AUTH_TOKEN" }, "notes": "MCP 服务通过 /mcp 路径暴露 JSON-RPC 接口,HTTP 服务端口默认 6781;如需要,请通过 HOTPATH_META_MCP_PORT/ HOTPATH_META_MCP_AUTH_TOKEN 等环境变量进行配置与鉴权。" }
-
基本使用方法
- 启动应用:确保应用在运行时已经包含 MCP 服务组件,并通过 HOTPATH_META_MCP_PORT 等变量进行配置。
- 连接 MCP 客户端:将客户端指向 http://<服务器地址>:<端口>/mcp,使用 MCP 的 JSON-RPC 请求来读取资源、调用工具、获取 Prompts 等。
- 使用示例(客户端工作流):
- 查询函数时序和分配数据,用于发现热点和内存分配热区。
- 查询通道/流/未来的统计与日志,监控数据流管线的健康状况。
- 如开启鉴权,必须在请求头中提供正确的 Authorization 信息。
- 退出与清理:在需要关闭 MCP 服务时,确保应用正常停机,确保相关后台线程退出并完成最后一次数据导出(如有配置)。
-
运行与调试要点
- 端口与鉴权通过环境变量控制,确保部署环境与客户端配置一致。
- MCP 服务路径固定为 /mcp,客户端通过该路径进行 JSON-RPC 调用。
- 如需在 CI/生产环境中使用,请配置 HOTPATH_META_MCP_PORT、HOTPATH_META_MCP_AUTH_TOKEN 以实现可控的访问控制。
-
备注
- MCP 功能在该仓库内以热路径分析系统的一部分实现,属于嵌入式服务器能力,而非独立的可执行文件。实际部署时通常将其作为应用的一部分打包、启动和管理。