msprof-mcp

msprof-mcp

MCP server for analyzing Ascend PyTorch Profiler performance data. Enables users to identify performance bottlenecks, analyze operator time, view communication overhead, and query trace data via natural language.

Category
访问服务器

README

msprof mcp

简介

msprof mcp 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为大语言模型 (LLM) 提供分析 Ascend PyTorch Profiler 采集性能数据的能力。通过一系列内置工具,它可以帮助用户快速定位性能瓶颈、分析算子耗时、查看通信开销以及进行 Trace 数据的深度查询。

目录结构

msprof_mcp/
├── pyproject.toml            # 项目配置文件 (build-system, dependencies)
├── src/
│   └── msprof_mcp/
│       ├── __init__.py
│       ├── server.py                 # MCP 服务器入口
│       └── tools/                    # 工具包
│           ├── msprof_analyze_cmd.py
│           ├── csv_analyze.py
│           ├── json_analyze.py
│           └── trace_view/
└── README.md

MCP 能力说明

本服务提供以下核心能力,支持多维度性能数据分析。您可以直接在对话中使用自然语言(如示例 Prompt)来调用这些工具。

1. 总体分析 (msprof-analyze)

工具名称 描述 示例 Prompt
msprof_analyze_advisor 调用 msprof-analyze advisor 提供全方位性能建议(计算/调度瓶颈)。 "分析 /path/to/data 目录下的性能数据,找出主要瓶颈。"

2. TimeLine 分析 (trace_view)

工具名称 描述 示例 Prompt
analyze_overlap 分析计算、通信与调度的重叠情况,判断负载特征(计算/通信密集型)。 "分析 /path/to/trace_view.json 的计算和通信重叠情况。"
find_slices 搜索 Trace 中的特定 Slice(算子/函数),支持模糊匹配和时间范围过滤。 "在 /path/to/trace_view.json 中查找所有 'MatMul' 算子。"
get_flow_data 根据时间范围获取 Flow 关联的 CPU/NPU 算子明细,支持按 cpu_op 或 npu_op 入口查询;结果过大时可通过 result_output_path 导出 CSV。 "获取 /path/to/trace_view.json 中 1000000000 到 2000000000 时间范围内的 NPU 算子关联 Flow 数据,并导出到 /tmp/flow_data.csv。"
execute_sql_query 执行自定义 SQL 查询,支持 Slice/Thread/Process 等表的深度分析。 "对 /path/to/trace_view.json 执行 SQL 查询,统计耗时超过 1ms 的 Slice 数量。"

3. 算子性能分析 (CSV)

工具名称 描述 示例 Prompt
analyze_kernel_details 分析 kernel_details.csv,提供耗时分布、Top N 算子、设备分布等。 "分析 /path/to/kernel_details.csv,列出耗时最长的 10 个算子。"
get_operator_details 查询特定算子(按名称或类型)的详细执行信息。 "从 /path/to/kernel_details.csv 中获取 'FlashAttention' 算子的详细信息。"
analyze_op_statistic 分析 op_statistic.csv,提供调用次数、总耗时及 Core 类型分布。 "统计 /path/to/op_statistic.csv 中的算子调用次数和总耗时。"
get_op_type_details 查询特定类型算子或 Core 类型算子的详细统计数据。 "查看 /path/to/op_statistic.csv 中所有 'AI_CORE' 类型的算子统计。"
search_csv_by_field 通用 CSV 字段搜索工具,支持按列值过滤。 "在 /path/to/file.csv 的 'Name' 列中搜索包含 'Conv' 的行。"

4. 通信性能分析 (JSON)

工具名称 描述 示例 Prompt
analyze_communication 分析 communication_matrix.json,识别 P2P/集合通信瓶颈及慢链路。 "分析 /path/to/communication_matrix.json,找出带宽利用率低的链路。"
analyze_communication_trace 分析 communication.json,提供通信操作的时间分解(Transit, Wait)和带宽详情。 "分析 /path/to/communication.json,查看通信操作的等待时间分布。"

5. 配置信息查询

工具名称 描述 示例 Prompt
get_profiler_config 获取 profiler_info.json 中的配置信息(版本、软硬件环境)。 "读取 /path/to/profiler_info.json,查看 Profiler 配置版本。"

6. SQL执行

工具名称 描述 示例 Prompt
execute_sql 执行只读 SQL 并返回结果,当结果行数/返回字符数超阈值时会返回失败并提示收敛查询。 "对 /path/to/ascend_pytorch_profiler.db 执行 SQL:SELECT name, SUM(total_time) AS total FROM COMPUTE_TASK_INFO GROUP BY name LIMIT 20。"
execute_sql_to_csv 执行只读 SQL 并将全量结果保存为 CSV,只返回导出状态、路径和行数,不返回查询结果内容。 "将 /path/to/ascend_pytorch_profiler.db 中 SELECT * FROM TASK WHERE taskType='AI_CORE' 的结果导出到 /tmp/op_statistic_ai_core.csv。"

快速开始

方式一:直接运行 (PyPI)

如果您已安装 uv,可以直接运行以下命令启动服务:

uvx msprof-mcp

方式二:本地开发运行

# 1. 克隆代码仓库
git clone <repository_url>
cd msprof_mcp

# 2. 运行服务
uv run msprof-mcp

集成方法

集成到 Cherry Studio / Claude Desktop

在 MCP 配置 JSON 中添加如下配置。建议优先使用 PyPI 版本。

1. 使用 PyPI 版本 (推荐)

{
  "mcpServers": {
    "msprof-mcp": {
      "name": "msprof_mcp",
      "description": "msprof mcp server",
      "command": "uvx",
      "args": [
        "msprof-mcp"
      ],
      "env": {},
      "isActive": true,
      "type": "stdio"
    }
  }
}

2. 使用本地源码 (开发调试)

{
  "mcpServers": {
    "msprof-mcp-local": {
      "name": "msprof_mcp_local",
      "description": "msprof mcp server (local)",
      "command": "uv",
      "args": [
        "run",
        "msprof-mcp"
      ],
      "cwd": "/absolute/path/to/msprof_mcp", 
      "env": {},
      "isActive": true,
      "type": "stdio"
    }
  }
}

注意:使用本地源码时,请将 cwd 修改为您的实际项目路径。

日志说明

msprof-mcp 默认使用 WARNING 日志级别,避免在 stdio 集成场景下把 mcp.server.lowlevel.server 的请求级 INFO 日志打印到 Agent CLI/Cherry Studio/Claude Desktop 终端中。

如果需要排查问题,可以在 MCP 配置的 env 中显式开启更详细日志,例如:

{
  "MSPROF_MCP_LOG_LEVEL": "INFO"
}

可选值包括 DEBUG、INFO、WARNING、ERROR。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选