Arm MCP Server
Сервер MCP, предоставляющий AI-ассистентам инструменты и знания для разработки архитектуры Arm, миграции и оптимизации.
Использование Arm MCP Server
Если ваша цель — как можно быстрее перенести приложение с x86 на Arm, начинайте здесь:
Автоматизация миграции приложений с x86 на Arm с использованием Arm MCP Server
Особенности
Этот MCP-сервер снабжает AI-ассистентов набором специализированных инструментов для разработки Arm:
-
Поиск по базе знаний: семантический поиск по документации Arm, обучающим материалам, интринсикам (intrinsics) и сведениям о совместимости ПО
-
Анализ миграции кода: сканирование кодовой базы на совместимость с Arm с использованием migrate-ease (поддерживает C++, Python, Go, JavaScript, Java)
-
Проверка архитектуры контейнеров: проверка поддержки архитектуры образов Docker с использованием интегрированных инструментов [Skopeo] и check-image
-
Анализ производительности ассемблерного кода: анализ производительности ассемблерного кода с помощью LLVM-MCA
-
Arm Performix: запуск рецептов APX на целевом устройстве через SSH для захвата и анализа данных о производительности рабочих нагрузок
-
Системная информация: инструкции по сбору детальной информации об архитектуре системы через [sysreport]
Готовый образ
Если предпочитаете использовать готовый многоархитектурный образ, официальное изображение доступно в Docker Hub здесь: armlimited/arm-mcp:latest
Требования
-
Docker (с поддержкой buildx для сборок с несколькими архитектурами)
-
Клиент AI-помощника, совместимый с MCP (например, GitHub Copilot, Kiro CLI, Codex CLI, Claude Code и т. д.)
Быстрый старт
1. Сборка Docker-образа
Из корня этого репозитория:
docker buildx build --platform linux/arm64,linux/amd64 -f mcp-local/Dockerfile -t armlimited/arm-mcp .
Для сборки под одну платформу (быстрее):
docker buildx build -f mcp-local/Dockerfile -t armlimited/arm-mcp . --load
2. Настройка вашего MCP-клиента
Выберите конфигурацию, соответствующую вашему MCP-клиенту:
Ниже приведены примеры, которые включают необязательные аргументы Docker, требуемые для Arm Performix. Эти настройки, связанные с SSH, необходимы только в том случае, если вы хотите, чтобы MCP-сервер выполнял удалённые команды на целевом устройстве через Arm Performix. Если Arm Performix не используется, можно опустить строки SSH -v.
Claude Code
Добавьте в .mcp.json в вашем проекте:
{
"mcpServers": {
"arm-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--pull=always",
"-v", "/path/to/your/workspace:/workspace",
"-v", "/path/to/your/ssh/private_key:/run/keys/ssh-key.pem:ro",
"-v", "/path/to/your/ssh/known_hosts:/run/keys/known_hosts:ro",
"armlimited/arm-mcp"
]
}
}
}
GitHub Copilot (VS Code)
Добавьте в .vscode/mcp.json в вашем проекте, или глобально в ~/Library/Application Support/Code/User/mcp.json (macOS):
{
"servers": {
"arm-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--pull=always",
"-v", "/path/to/your/workspace:/workspace",
"-v", "/path/to/your/ssh/private_key:/run/keys/ssh-key.pem:ro",
"-v", "/path/to/your/ssh/known_hosts:/run/keys/known_hosts:ro",
"armlimited/arm-mcp"
]
}
}
}
Самый простой способ открыть этот файл в VS Code для редактирования — command+shift+p и поиск
MCP: Открыть пользовательскую конфигурацию
AWS Kiro CLI
Добавьте в ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"arm-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--pull=always",
"-v", "/path/to/your/workspace:/workspace",
"-v", "/path/to/your/ssh/private_key:/run/keys/ssh-key.pem:ro",
"-v", "/path/to/your/ssh/known_hosts:/run/keys/known_hosts:ro",
"armlimited/arm-mcp"
],
"timeout": 60000
}
}
}
Gemini CLI
Рекомендуется использовать конфигурационный файл проекта, чтобы обеспечить монтирование соответствующего рабочего пространства.
Добавьте в .gemini/settings.json в корне вашего проекта:
{
"mcpServers": {
"arm-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--pull=always",
"-v", "/path/to/your/workspace:/workspace",
"-v", "/path/to/your/ssh/private_key:/run/keys/ssh-key.pem:ro",
"-v", "/path/to/your/ssh/known_hosts:/run/keys/known_hosts:ro",
"armlimited/arm-mcp"
]
}
}
}
MCP Клиенты в формате TOML (например, Codex CLI)
[mcp_servers.arm-mcp]
command = "docker"
args = [
"run",
"--rm",
"-i",
"--pull=always",
"-v", "/path/to/your/workspace:/workspace",
"-v", "/path/to/your/ssh/private_key:/run/keys/ssh-key.pem:ro",
"-v", "/path/to/your/ssh/known_hosts:/run/keys/known_hosts:ro",
"armlimited/arm-mcp"
]
Note: Замените /path/to/your/workspace на фактический путь к каталогу вашего проекта, к которому должен получить доступ MCP сервер. Если вы включаете Arm Performix, также замените пути /path/to/your/ssh/private_key и /path/to/your/ssh/known_hosts на ваши локальные файлы. Контейнер MCP автоматически обнаруживает файлы, смонтированные под /run/keys, как показано в конфигурациях выше.
3. Перезапустите ваш MCP-клиент
После обновления конфигурации перезапустите ваш MCP-клиент, чтобы загрузить Arm MCP server.
Логирование
В зависимости от использования сервер может записывать два файла журнала в /workspace. В примерах конфигурации выше эти файлы появляются в каталоге проекта на вашем компьютере:
-
mcp-traffic.jsonlзаписывает, когда используются инструменты, какие входные данные передаются и причина каждого вызова инструмента. Также фиксирует результаты поиска по базе знаний. -
error_logging.yamlзаписывает подробности об ошибках, встречающихся на сервере.
Эта информация может помочь при устранении неполадок.
Эти журналы могут содержать информацию из вашего проекта и запросов инструментов. Просматривайте их содержимое перед тем, как делиться им.
Структура репозитория
mcp-local/: Реализация MCP сервера
server.py: Главный сервер FastMCP с определениями инструментов
-
utils/: Вспомогательные модули для каждого инструмента -
data/: Предсобранная база знаний (встраивания и метаданные) -
Dockerfile: Многоступенная сборка Docker -
embedding-generation/: Скрипты для регенерации базы знаний из исходных документов
Интеграционные тесты
Требования
-
Соберите docker-образ mcp сервера
-
Установите необходимые тестовые пакеты командой -
pip install -r tests/requirements.txtвнутри каталогаmcp_local
Шаги тестирования
-
Запустите тестовый скрипт -
python -m pytest -s tests/test_mcp.py -
Убедитесь, что запустились два docker-контейнера: mcp server и testcontainer
-
Все тесты должны пройти без ошибок. Предупреждения можно игнорировать.
Устранение неполадок
Доступ к оболочке контейнера
docker run --rm -it --entrypoint /bin/bash armlimited/arm-mcp
Распространённые проблемы
-
Время ожидания во время миграционных сканирований: увеличьте значение
timeoutв конфигурации вашего MCP-клиента (например,"timeout": 120000для 2 минут) -
Пустое рабочее пространство: убедитесь, что путь монтирования тома указан верно и каталог существует
-
Несоответствие архитектуры: если возникают проблемы, ориентированные на платформу, пересоберите образ под вашу платформу с использованием
--platform linux/amd64или--platform linux/arm64
Вклад
Приглашаются вкладчики! Пожалуйста, открывайте вопросы или отправляйте pull-запросы.
При участии:
-
Следуйте руководству по стилю PEP 8 для Python-кода
-
Обновляйте документацию для новых функций или изменений
-
Убедитесь, что Docker-образ успешно собирается перед отправкой
Note:
Изображения с тегами latest и тегами семантических версий (например, 2.3.0) следует рассматривать как prod среду, в то время как датированные теги (YYYY-MM-DD-<run_number>, например 2026-05-31-123) — как stage среду. Разработка (dev) относится только к локально собранным образам, создаваемым отдельными разработчиками.
Лицензия
Copyright © 2026, Arm Limited and Contributors. All rights reserved.
Licensed under the Apache License, Version 2.0. See LICENSE for details.