arm-migrate-mcp

arm-migrate-mcp

Analyzes, plans, and benchmarks LLM workload migration from x86 to Arm64, generating measurable speedups using free GitHub Arm runners.

Category
Visit Server

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:

  1. 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.
  2. 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.
  3. Measure (trigger_benchmark / fetch_benchmark_results) — runs a 3-way benchmark matrix on GitHub's free ubuntu-24.04-arm runners: Arm64 + KleidiAI vs Arm64 baseline vs x86 baseline, using llama-bench with repetitions and captured CPU feature flags.
  4. 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured