arm-migrate-mcp
Analyzes, plans, and benchmarks LLM workload migration from x86 to Arm64, generating measurable speedups using free GitHub Arm runners.
README
Arm-Migrate MCP
Migrate your LLM workload to Arm — and prove the speedup with real numbers.
Arm-Migrate is an MCP server plus a GitHub Actions benchmark harness. Connect it to any MCP client (Claude Code, Claude Desktop, …) and ask it to migrate an LLM inference workload to Arm64. It will:
- Analyze the workload (
analyze_workload) — scans Dockerfiles, compose files, and dependency lists for migration blockers: x86-pinned base images, CUDA-only stacks, missing quantization, arch-specific wheels. - Plan the migration (
generate_migration_plan) — emits ready-to-commit artifacts: an arm64 Dockerfile built around llama.cpp with KleidiAI kernels, a CI benchmark workflow, recommended quantization (Q4_0 for KleidiAI's int8mm/dotprod paths), and a migration checklist. - Measure (
trigger_benchmark/fetch_benchmark_results) — runs a 3-way benchmark matrix on GitHub's freeubuntu-24.04-armrunners: Arm64 + KleidiAI vs Arm64 baseline vs x86 baseline, usingllama-benchwith repetitions and captured CPU feature flags. - Report (
generate_report) — turns the raw JSON artifacts into a migration report: prompt-processing and token-generation tokens/sec, deltas, hardware context, and a go/no-go recommendation.
Zero-cost, fully reproducible: everything runs on free public-repo CI. No GPUs, no cloud account, no API keys.
Measured results (Neoverse-N2, free GitHub Arm64 runners)
Qwen2.5-0.5B-Instruct, llama-bench, 5 repetitions, 4 threads. Full reports with stddev and hardware context: Q4_0 · Q8_0.
| Comparison | Prompt proc. | Generation |
|---|---|---|
| Arm optimized kernels vs naive Arm build (Q4_0) | +131% | +44% |
| KleidiAI vs default kernels (Q4_0) | ~0% | ~0% |
| KleidiAI vs default kernels (Q8_0) | +59% | +15% |
| Arm64+KleidiAI vs x86 runner (Q8_0) | +269% | +155% |
The practical guidance that falls out: Q4_0 is fast on Arm out of the box
(mainline repack kernels); Q8_0 leaves large gains on the table unless you
build with -DGGML_CPU_KLEIDIAI=ON. Arm64 wins token generation — the
axis that dominates chat/agent serving cost — across every silicon draw we
measured; the x86 prompt-processing picture depends on whether GitHub's
mixed pool hands you AVX-512 (see the variance disclosure in the reports).
Why this matters
Arm64 cloud (Graviton, Axion, Cobalt, Ampere) is routinely the cheapest compute per vCPU, and KleidiAI makes CPU-only LLM inference genuinely usable — but teams don't migrate because they can't predict what their workload gains. Arm-Migrate closes that gap: the agent hands you the migration plan and the measured numbers in one conversation.
Quickstart
npm install && npm run build
Register with your MCP client (Claude Code shown):
claude mcp add arm-migrate -- node <path>/dist/index.js
Then ask: "Analyze this Dockerfile for Arm migration and generate a plan."
To reproduce our benchmark numbers: fork, enable Actions, run the
arm-bench workflow (workflow_dispatch) — the report lands in the run's
artifacts and job summary.
Repository layout
src/ MCP server (TypeScript)
bench/ benchmark scripts + report generator (no deps)
templates/ generated migration artifacts (Dockerfile.arm64, …)
.github/ the arm-bench harness itself
Hackathon
Built for Arm Create: AI Optimization Challenge 2026 (Track 2 — Cloud AI). See RULES.md for the rules digest and DEVLOG.md for an honest build log.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.