You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: Simplify Arm migration with the Docker MCP ToolKit and Arm MCP Server
2
+
title: Simplify Arm migration with the Docker MCP Toolkit and Arm MCP Server
3
3
weight: 2
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -28,8 +28,8 @@ When architecture-specific optimizations are present, migration may involve:
28
28
- Identifying x86-specific intrinsics or assembly
29
29
- Updating compiler flags and build configurations
30
30
- Mapping AVX2 operations to appropriate NEON equivalents
31
-
- Rewriting vectorized code and adjusting loop structures.
32
-
- Updating Dockerfiles, base images, and compiler flags.
31
+
- Rewriting vectorized code and adjusting loop structures
32
+
- Updating Dockerfiles, base images, and compiler flags
33
33
- Validating correctness and performance on Arm systems
34
34
35
35
These steps are well understood, but they can require careful review across code, build scripts, and container configurations.
@@ -38,42 +38,51 @@ These steps are well understood, but they can require careful review across code
38
38
39
39
The Docker MCP Toolkit is a management interface in Docker Desktop that lets you discover, configure, and run containerized MCP (Model Context Protocol) servers. It connects these servers to AI coding assistants through a unified gateway.
40
40
41
-
For Arm migration, three MCP servers work together:
41
+
## MCP servers for Arm migration
42
+
43
+
Three MCP servers work together to support the migration workflow:
44
+
45
+
**Arm MCP Server**
46
+
47
+
Provides migration-focused tools:
48
+
-`migrate_ease_scan` detects x86-specific code and compiler flags
49
+
-`check_image` and `skopeo` verify container architecture support
50
+
-`knowledge_base_search` accesses learning resources, Arm intrinsics, and software version compatibility
Enables Git repository operations including creating pull requests, managing branches, and committing changes.
56
+
57
+
**Sequential Thinking MCP Server**
58
+
59
+
Helps the AI assistant break down complex migration decisions into logical steps.
42
60
43
-
-**Arm MCP Server**:
44
-
Provides migration-focused tools, including:
45
-
-`migrate_ease_scan` for detecting x86-specific code and compiler flags
46
-
-`check_image` and `skopeo` for verifying container architecture support
47
-
-`knowledge_base_search` for a knowledge base of learning resources, Arm intrinsics, and software version compatibility
48
-
-`mca` for microarchitectural performance analysis
49
-
50
-
-**GitHub MCP Server**: Enables Git repository operations including creating pull requests, managing branches, and committing changes.
51
-
-
52
-
-**Sequential Thinking MCP Server**: Helps the AI assistant break down complex migration decisions into logical steps.
53
61
54
62
## How AI-assisted migration works
55
63
56
64
When connected to the Docker MCP Toolkit, an AI coding assistant like GitHub Copilot can coordinate a structured migration workflow:
57
65
58
-
1. Verify whether container base images support `linux/arm64` using `check_image` or `skopeo`.
59
-
2. Scan the codebase with `migrate_ease_scan` to identify AVX2 intrinsics, x86-specific flags, and other portability considerations.
60
-
3. Use `knowledge_base_search` to find appropriate Arm SIMD equivalents for every x86 intrinsic.
61
-
4. Refactor the code with architecture-specific accuracy.
62
-
5. Update Dockerfiles and build configurations for Arm comptibility.
63
-
6. Create a pull request with the proposed changes using the GitHub MCP Server.
66
+
- Verify whether container base images support `linux/arm64` using `check_image` or `skopeo`
67
+
- Scan the codebase with `migrate_ease_scan` to identify AVX2 intrinsics, x86-specific flags, and other portability considerations
68
+
- Use `knowledge_base_search` to find appropriate Arm SIMD equivalents for every x86 intrinsic
69
+
- Refactor the code with architecture-specific accuracy
70
+
- Update Dockerfiles and build configurations for Arm compatibility
71
+
- Create a pull request with the proposed changes using the GitHub MCP Server
64
72
65
-
## What you will build in this Learning Path
73
+
## The demo application
66
74
67
-
In this Learning Path, you will migrate a real-world legacy application - a matrix multiplication benchmark written with AVX2 intrinsics for x86 - to Arm64 using GitHub Copilot and Docker MCP Toolkit.
75
+
This Learning Path uses a real-world example: a matrix multiplication benchmark written in C++ with AVX2 intrinsics for x86. You'll migrate it to Arm64 using the AI-assisted workflow described above.
68
76
69
77
The demo repository is available at [github.com/JoeStech/docker-blog-arm-migration](https://github.com/JoeStech/docker-blog-arm-migration).
70
78
71
-
You will:
79
+
By the end of this Learning Path, you'll have a working Arm64 container with NEON-optimized code and an automated pull request containing all migration changes.
80
+
81
+
## What you've learned and what's next
72
82
73
-
1. Set up Docker MCP Toolkit with the Arm, GitHub, and Sequential Thinking MCP servers.
74
-
2. Connect VS Code with GitHub Copilot to the MCP Gateway.
75
-
3. Analyze the x86-specific portions of the codebase.
76
-
4. Use AI-assisted MCP workflows to update intrinsics and container configuration.
77
-
5. Review and validate the pull request generated by the AI agent.
83
+
You now understand:
84
+
- Why Arm migration requires more than rebuilding containers when architecture-specific code is present
85
+
- How the Docker MCP Toolkit connects AI assistants to specialized migration tools
86
+
- The structured workflow that GitHub Copilot uses to automate migration tasks
78
87
79
-
In the next section, you will install and configure the Docker MCP Toolkit.
88
+
Next, you'll install and configure the Docker MCP Toolkit with the three required MCP servers.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/docker-mcp-toolkit/2-setup.md
+26-20Lines changed: 26 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,23 +10,23 @@ layout: learningpathall
10
10
11
11
Make sure the following tools are installed:
12
12
13
-
- Docker Desktop 4.59 or later.
14
-
- VS Code with the GitHub Copilot extension.
15
-
- A GitHub account with a Personal Access Token(PAT) that allows repository access.
16
-
- A machine with at least 8 GB RAM (16 GB recommended).
13
+
- Docker Desktop 4.59 or later
14
+
- VS Code with the GitHub Copilot extension
15
+
- A GitHub account with a Personal Access Token(PAT) that allows repository access
16
+
- A machine with at least 8 GB RAM (16 GB recommended)
17
17
18
-
You will use Docker Desktop to host MCP servers locally, and VS Code with GitHub Copilot to invoke those servers through the MCP Gateway.
18
+
You'll use Docker Desktop to host MCP servers locally, and VS Code with GitHub Copilot to invoke those servers through the MCP Gateway.
19
19
20
20
## Enable the Docker MCP Toolkit
21
21
22
22
The MCP Toolkit allows Docker Desktop to run and manage MCP (Model Context Protocol) servers, which expose structured tools that AI assistants can call.
23
23
24
-
1. Open Docker Desktop.
25
-
2. Go to **Settings** > **Beta features**.
26
-
3. Toggle **Enable Docker MCP Toolkit** on.
27
-
4. Click**Apply**.
24
+
- Open Docker Desktop
25
+
- Go to **Settings** > **Beta features**
26
+
- Toggle **Enable Docker MCP Toolkit** on
27
+
- Select**Apply**
28
28
29
-
After a few seconds, the**MCP Toolkit** tab appears in the left sidebar.
29
+
The**MCP Toolkit** tab appears in the left sidebar.
30
30
31
31
## Add the required MCP servers
32
32
@@ -55,9 +55,9 @@ Search for **GitHub Official** in the catalog and add the [GitHub MCP Server](ht
55
55
56
56
Configure authentication:
57
57
58
-
1. Select the GitHub Official server.
59
-
2. Choose **Personal Access Token** as the authentication method.
60
-
3. Enter your GitHub token from **GitHub Settings** > **Developer Settings** > **Personal access tokens**.
58
+
- Select the GitHub Official server
59
+
- Choose **Personal Access Token** as the authentication method
60
+
- Enter your GitHub token from **GitHub Settings** > **Developer Settings** > **Personal access tokens**
61
61
62
62
This server lets GitHub Copilot create pull requests, manage issues, and commit changes directly to your repositories.
63
63
@@ -69,10 +69,10 @@ No configuration is needed. This server helps GitHub Copilot break down complex
69
69
70
70
## Connect VS Code to the MCP Gateway
71
71
72
-
1. In Docker Desktop, go to **MCP Toolkit** > **Clients** tab.
73
-
2. Scroll to **Visual Studio Code** and click**Connect**.
74
-
3. Open VS Code and click the **Extensions** icon in the left toolbar.
75
-
4. Find **MCP_DOCKER**, click the gear icon, and click**Start Server**.
72
+
- In Docker Desktop, go to **MCP Toolkit** > **Clients** tab
73
+
- Scroll to **Visual Studio Code** and select**Connect**
74
+
- Open VS Code and select the **Extensions** icon in the left toolbar
75
+
- Find **MCP_DOCKER**, select the gear icon, and select**Start Server**
76
76
77
77
## Verify the connection
78
78
@@ -82,14 +82,20 @@ Open GitHub Copilot Chat in VS Code and ask:
82
82
What Arm migration tools do you have access to?
83
83
```
84
84
85
-
If the setup is correct, Copilot will list tools from:
85
+
If the setup is correct, Copilot lists tools from:
86
86
87
87
- Arm MCP Server
88
88
- GitHub MCP Server
89
89
- Sequential Thinking MCP Server
90
90
91
91
This confirms that tool invocation through the MCP Gateway is working.
92
92
93
-
Your environment is now ready for AI-assisted migration.
93
+
## What you've learned and what's next
94
94
95
-
In the next section, you will examine the demo application and identify the architecture-specific elements that require adaptation for Arm64.
95
+
You have:
96
+
- Enabled the Docker MCP Toolkit in Docker Desktop
97
+
- Configured three MCP servers: Arm MCP Server, GitHub MCP Server, and Sequential Thinking MCP Server
98
+
- Connected VS Code with GitHub Copilot to the MCP Gateway
99
+
- Verified that Copilot can access migration tools
100
+
101
+
Next, you'll examine the demo application to identify x86-specific code that needs adaptation for Arm64.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/docker-mcp-toolkit/3-understand-the-demo.md
+14-8Lines changed: 14 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Understand the legacy x86 demo application
2
+
title: Examine x86 AVX2 intrinsics in the demo application
3
3
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -77,15 +77,15 @@ To run this code on Arm, several adjustments are required:
77
77
78
78
2.**Intrinsic mapping**: Each AVX2 intrinsic must be mapped to an Arm equivalent.
79
79
For example:
80
-
-`_mm256_setzero_pd()` creates a 256-bit zero vector of four doubles(Arm NEON is 128-bit).
80
+
-`_mm256_setzero_pd()` creates a 256-bit zero vector of four doubles. Arm NEON uses 128-bit registers.
81
81
-`_mm256_loadu_pd()` loads 4 doubles at once (NEON loads 2 with `vld1q_f64`).
82
82
-`_mm256_add_pd()` and `_mm256_mul_pd()` are 256-bit operations (NEON uses 128-bit equivalents).
83
83
-`_mm256_extractf128_pd()` extracts the high 128 bits (not needed on NEON).
84
84
85
-
4.**Vector width differences**: AVX2 operates on 256-bit registers (four double-precision values). NEON operates on 128-bit registers (two double-precision values). This affects:
86
-
- Loop stride
87
-
- Accumulation logic
88
-
- Horizontal reduction patterns
85
+
3.**Vector width differences**: AVX2 operates on 256-bit registers (four double-precision values). NEON operates on 128-bit registers (two double-precision values). This affects:
86
+
- Loop stride
87
+
- Accumulation logic
88
+
- Horizontal reduction patterns
89
89
90
90
4.**Horizontal reduction logic**: The AVX2 pattern:
91
91
@@ -99,5 +99,11 @@ is specific to x86 register structure. On Arm, reduction is implemented using NE
99
99
On newer Arm platforms supporting SVE or SVE2 (for example Neoverse V1/V2 based platforms), wider vector lengths may be available. SVE uses a vector-length-agnostic (VLA) model, which differs from fixed-width AVX2 and NEON programming. The Arm MCP Server knowledge base can help determine the appropriate approach for your target platform.
100
100
{{% /notice %}}
101
101
102
-
In the next section, you will use GitHub Copilot together with the Docker MCP Toolkit to analyze these elements automatically and generate Arm-compatible updates.
103
-
In the next section, you will use GitHub Copilot with the Docker MCP Toolkit to automate the entire migration.
102
+
## What you've learned and what's next
103
+
104
+
You have:
105
+
- Examined a legacy x86 application with AVX2 intrinsics
106
+
- Identified the architecture-specific elements: base image, compiler flags, SIMD headers, and intrinsic functions
107
+
- Understood how vector width differences between AVX2 (256-bit) and NEON (128-bit) affect the migration approach
108
+
109
+
Next, you'll use GitHub Copilot with the Docker MCP Toolkit to automate the migration process.
| Manual migration (install tools, research intrinsics, rewrite code, debug, document) | Several hours to days, depending on complexity |
72
+
| Docker MCP Toolkit + GitHub Copilot (prompt, review, merge) |Reduced to minutes for initial migration, plus review time|
73
73
74
74
Actual time savings depend on codebase size and complexity, but structured tool invocation reduces the need for manual documentation lookup and repetitive edits.
75
75
@@ -117,14 +117,14 @@ The Docker MCP Toolkit and Arm MCP Server support more than the example migratio
117
117
- **Knowledge base**: The `knowledge_base_search` tool covers all content from [learn.arm.com](https://learn.arm.com) Learning Paths, intrinsics documentation, and software compatibility information.
118
118
- **Dynamic MCP**: AI agents can discover and add new MCP servers from the Docker MCP Catalog during a conversation without manual configuration.
119
119
120
-
## Summary
120
+
## What you've learned
121
121
122
122
In this Learning Path, you:
123
123
124
-
1. Installed and configured the Docker MCP Toolkit with the Arm MCP Server, GitHub MCP Server, and Sequential Thinking MCP Server.
125
-
2. Connected VS Code with GitHub Copilot to the MCP Gateway.
126
-
3. Examined architecture-specific elements in a legacy x86 AVX2 application.
127
-
4. Used AI-assisted MCP tools to analyze, refactor, and update the codebase for Arm64.
128
-
5. Built and validated the migrated application on Arm64.
124
+
-Installed and configured the Docker MCP Toolkit with the Arm MCP Server, GitHub MCP Server, and Sequential Thinking MCP Server
125
+
-Connected VS Code with GitHub Copilot to the MCP Gateway
126
+
-Examined architecture-specific elements in a legacy x86 AVX2 application
127
+
-Used AI-assisted MCP tools to analyze, refactor, and update the codebase for Arm64
128
+
-Built and validated the migrated application on Arm64
129
129
130
130
The Docker MCP Toolkit enables AI assistants to invoke structured migration tools inside the containerized Arm MCP server. This approach reduces manual lookup and repetitive refactoring work while keeping developers in control of review and validation.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/docker-mcp-toolkit/_index.md
-8Lines changed: 0 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,5 @@
1
1
---
2
2
title: Automate x86 to Arm Migration with Docker MCP Toolkit, VS Code and GitHub Copilot
3
-
4
-
draft: true
5
-
cascade:
6
-
draft: true
7
3
8
4
description: Learn how to use the Docker MCP Toolkit with the Arm MCP Server and GitHub Copilot to automate container and code migration from x86 to Arm64. Through a hands-on example, migrate a legacy C++ application with AVX2 intrinsics to Arm NEON.
9
5
@@ -44,10 +40,6 @@ operatingsystems:
44
40
- macOS
45
41
46
42
further_reading:
47
-
- resource:
48
-
title: "Automate x86 to Arm Migration with Docker MCP Toolkit, VS Code, and GitHub Copilot"
0 commit comments