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
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/arm-mcp-server/1-overview.md
+28-12Lines changed: 28 additions & 12 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: Arm MCP Server Overview
2
+
title: Understand the Arm MCP Server for AI-driven x86-to-Arm migration
3
3
weight: 2
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -10,31 +10,42 @@ layout: learningpathall
10
10
11
11
The Arm MCP Server is a tool that enables AI-powered developer tools to become Arm cloud migration and optimization experts. It implements the Model Context Protocol (MCP), an open standard that allows AI assistants to access external tools and data sources.
12
12
13
+
Think of the Arm MCP Server as a bridge between AI coding assistants and Arm-specific migration and optimization tools. It allows AI agents to use real, structured capabilities instead of guessing.
14
+
13
15
By connecting your AI coding assistant to the Arm MCP Server, you gain access to Arm-specific knowledge, container image inspection tools, and code analysis capabilities that streamline the process of migrating applications from x86 to Arm.
14
16
15
17
## How to interact with the Arm MCP Server
16
18
17
-
There are multiple ways to interact with the Arm MCP Server, depending on your development environment and workflow:
19
+
The Arm MCP Server supports different interaction styles depending on the complexity of the migration task, from quick checks to fully automated workflows:
You can ask your AI assistant natural language questions, and it will automatically use the MCP tools when appropriate. For example:
22
29
23
30
```text
24
31
Check if the nginx:latest Docker image supports Arm architecture
25
32
```
26
33
27
-
### 2. Prompt Files
34
+
##Prompt files
28
35
29
36
Many AI coding tools support prompt files that provide structured instructions. These files can reference MCP tools and guide the AI through complex workflows like full codebase migrations.
30
37
31
-
### 3. Agentic Workflows
38
+
##Agentic workflows
32
39
33
40
Tools like GitHub Copilot Agent Mode, Claude Code, Kiro, and OpenAI Codex support autonomous agent workflows where the AI can execute multi-step migration tasks with minimal intervention. These fully agentic workflows can be combined with prompt files and direct chat to create an extremely powerful development system.
34
41
35
-
## Available Arm MCP Server Tools
42
+
## Available Arm MCP Server tools
43
+
44
+
The Arm MCP Server provides several specialized tools for migration and optimization, and these are detailed below.
36
45
37
-
The Arm MCP Server provides several specialized tools for migration and optimization:
46
+
{{% notice Note %}}
47
+
You don't need all of these tools immediately. You'll start by using image inspection and knowledge lookup tools, and encounter the others as workflows become more advanced.
48
+
{{% /notice %}}
38
49
39
50
### knowledge_base_search
40
51
@@ -74,11 +85,16 @@ Provides instructions for installing and using sysreport, a tool that obtains sy
74
85
75
86
## Setting up the Arm MCP Server
76
87
77
-
To use the Arm MCP Server with an AI coding assistant, you must configure the assistant to connect to the MCP server. This connection allows the assistant to query Arm-specific tools, documentation, and capabilities exposed through the Model Context Protocol (MCP).
88
+
To use the Arm MCP Server with an AI coding assistant, you need to configure the assistant to connect to the MCP server. Connecting your assistant allows it to query Arm-specific tools, documentation, and capabilities exposed through the Model Context Protocol (MCP).
89
+
78
90
The required configuration steps vary by AI coding assistant. Refer to the installation guides below for step-by-step instructions on connecting the following AI coding assistants to the Arm MCP server:
In this section, you've learned about the Arm MCP Server and its available tools for migration and optimization. You've also seen the different ways to interact with it: direct AI chat, prompt files, and agentic workflows.
83
99
84
-
Continue to the next section to see the Arm MCP Server in action.
100
+
In the next section, you'll use direct AI chat with the Arm MCP Server to check Docker base images for Arm compatibility.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/arm-mcp-server/2-docker-check.md
+15-12Lines changed: 15 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,24 @@
1
1
---
2
-
title: Direct AI Chat
2
+
title: Verify Docker image compatibility with Arm using AI
3
3
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Checking Base Images for Arm Compatibility
9
+
## Checking base images for Arm compatibility
10
10
11
11
This section demonstrates just one example of using direct AI chat with the Arm MCP Server. You can use similar natural language prompts to check library compatibility, search for Arm documentation, or analyze code for migration issues.
12
12
13
13
A common first step when migrating a containerized application to Arm is verifying that the base container images support the arm64 architecture. The Arm MCP Server simplifies this process by allowing you to ask this question directly using a natural language prompt, without manually inspecting image manifests or registry metadata.
14
14
15
-
## Example: Legacy CentOS 6 Application
15
+
Direct AI chat works best as a fast decision gate as it helps you rule out incompatible base images and configurations before investing time in deeper migration or automation work.
16
16
17
-
Consider an application built on CentOS 6, a legacy Linux distribution that has reached end of life (EOL). The following Dockerfile represents a typical x86-optimized, compute-heavy benchmark application that you might encounter when migrating older workloads.
17
+
## Example: Legacy CentOS 6 application
18
+
19
+
Consider an application built on CentOS 6, a legacy Linux distribution that has reached end of life (EOL). This example represents a typical x86-optimized, compute-heavy benchmark application that you might encounter when migrating older workloads.
20
+
21
+
Before examining the Dockerfile, note that it contains several x86-specific elements that need attention during migration: the `centos:6` base image (which might lack arm64 support), the `-mavx2` compiler flag for x86 AVX2 SIMD instructions, and C++ source files with x86 intrinsics.
18
22
19
23
Copy this Dockerfile into VS Code using GitHub Copilot or another agentic IDE connected to the Arm MCP Server:
20
24
@@ -73,19 +77,18 @@ RUN chmod +x start.sh
73
77
CMD ["./start.sh"]
74
78
```
75
79
76
-
This Dockerfile has several x86-specific elements:
77
-
- The `centos:6` base image
78
-
- The `-mavx2` compiler flag for x86 AVX2 SIMD instructions
79
-
- C++ source files containing x86 intrinsics (which you will examine in the next section)
80
-
81
-
## Using the Arm MCP Server to Check Compatibility
80
+
## Using the Arm MCP Server to check compatibility
82
81
83
82
With the Arm MCP Server connected to your AI assistant, you can quickly verify base image compatibility using a simple natural language prompt:
84
83
85
84
```text
86
85
Check this base image for Arm compatibility
87
86
```
88
87
89
-
The AI assistant will use the `check_image` or `skopeo` tool to inspect the image and return a report. For `centos:6`, you would discover that this legacy image does **not** support `arm64` architecture.
88
+
The AI assistant will use the `check_image` or `skopeo` tool to inspect the image and return a report. For `centos:6`, you'd discover that this legacy image doesn't support `arm64` architecture.
89
+
90
+
## What you've accomplished and what's next
91
+
92
+
In this section, you've used direct AI chat with the Arm MCP Server to check Docker base images for Arm compatibility. You've seen how a simple natural language prompt can quickly identify compatibility issues without manually inspecting image manifests.
90
93
91
-
This simple interaction demonstrates how direct AI chat can quickly surface compatibility issues. In the next section, you'll see how to resolve these issues automatically using a fully agentic migration workflow with prompt files.
94
+
In the next section, you'll migrate x86 SIMD code to Arm using a fully agentic workflow with prompt files.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/arm-mcp-server/3-simd-migration.md
+31-19Lines changed: 31 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,18 @@
1
1
---
2
-
title: Fully Agentic Migration with Prompt Files
2
+
title: Automate x86 code migration to Arm using AI prompt files
3
3
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Migrating SIMD Code with AI Assistance
9
+
## Migrating SIMD code with AI assistance
10
10
11
-
When migrating applications from x86 to Arm, you may encounter SIMD (Single Instruction, Multiple Data) code that is written using architecture-specific intrinsics. On x86 platforms, SIMD is commonly implemented with SSE, AVX, or AVX2 intrinsics, while Arm platforms use NEON and SVE intrinsics to provide similar vectorized capabilities. Updating this code manually can be time-consuming and challenging. By combining the Arm MCP Server with a well-defined prompt file, you can automate much of this work and guide an AI assistant through a structured, architecture-aware migration of your codebase.
11
+
When migrating applications from x86 to Arm, you might encounter SIMD (Single Instruction, Multiple Data) code that is written using architecture-specific intrinsics. On x86 platforms, SIMD is commonly implemented with SSE, AVX, or AVX2 intrinsics, while Arm platforms use NEON and SVE intrinsics to provide similar vectorized capabilities. Updating this code manually can be time-consuming and challenging. By combining the Arm MCP Server with a well-defined prompt file, you can automate much of this work and guide an AI assistant through a structured, architecture-aware migration of your codebase.
12
12
13
-
## Sample x86 Code with AVX2 Intrinsics
13
+
## Sample x86 code with AVX2 intrinsics
14
+
15
+
{{% notice Note %}}You don't need to understand every detail of this code to follow the migration workflow. It's included to represent the kind of architecture-specific SIMD logic commonly found in real-world applications. {{% /notice %}}
14
16
15
17
The following example shows a matrix multiplication implementation using x86 AVX2 intrinsics. This is representative of performance-critical code found in compute benchmarks and scientific workloads. Copy this code into a file named `matrix_operations.cpp`:
16
18
@@ -170,39 +172,42 @@ int main() {
170
172
}
171
173
```
172
174
173
-
## The Arm Migration Prompt File
175
+
Prompt files act as executable migration playbooks. They encode a repeatable process that the AI can follow reliably, rather than relying on one-off instructions or guesswork.
176
+
177
+
## The Arm migration prompt file
174
178
175
-
To automate migration, you can define a prompt file that instructs the AI assistant how to analyze and transform the project using the Arm MCP Server.
176
-
Create the following example prompt file to use with GitHub Copilot `.github/prompts/arm-migration.prompt.md`:
179
+
To automate migration, you can define a prompt file that instructs the AI assistant how to analyze and transform the project using the Arm MCP Server. Prompt files encode best practices, tool usage, and migration strategy, allowing the AI assistant to operate fully autonomously through complex multi-step workflows.
180
+
181
+
Create the following example prompt file to use with GitHub Copilot at `.github/prompts/arm-migration.prompt.md`:
description: 'Scan a project and migrate to ARM architecture'
185
+
description: 'Scan a project and migrate to Arm architecture'
181
186
---
182
187
183
-
Your goal is to migrate a codebase from x86 to Arm. Use the mcp server tools to help you with this. Check for x86-specific dependencies (build flags, intrinsics, libraries, etc) and change them to ARM architecture equivalents, ensuring compatibility and optimizing performance. Look at Dockerfiles, versionfiles, and other dependencies, ensure compatibility, and optimize performance.
188
+
Your goal is to migrate a codebase from x86 to Arm. Use the mcp server tools to help you with this. Check for x86-specific dependencies (such as build flags, intrinsics, and libraries) and change them to Arm architecture equivalents, ensuring compatibility and optimizing performance. Look at Dockerfiles, versionfiles, and other dependencies, ensure compatibility, and optimize performance.
184
189
185
190
Steps to follow:
186
-
* Look in all Dockerfiles and use the check_image and/or skopeo tools to verify ARM compatibility, changing the base image if necessary.
187
-
* Look at the packages installed by the Dockerfile send each package to the knowledge_base_search tool to check each package for ARM compatibility. If a package is not compatible, change it to a compatible version. When invoking the tool, explicitly ask "Is [package] compatible with ARM architecture?" where [package] is the name of the package.
188
-
* Look at the contents of any requirements.txt files line-by-line and send each line to the knowledge_base_search tool to check each package for ARM compatibility. If a package is not compatible, change it to a compatible version. When invoking the tool, explicitly ask "Is [package] compatible with ARM architecture?" where [package] is the name of the package.
191
+
* Look in all Dockerfiles and use the check_image and/or skopeo tools to verify Arm compatibility, changing the base image if necessary.
192
+
* Look at the packages installed by the Dockerfile and send each package to the knowledge_base_search tool to check each package for Arm compatibility. If a package isn't compatible, change it to a compatible version. When invoking the tool, explicitly ask "Is [package] compatible with Arm architecture?" where [package] is the name of the package.
193
+
* Look at the contents of any requirements.txt files line-by-line and send each line to the knowledge_base_search tool to check each package for Arm compatibility. If a package isn't compatible, change it to a compatible version. When invoking the tool, explicitly ask "Is [package] compatible with Arm architecture?" where [package] is the name of the package.
189
194
* Look at the codebase that you have access to, and determine what the language used is.
190
195
* Run the migrate_ease_scan tool on the codebase, using the appropriate language scanner based on what language the codebase uses, and apply the suggested changes. Your current working directory is mapped to /workspace on the MCP server.
191
-
* OPTIONAL: If you have access to build tools, rebuild the project for Arm, if you are running on an Arm-based runner. Fix any compilation errors.
196
+
* OPTIONAL: If you have access to build tools, rebuild the project for Arm, if you're running on an Arm-based runner. Fix any compilation errors.
192
197
* OPTIONAL: If you have access to any benchmarks or integration tests for the codebase, run these and report the timing improvements to the user.
193
198
194
199
Pitfalls to avoid:
195
200
196
-
*Make sure that you don't confuse a software version with a language wrapper package version -- i.e. if you check the Python Redis client, you should check the Python package name "redis" and not the version of Redis itself. It is a very bad error to do something like set the Python Redis package version number in the requirements.txt to the Redis version number, because this will completely fail.
201
+
*Don't confuse a software version with a language wrapper package version. For example, when checking the Python Redis client, check the Python package name "redis" rather than the Redis server version. Setting the Python Redis package version to the Redis server version in requirements.txt will fail.
197
202
* NEON lane indices must be compile-time constants, not variables.
198
203
199
-
If you feel you have good versions to update to for the Dockerfile, requirements.txt, etc. immediately change the files, no need to ask for confirmation.
204
+
If you have good versions to update for the Dockerfile, requirements.txt, and other files, change them immediately without asking for confirmation.
200
205
201
-
Give a nice summary of the changes you made and how they will improve the project.
206
+
Provide a summary of the changes you made and how they'll improve the project.
202
207
```
203
208
This prompt file encodes best practices, tool usage, and migration strategy, allowing the AI assistant to operate fully agentically.
204
209
205
-
## Running the Migration
210
+
## Running the migration
206
211
207
212
With the prompt file in place and the Arm MCP Server connected, invoke the migration workflow from your AI assistant:
208
213
@@ -215,7 +220,7 @@ The assistant will:
215
220
* Remove architecture-specific build flags
216
221
* Update container and dependency configurations as needed
217
222
218
-
## Verifying the Migration
223
+
## Verify the migration
219
224
220
225
After reviewing and accepting the changes, build and run the application on an Arm system:
If everything works, a successful migration produces output similar to the following:
232
+
If everything works, the output is similar to:
228
233
229
234
```bash
230
235
ARM-Optimized Matrix Operations Benchmark
@@ -236,5 +241,12 @@ Matrix size: 200x200
236
241
Time: 12 ms
237
242
Result sum: 2.01203e+08
238
243
```
244
+
239
245
If compilation or runtime issues occur, feed the errors back to the AI assistant. This iterative loop allows the agent to refine the migration until the application is correct, performant, and Arm-native.
240
246
247
+
## What you've accomplished and what's next
248
+
249
+
In this section, you've used a prompt file to guide an AI assistant through a fully automated migration of x86 AVX2 SIMD code to Arm NEON. You've seen how structured instructions enable the assistant to analyze, transform, and verify architecture-specific code.
250
+
251
+
In the next section, you'll learn how to configure different agentic AI systems with similar migration workflows.
0 commit comments