Migrating workloads from x86 to Arm64 is no longer optional – it’s a cost-saving imperative. With AWS Graviton, Azure Cobalt, and Google Cloud Axion going mainstream, organizations are seeing 20–40% cost savings and better performance. But actually migrating legacy applications? That’s where things get painful.
The Problem

Consider a C++ matrix multiplication benchmark built with AVX2 intrinsics for x86-64. Migrating it to Arm involves dealing with x86-only base images (like centos:6 with no Arm64 support), architecture-specific compiler flags (-mavx2), and dozens of x86 SIMD intrinsics (_mm256_loadu_pd, _mm256_add_pd, etc.) that have no direct Arm equivalents. Manual migration? Expect 5–7 hours of tedious, error-prone work per application.
The Solution: Docker MCP Toolkit + Arm MCP Server
Docker MCP Toolkit connects specialized migration tools directly to GitHub Copilot inside VS Code. Instead of general advice like “convert AVX2 to NEON,” Copilot now executes the migration using real tools running in isolated Docker containers.
Here’s what the automated workflow looks like:

Phase 1 — Image Analysis: The skopeo tool checks your base Docker image for Arm64 compatibility. CentOS 6 has no Arm builds? Flagged instantly.
Phase 2 — Code Scanning: The migrate_ease_scan tool analyzes your C++ source, pinpointing every x86 intrinsic, architecture-specific header, and incompatible compiler flag — down to the exact file and line number.
Phase 3 — Intrinsic Conversion: The knowledge_base_search tool queries official Arm documentation from learn.arm.com to find correct NEON equivalents. _mm256_loadu_pd() becomes vld1q_f64(), loop strides adjust for 128-bit NEON vectors, and so on.
Phase 4 — Pull Request: GitHub MCP Server creates a PR with all changes: updated Dockerfile (swapping centos:6 for ubuntu:22.04 with multi-arch support), converted intrinsics, and Arm-compatible compiler flags.
Total time: ~25–30 minutes instead of 5–7 hours.
Setting It Up
The setup is straightforward:
- Enable Docker MCP Toolkit in Docker Desktop under Settings → Beta Features.
- Add three MCP servers from the catalog: Arm MCP Server (migration tools), GitHub Official (PR management), and Sequential Thinking (complex task planning).
- Connect VS Code as a client through the MCP Toolkit’s “Clients” panel.
- Verify by asking GitHub Copilot: “What Arm migration tools do you have access to?”
Once connected, paste the migration prompt into Copilot Chat and watch it orchestrate the entire workflow — scanning, converting, and submitting a PR — all through natural conversation.
Why This Matters
The key shift here isn’t just speed. It’s that developers stay in their existing workflow — VS Code, GitHub Copilot, Git — while accessing containerized, specialized tooling. Every migration runs in isolated Docker containers, making results consistent, secure, and reproducible across teams.
For most applications, a simple docker buildx build --platform linux/arm64 is enough. But when you hit that legacy app with hand-optimized x86 assembly and architecture-specific intrinsics, Docker MCP Toolkit with the Arm MCP Server becomes essential.
The future of migration isn’t manually porting every application. It’s having an AI assistant that can execute real tools across your entire stack — securely, reproducibly, and at the speed of conversation.
Here’s the complete blog post: https://www.docker.com/blog/automate-arm-migration-docker-mcp-copilot/