MI25-tuning-MCP

MI25-tuning-MCP

Manages multi_llm-client operations for MI25/gfx900 GPUs, enabling configuration updates, inference execution, benchmarking, and performance log analysis via MCP tools.

Category
访问服务器

README

MI25-tuning-MCP

MI25 / gfx900 向け multi_llm-client 運用のための MCP サーバーです。


目的と責務

MI25-tuning-MCPクライアント・実験ワークフロー層 を担います。

担当する 担当しない
multi_llm-client の設定変更(安全な部分更新) GPU / ROCm / Ollama のインフラ観測
推論実行・ログ読取・要約 ROCm-ollama-mcp が担当
ノート記録

セットアップ

cd /home/limonene/ROCm-project/MI25-tuning-MCP
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

起動:

mi25-tuning-mcp

ツール一覧

ツール 概要
ping ヘルスチェック・パス確認
get_gpu_metrics rocm-smi 経由で MI25 の VRAM / 温度 / 使用率を取得(未導入でも非エラー返却)
list_presets gfx900 プリセット名とデフォルトパラメータ一覧
get_config config.json の読み取り
update_config allowlist キーを部分マージで更新(.bak 自動作成)
run_inference Rust クライアントでワンショット推論を実行
run_client_bench Rust クライアントの --bench を実行し、phase_summary 生成まで返却
run_client_bench_compare 2つの phase_summary.tsv を比較して差分 TSV を生成(成功/失敗ログを multi_llm-client/worklog に自動追記)
run_client_bench_report 既存 bench TSV から mode summary レポートを生成(tsv/markdown/json/all
read_perf_log JSONL ログの末尾 N 件を取得
read_inference_logs read_perf_log の別名(広域履歴参照用)
summarize_perf_log TTFT / tok/s / エラー率などを集計
list_dir ディレクトリ一覧(プロジェクトルート配下)
read_text / read_file テキストファイル読み取り(プロジェクトルート配下)
write_file ノートへの書き込み(Agents-note/ 配下限定)
run_client_check cargo check を実行してビルドエラーを確認
set_config_raw 設定の全体上書き(MI25_ENABLE_SET_CONFIG_RAW=1 で有効化、既定は無効)

環境変数

変数 既定値 説明
MI25_CLIENT_ROOT ../multi_llm-client Rust クライアントのディレクトリ
MI25_NOTES_ROOT ../Agents-note write_file の書き込み先ルート
MI25_MCP_AUDIT_LOG ./logs/tool-calls.jsonl 監査ログの出力先
MI25_ENABLE_SET_CONFIG_RAW 0 set_config_raw の有効化フラグ

安全制約

  • update_config: allowlist 外のキーは拒否。更新前に .bak を保存
  • write_file: Agents-note/ 配下のみ書き込み可
  • read_file / read_text / list_dir: プロジェクトルート配下のみ参照可
  • run_inference: タイムアウト必須、実行後に config.json を必ず復元
  • run_client_bench: mode allowlist を強制し、--bench 固定テンプレートのみ実行
  • run_client_bench_compare: 入出力 TSV パスを CLIENT_ROOT / PROJECT_ROOT 配下に限定
  • run_client_bench_report: 入出力 TSV/レポートパスを CLIENT_ROOT / PROJECT_ROOT 配下に限定
  • set_config_raw: 既定無効。明示的な環境変数が必要
  • subprocess: 固定コマンドテンプレートのみ使用(free-form shell 禁止)
  • 全ツール: 監査ログ JSONL に tool call を記録

Claude Code への接続

~/.claude/settings.jsonmcpServers に追加します:

{
  "mcpServers": {
    "mi25_tuning": {
      "command": "/home/limonene/ROCm-project/MI25-tuning-MCP/.venv/bin/mi25-tuning-mcp",
      "args": [],
      "cwd": "/home/limonene/ROCm-project/MI25-tuning-MCP",
      "env": {
        "MI25_CLIENT_ROOT": "/home/limonene/ROCm-project/multi_llm-client",
        "MI25_NOTES_ROOT": "/home/limonene/ROCm-project/Agents-note"
      }
    }
  }
}

または mcp-config.jsonollama-mcp-bridge 経由で使用することもできます。


Antigravity MCP 設定

Antigravity で使う場合は ~/.gemini/antigravity/mcp_config.jsonmcpServers を定義します。 テンプレートをコピーして実パスを展開します:

export ROCM_PROJECT_ROOT="/home/limonene/ROCm-project"
cp "${ROCM_PROJECT_ROOT}/MI25-tuning-MCP/mcp_config.template.json" \
  "${HOME}/.gemini/antigravity/mcp_config.json"
sed -i "s#<ROCM_PROJECT_ROOT>#${ROCM_PROJECT_ROOT}#g" \
  "${HOME}/.gemini/antigravity/mcp_config.json"
  • command は絶対パスを使用してください
  • 反映後は Antigravity の Language Server を再起動(または Window Reload)
  • Claude Code と併用する場合はプロジェクトルートの .mcp.json と内容を揃えると管理が楽です

動作確認

インストール後、以下の順で疎通を確認します:

ping → get_config → update_config → run_inference → read_perf_log → summarize_perf_log

bench 系の標準フロー:

run_client_bench (baseline) -> run_client_bench (side) -> run_client_bench_compare -> run_client_bench_report

成果物の既定保存先(MI25_CLIENT_ROOT=<project>/multi_llm-client の場合):

  • baseline/side TSV: <project>/multi_llm-client/worklog/mcp_bench_*
  • compare TSV: <project>/multi_llm-client/worklog/mcp_bench_compare_*
  • report TSV/MD/JSON: <project>/multi_llm-client/worklog/*_mode_summary.(tsv|md|json)
  • compare 成功追記: <project>/multi_llm-client/worklog/mcp_bench_compare_auto_summary_YYYY-MM-DD.md
  • compare 失敗追記: <project>/multi_llm-client/worklog/mcp_bench_compare_fail_YYYY-MM-DD.jsonl

テスト実行

cd /home/limonene/ROCm-project/MI25-tuning-MCP
source .venv/bin/activate
./tests/smoke.sh

# LLM 統合テストも実行する場合
MI25_RUN_LLM_INTEGRATION=1 ./tests/smoke.sh

# bench -> phase_summary -> compare の MCP 統合テストも実行する場合
MI25_RUN_BENCH_INTEGRATION=1 ./tests/smoke.sh

smoke.sh が実行するテスト:

  1. コンパイルチェック + ツール形状チェック
  2. tests/unit_direct_test.py — MCP 単体 / 失敗系 / サンドボックス統合
  3. tests/protocol_tools_test.py — stdio MCP プロトコル(tools/list / tools/call
  4. tests/llm_bridge_integration_test.py — ブリッジ経由 LLM 統合(MI25_RUN_LLM_INTEGRATION=1 で有効)
  5. tests/bench_flow_integration_test.py — MCP 経由 bench -> phase_summary -> compareMI25_RUN_BENCH_INTEGRATION=1 で有効)

関連ドキュメント

ドキュメント 内容
SPEC.md 仕様書(設計決定・安全制約・DoD)
MI25-tuning-MCP_TODO.md 実装状況・残課題(MI25_TODO集約)
docs/tool-spec.md ツール仕様詳細
vega_optimize.md Vega/gfx900 最適化の定性戦略メモ
vega_optimize-statistics.md Vega/gfx900 最適化の定量メモ(実測値)
agreement.md 正本合意書
ROCm-ollama-mcp インフラ層 MCP(GPU / ROCm / Ollama 観測)

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选