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 功能在该仓库内以热路径分析系统的一部分实现,属于嵌入式服务器能力,而非独立的可执行文件。实际部署时通常将其作为应用的一部分打包、启动和管理。

服务器信息