Skip to main content

MCP server for Ascend Profiler (msprof) analysis

Project description

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' 算子。"
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.dbSELECT * 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 修改为您的实际项目路径。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msprof_mcp-0.1.2.tar.gz (120.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

msprof_mcp-0.1.2-py3-none-win_amd64.whl (4.6 MB view details)

Uploaded Python 3Windows x86-64

msprof_mcp-0.1.2-py3-none-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

msprof_mcp-0.1.2-py3-none-manylinux_2_23_aarch64.whl (4.5 MB view details)

Uploaded Python 3manylinux: glibc 2.23+ ARM64

msprof_mcp-0.1.2-py3-none-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

msprof_mcp-0.1.2-py3-none-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

msprof_mcp-0.1.2-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file msprof_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: msprof_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 120.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for msprof_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 704e7f1abd3b0982effab64834781e2580c5a043be7bd8c61369859f28a23713
MD5 47370f6310ca0c0eb1cab86058b1ac2d
BLAKE2b-256 5510228930abdd25ab20f2b062ef88e54d85d8c82e1bbe5ab6546e0986af5e7a

See more details on using hashes here.

File details

Details for the file msprof_mcp-0.1.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: msprof_mcp-0.1.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0dc1ef63d78fceb8637661b7a54e760f9084218cc721ff57a6415ee48981bd17
MD5 903552e3e8a7840859b4d06d1a69601d
BLAKE2b-256 8cc7bd55ec998bb0c99e688e123537a83aa52eb88f44c54c837b3be0abb984a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for msprof_mcp-0.1.2-py3-none-win_amd64.whl:

Publisher: publish-release.yml on kali20gakki/msprof-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file msprof_mcp-0.1.2-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b89e167d4a93e5019241160cbcebf7bd865af23b54d6e3240e276f2265b17551
MD5 ad17de8d21d74adf363fbb25a84f2f6d
BLAKE2b-256 3b8ed91043ff0508f2de5a2a3b62a05777dca1cc864d8a7d353c5dad7e64637a

See more details on using hashes here.

Provenance

The following attestation bundles were made for msprof_mcp-0.1.2-py3-none-manylinux_2_34_x86_64.whl:

Publisher: publish-release.yml on kali20gakki/msprof-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file msprof_mcp-0.1.2-py3-none-manylinux_2_23_aarch64.whl.

File metadata

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-manylinux_2_23_aarch64.whl
Algorithm Hash digest
SHA256 6c3a5fa98929afa776836315b201be3c0d5740126eb2e422dc7c32b6ad4089d5
MD5 0a395ef60ceba4c2c368b6847416e333
BLAKE2b-256 4bb8577d3b8191936e9218a26f66c2bc1baeb396cf2651eca8c7e2b1ba4f9678

See more details on using hashes here.

Provenance

The following attestation bundles were made for msprof_mcp-0.1.2-py3-none-manylinux_2_23_aarch64.whl:

Publisher: publish-release.yml on kali20gakki/msprof-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file msprof_mcp-0.1.2-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 003a3b2d018bbdc5829b8ac01f328cbc6e9c0d77577b158639bc8e8bf3caf95b
MD5 d82cf6031c0d90db4a934df103aa05cc
BLAKE2b-256 e5fdab159a2df170b91dd22201cfcdcfef76096817fcf3411cc74c6ea2a2a569

See more details on using hashes here.

Provenance

The following attestation bundles were made for msprof_mcp-0.1.2-py3-none-macosx_15_0_x86_64.whl:

Publisher: publish-release.yml on kali20gakki/msprof-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file msprof_mcp-0.1.2-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d3410f49ac522ef53cb1443f0117e28b84e9975d08b5762dfdef52fdd592f2c3
MD5 63be65a48fa2373488cc4e16636eea8c
BLAKE2b-256 ffff62f2ffdf5969573433db9db10bc1007182c51f0c86abb3d2d4cb80a0e2fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for msprof_mcp-0.1.2-py3-none-macosx_15_0_arm64.whl:

Publisher: publish-release.yml on kali20gakki/msprof-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file msprof_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: msprof_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for msprof_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4dc42b0685f9164552a8053f76925298cb31a6676d9c459f6c934f1dab340277
MD5 9599a5ace54026c7bd8fcbdf07236e01
BLAKE2b-256 639cdb4699db1305ff0164320671b7b580069165570c76f5462387b760edd729

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page