API VEGA

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.