almxppmcp
npx launcher для ALM XPP Cloud MCP — агент AI для Dynamics 365 Finance & Operations, exposing 90 инструментов через MCP.
Опубликован в официальном реестре MCP как
io.github.alimbenhelal-pro/alm-xpp-mcp.
Сервер отвечает из заранее построенного индекса стандартной кодовой базы D365 F&O:
200K+ объектов AOT, 1.3M+ фрагментов кода, 25M+ перекрестных ссылок и
24M+ переводов лейблов — 392K идентификаторов лейблов отрисованы на 74 языках.
Почему индекс, а не универсальная модель
Общая модель отвечает на вопросы по X++ из того, что она запомнила во время обучения. Этот сервер отвечает
из конкретной, версионной копии стандартного кода D365:
| Что это означает на практике | |
|---|---|
| Известный релиз | Облачный MCP отвечает из релиза, который сервер индексировал, а не из вашего. Текущая загрузка сообщается через GET /mcp — проверьте её перед тем, как полагаться на версию ответа. |
| Ваша собственная версия | Индексирование точной сборки вашей платформы — задача Local MCP: он запускается рядом с вашим D365 SDK и индексирует PackagesLocalDirectory на той машине. Облачный MCP не может сделать это — он никогда не видит бинарники вашей платформы. |
| Прослеживаемость | Каждый результат содержит AOT-объект и модель, из которой он взят, чтобы вы могли открыть её в Visual Studio и проверить. |
| Ваши расширения | Укажите D365-Custom-Model-Path на ваши метаданные или позвольте индексации вашего репозитория в Azure DevOps — ваш собственный код будет искаться наряду со стандартным. |
| Нет обучения на вашем коде | Ваши метаданные индексируются на сессию и используются для ответов на ваши вызовы. Они не используются для обучения чего-либо. |
Три сервера, три роли
По D365 F&O встречаются три разных MCP-сервера. В этом_README их называют так:
| Имя | Что это такое | Как получить |
|---|---|---|
| Cloud MCP | Хостированный сервер ALM XPP: 90 инструментов поверх индексированного кода D365 | этот пакет — npx almxppmcp |
| Local MCP | Работает на вашем локальном ПК, рядом с D365 SDK: 121 инструмент, 36 из которых записывают AOT-файлы, компилируют X++, синхронизируют базу данных. Это единственный сервер, который может индексировать точную сборку вашей платформы, читая PackagesLocalDirectory на той машине | отдельно лицензируемый компонент, свяжитесь с alim@almxpp.com |
| Environment MCP | MCP-сервер Microsoft Dynamics 365 ERP, доступный самой средой F&O, обслуживает данные в реальном времени | включён внутри D365FO, затем подключается напрямую из VS Code |
Этот npm-пакет охватывает только Cloud MCP. Local MCP лицензируется отдельно, а Environment MCP — это Microsoft's — ваш клиент подключается к нему самостоятельно.
Требования
-
API-токен — получите на панели управления
-
Node.js >= 18, только если вы используете запускатель
npx, описанный далее
Конфигурация клиента MCP
Облачный MCP — это потоковый HTTP MCP-сервер по адресу https://api.almxpp.com/mcp, аутентификация осуществляется через заголовок
X-API-Key. Любой клиент, который работает по HTTP, подключается напрямую — без Node.js, без launcher.
Вызовы инструментов обслуживаются только на
api.almxpp.com.almxpp.comиwww.almxpp.comхостят сайт;
на отправленный туда JSON-RPC POST возвращается отказ с указанием верного URL. Только хост меняется —
ваш API-токен и заголовки остаются теми же.
VS Code / GitHub Copilot — .vscode/mcp.json
{
"servers": {
"almxppmcp": {
"type": "http",
"url": "https://api.almxpp.com/mcp",
"headers": {
"X-API-Key": "YOUR_TOKEN"
}
}
}
}
Заголовки
X-API-Key — единственный обязательный заголовок. Остальные открывают доступ к инструментам, которым нужен ваш контекст —
без них эти инструменты просто сообщат, что они не сконфигурированы.
| Заголовок | Разблокирует |
|---|---|
| X-API-Key | Обязателен. Ваш API-токен. Authorization: Bearer тоже работает. |
| D365-Custom-Model-Path | Абсолютный путь к вашим метаданным расширения / ISV на вызывающей машине. Аналитические инструменты читают отсюда |
| D365-Standard-Model-Path | Абсолютный путь к PackagesLocalDirectory, используется как справка только для стандартных объектов |
| DEVOPS_ORG_URL | Azure DevOps организация, например https://dev.azure.com/MyOrg |
| DEVOPS_PROJECT | Имя проекта в Azure DevOps. Требуется вместе с DEVOPS_ORG_URL. |
| DEVOPS_PAT | Токен Azure DevOps. Индексирует ваши X++-метаданные из репозитория и читает рабочие элементы. |
| DEVOPS_REPO | Репозиторий, который хранит метаданные, когда в проекте несколько |
| DEVOPS_BRANCH | Ветка для индексирования, по умолчанию main |
| DEVOPS_METADATA_PATH | Папка внутри репозитория с AOT XML, по умолчанию Metadata |
| D365FO-Url | Базовый URL живой среды, для инструментов odata_* и dmf_* |
| D365FO-Tenant-Id | Домен Entra этой среды |
| D365FO-Client-Id | Приложение Entra, зарегистрированное в D365FO в разделе Microsoft Entra applications |
| D365FO-Client-Secret | Секрет этого приложения |
| AppInsights-Workspace-Id | Рабочая область Log Analytics, для инструментов appinsights_* |
| AppInsights-Tenant-Id | Домен Entra этой рабочей области |
| AppInsights-Client-Id | Приложение Entra с правами Log Analytics Reader в рабочей области |
| AppInsights-Client-Secret | Секрет этого приложения |
Кредиты для живой среды и телеметрии можно также задать на сессию командой
d365fo_set_connection и appinsights_set_connection, чтобы они никогда не попадали в конфигурационный файл.
examples/vscode-mcp.full-headers.json сводит всё воедино
и держит секреты вне файла, запрашивая их через VS Code inputs.
Запускатель npx
Некоторые клиенты работают только через stdio. Команда almxppmcp охватывает этот случай: она считывает ваш токен, отправляет его как
заголовок X-API-Key и передает трафик на Cloud MCP через stdio. У него нет зависимостей —
только один файл поверх того, что уже предоставляет Node 18.
npx almxppmcp --api-key YOUR_TOKEN
или задайте переменную окружения:
export ALMXPPMCP_API_KEY=YOUR_TOKEN
npx almxppmcp
--api-keyиALMXPPMCP_API_KEY— два способа передачи токена ** Launcher**.
В любом случае он попадет на сетевой слой как HTTP- заголовок
X-API-Key— тот же токен, на другом уровне.
VS Code, если вам больше по душе запускатель — .vscode/mcp.json
{
"servers": {
"almxppmcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
Cursor — .cursor/mcp.json
{
"mcpServers": {
"almxppmcp": {
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"almxppmcp": {
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
Подсказка: замените
YOUR_TOKENна токен, показанный на вашей панели управления. Установите его как переменную окружения, чтобы не хранить его в коде
(ключ верхнего уровня —
mcpServersдля Cursor и Claude Desktop,servers— для VS Code):
"mcpServers": {
"almxppmcp": { "command": "npx", "args": ["-y", "almxppmcp"], "env": { "ALMXPPMCP_API_KEY": "YOUR_TOKEN" } } } }
Переменные окружения
| Переменная | Описание |
|---|---|
| ALMXPPMCP_API_KEY | Ваш API-токен (альтернатива --api-key) |
| ALMXPPMCP_SERVER_URL | Переопределение точки входа MCP (по умолчанию: https://api.almxpp.com/mcp) |
Какие инструменты доступны?
Облачный MCP открывает 90 инструментов в 14 категориях, перечисленных ниже.
Локальный MCP содержит 85 из них, не зависящих от облачного индекса, плюс 36 дополнительных, которые должны
работать рядом с вашей средой D365 (построение, развёртывание, синхронизация базы данных, запись в рабочие области) — всего 121 инструмент на той стороне.
Вместе оба сервера образуют 126 различных инструментов.
| Категория | Инструментов | Названия |
|---|---|---|
| Поиск | 5 | search_d365_code, search_labels, batch_search, federated_search, search_context_docs |
| Получение | 6 | get_object_details, list_objects, list_custom_model_objects, get_object_context, compare_objects, get_menu_item_info |
| Отношения & Влияние | 11 | find_related_objects, find_references, find_extensions, get_relation_graph, find_entity_for_table, find_callers, find_change_impact, find_event_handlers, find_relation_path, find_similar_implementations, trace_field_lineage |
| Качество & Аналитика | 7 | validate_best_practices, detect_performance_issues, find_error_patterns, fix_best_practice_violations, recommend_extension_strategy, suggest_edt, validate_object_naming |
| Безопасность & Лицензирование | 4 | trace_security_chain, trace_role_license_tree, get_security_coverage_for_object, generate_security_report |
| Генерация кода | 8 | generate_unit_test, suggest_refactoring, generate_diagram, generate_query, create_aot_object, generate_data_entity, generate_xpp_form, generate_xpp_template |
| Функциональная область | 2 | generate_fdd, explain_workflow |
| Дифференциаторы | 2 | analyze_upgrade_impact, map_business_process |
| Обновления & Примечания к релизам | 6 | resolve_client_profile, save_client_profile, list_release_note_inputs, prepare_release_note_context, generate_release_note_document, diff_model_versions |
| Живые окружения | 5 | d365fo_set_connection, d365fo_clear_connection, odata_export_entity, odata_upsert_rows, get_data_entity_info |
| Миграция данных | 7 | dmf, dmf_create_data_project, dmf_apply_entity_filter, dmf_import_file, dmf_export_package, dmf_get_job_status, dmf_transform_excel |
| Диагностика производительности | 4 | appinsights_set_connection, appinsights_clear_connection, appinsights_query, appinsights_diagnose_slowness |
| Оркестрация & Отчётность | 6 | plan_and_execute, summarize_for_stakeholder, resolve_workspace_roots, resync_devops_index, healthcheck, get_output_page |
| Azure DevOps | 17 | ado_query_workitems, ado_analyze_workitem, ado_list_prs, ado_analyze_pr_impact, ado_gap_fit_analysis, ado_estimate_effort, ado_post_comment, ado_post_pr_comment, ado_create_task, ado_read_attachment, ado_update_workitem, ado_review_xpp_pr, ado_pr_dependency_map, ado_wiki_list, ado_wiki_get_page, ado_wiki_create_or_update_page, ado_wiki_delete_page |
Помимо кода поиска значимыми возможностями являются:
-
Влияние обновления — сравнение двух версий D365 относительно ваших собственных изменений и формирование отчета регрессий в Word и PowerPoint.
-
Живые окружения — подключение к работающей среде, чтение и запись реальных записей
по OData, выполнение проектов Data Management.
-
Диагностика производительности — запрос телеметрии Application Insights и получение ранжированного диагноза того, что действительно медленно.
-
Azure DevOps — работа с элементами работы, пул-реквестами, wiki — от анализа до обзора.
Полная ссылка на справочник с параметрами и примерами подсказок: https://www.almxpp.com/docs
Что внутри этого репозитория
Этот репозиторий хранит только клиентскую сторону — запускатель npx, опубликованный в
npm как almxppmcp:
| Путь | Назначение |
|---|---|
| bin/almxppmcp.js | Разрешает API-токен и URL сервера, затем мостит STDIO клиента к Cloud MCP через HTTP — без сторонних пакетов |
| server.json | манифест реестра MCP |
Сам Cloud MCP — индекс, получение, 90 инструментов и уровень лицензирования — является
закрытым исходным кодом и работает по адресу https://api.almxpp.com/mcp. Запускатель никогда не видит
ваш код: он пересылает запросы по HTTPS с использованием предоставленного вами токена.
Лицензия
MIT