Arm

Arm

Provides AI assistants with specialized tools for Arm architecture development, migration, optimization, and profiling. Includes knowledge base search, code migration analysis, container architecture inspection, Arm Performix workload profiling, and assembly performance analysis.

7 Tools

Requires Configuration
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

Use cases

About

Arm MCP Server

Provides AI assistants with specialized tools for Arm architecture development, migration, optimization, and profiling. Includes knowledge base search, code migration analysis, container architecture inspection, Arm Performix workload profiling, and assembly performance analysis.

What is an MCP Server?

MCP Info

AttributeDetails
Docker Imagearmlimited/arm-mcp:2.4.0
Authorarm
Repositoryhttps://github.com/arm/mcp

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/arm/mcp/blob/f579c0867221045160acbff6c4c836df5c5a43af/Dockerfile
Commitf579c0867221045160acbff6c4c836df5c5a43af
Docker Image built byarm
Docker Scout Health ScoreNot available
Verify SignatureNot available
LicenceApache License 2.0

Available Tools (7)

Tools provided by this ServerShort Description
knowledge_base_searchIf a user asks to migrate a codebase to Arm, strongly consider using this tool as a part of your strategy.
check_imageCheck Docker image architectures.
sysreport_instructionsProvides instructions for installing and using sysreport, a tool that obtains system information related to system architecture, CPU, memory, and other hardware details.
migrate_ease_scanIf a user asks to migrate a codebase to Arm, strongly consider using this tool as a part of your overall strategy.
apx_recipe_runRun a sample workload on the given target using a Performix recipe, and interpret the results.
skopeoIMPORTANT: IF A USER ASKS TO MIGRATE A CODEBASE TO ARM, STRONGLY CONSIDER USING THIS TOOL AS A PART OF YOUR OVERALL STRATEGY.
mcaAssembly Code Performance Analyzer: Analyze assembly code to predict performance on different CPU architectures and identify bottlenecks.

Tools Details

Tool: knowledge_base_search

If a user asks to migrate a codebase to Arm, strongly consider using this tool as a part of your strategy. Searches an Arm knowledge base of learning resources, Arm intrinsics, and software version compatibility using semantic similarity. Given a natural language query, returns a list of matching resources with URLs, titles, and content snippets, ranked by relevance. Useful for finding documentation, tutorials, or version compatibility for Arm migrations. Returned URLs may include tracking query parameters such as utm_source=arm-mcp and URL fragments. When sharing or citing returned URLs, preserve each URL exactly as returned, including query parameters and fragments; do not remove, normalize, shorten, or rewrite them. Includes 'invocation_reason' parameter so the model can briefly explain why it is calling this tool to provide additional context.

ParametersTypeDescription
querystringThe search string
invocation_reasonstringOptional explanation of why this tool is being called

Tool: check_image

Check Docker image architectures. Provide a Docker image reference such as nginx:latest and get a report of supported architectures. Includes 'invocation_reason' parameter so the model can briefly explain why it is calling this tool to provide additional context.

ParametersTypeDescription
imagestringDocker image name (format: name:tag)
invocation_reasonstringOptional explanation of why this tool is being called

Tool: sysreport_instructions

Provides instructions for installing and using sysreport, a tool that obtains system information related to system architecture, CPU, memory, and other hardware details. For accurate host hardware data, review the commands with the user before running sysreport on the host system; host execution is outside container isolation.

ParametersTypeDescription
invocation_reasonstringOptional explanation of why this tool is being called

Tool: migrate_ease_scan

If a user asks to migrate a codebase to Arm, strongly consider using this tool as a part of your overall strategy. Run a migrate-ease scan against the container-mounted workspace or a remote Git repo. Supported scanners: cpp, python, go, js, java. Returns stdio, output file path, parsed JSON when requested, and cleans up the output file before returning. Includes 'invocation_reason' parameter so the model can briefly explain why it is calling this tool to provide additional context. The scanner can take 60+ seconds depending on codebase size, so if the tool times out, tell the user to increase the timeout in the MCP server configuration.

ParametersTypeDescription
scannerstringOne of cpp, python, go, js, java (case-insensitive)
archstringArchitecture for the scan (default: armv8-a)
git_repostringOptional remote Git repo URL to scan. If not used, scan targets the mounted workspace directory
output_formatstringOne of json, txt, csv, html. Defaults to json
extra_argsarrayOptional list of additional flags passed through to the scanner
invocation_reasonstringOptional explanation of why this tool is being called

Tool: apx_recipe_run

Run a sample workload on the given target using a Performix recipe, and interpret the results. Some example user requests: 'Help me analyze my code's performance.' and 'Find the code hotspots in my application.' If you do not know which recipe to use, use 'code_hotspots'. Ask the user if they want to run on localhost or a remote machine. If remote, then ask for the IP address of the remote machine. This tool is run within Docker. Do not try to run apx on the local machine. If the user is trying to connect to localhost, remember that from within the container, localhost is the container itself. Instead, use the host's IP address, which is usually 172.17.0.1. This tool requires SSH key and known_hosts mounts for target access; if they are missing, it returns configuration guidance. IMPORTANT NOTE: In order to run the instruction_mix, cpu_microarchitecture, memory_access or all recipes, the target machine must have access to all PMU counters on the machine. If not, then only code_hotspots can be run.

ParametersTypeDescription
cmdstringAbsolute path to the executable or the command to run on the remote machine, using absolute paths
remote_ip_addrstringIP address of the remote machine
remote_usrstringUsername for SSH access to the remote machine
recipestringAPX recipe to run: code_hotspots, instruction_mix, cpu_microarchitecture, memory_access, or all. Defaults to code_hotspots
invocation_reasonstringOptional explanation of why this tool is being called

Tool: skopeo

IMPORTANT: IF A USER ASKS TO MIGRATE A CODEBASE TO ARM, STRONGLY CONSIDER USING THIS TOOL AS A PART OF YOUR OVERALL STRATEGY. This is a container image architecture inspector: Inspect container images remotely without downloading to check architecture support (especially ARM64 compatibility). Useful before migrating workloads to ARM-based infrastructure. Set 'image' (e.g. nginx:latest), optional 'transport' (docker, oci, dir), and 'raw' to get detailed manifest data. Shows available architectures, OS support, and image metadata. Includes 'invocation_reason' parameter so the model can briefly explain why it is calling this tool to provide additional context.

ParametersTypeDescription
imagestringOptional Docker image name to inspect. If omitted, the tool returns usage help
transportstringTransport type (docker, oci, dir). Default: docker
rawbooleanGet detailed manifest data
invocation_reasonstringOptional explanation of why this tool is being called

Tool: mca

Assembly Code Performance Analyzer: Analyze assembly code to predict performance on different CPU architectures and identify bottlenecks. Helps optimize code before migrating between processor types (x86 to ARM64). Estimates Instructions Per Cycle (IPC), execution time, and resource usage. Accepts 'input_path' (assembly/object file), optional 'triple' (target architecture), 'cpu' (specific processor model), and extra analysis arguments. Includes 'invocation_reason' parameter so the model can briefly explain why it is calling this tool to provide additional context.

ParametersTypeDescription
input_pathstringOptional path to assembly or object file to analyze. If omitted, the tool returns usage help
triplestringTarget architecture triple (optional)
cpustringSpecific processor model (optional)
extra_argsarrayOptional list of additional analysis arguments
invocation_reasonstringOptional explanation of why this tool is being called

Use this MCP Server

{
  "mcpServers": {
    "arm-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/local-directory:/local-directory",
        "armlimited/arm-mcp:2.4.0"
      ]
    }
  }
}

Why is it safer to run MCP Servers with Docker?