ALM X++ MCP Server

平台与服务

by alimbenhelal-pro

面向 Dynamics 365 F&O 开发者的云端 MCP 服务器,通过 HTTPS 提供 40 多个 AI 工具。

什么是 ALM X++ MCP Server

面向 Dynamics 365 F&O 开发者的云端 MCP 服务器,通过 HTTPS 提供 40 多个 AI 工具。

README

almxppmcp

npm version npm downloads MCP endpoint MCP registry M8ven Score license node LinkedIn

npx launcher for the ALM XPP Cloud MCP - a Dynamics 365 Finance & Operations AI agent exposing 90 tools over MCP.

Published in the official MCP registry as io.github.alimbenhelal-pro/alm-xpp-mcp.

The server answers from a pre-built index of the standard D365 F&O codebase: 200K+ AOT objects, 1.3M+ code chunks, 25M+ cross-references and 24M+ label translations -- 392K label ids rendered across 74 languages.

Why an index rather than a general-purpose model

A general model answers X++ questions from whatever it memorised during training. This server answers from a specific, versioned copy of the standard D365 codebase:

What it means in practice
A known releaseThe Cloud MCP answers from the release the server has indexed, not from yours. The one currently loaded is reported by GET /mcp -- check it before relying on a version-sensitive answer
Your own versionIndexing your environment's exact build is what the Local MCP is for: it runs next to your D365 SDK and indexes the PackagesLocalDirectory on that machine. The Cloud MCP cannot do this -- it never sees your platform binaries
TraceableEvery result carries the AOT object and model it came from, so you can open it in Visual Studio and check
Your extensionsPoint D365-Custom-Model-Path at your metadata, or let it index your Azure DevOps repository, and your own code is searched alongside the standard code
No training on your codeYour metadata is indexed per session and used to answer your calls. It is not used to train anything

Three servers, three roles

Three different MCP servers show up around D365 F&O. This README always calls them by these names:

NameWhat it isHow you get it
Cloud MCPThe hosted ALM XPP server: 90 tools over the indexed D365 codebasethis package -- npx almxppmcp
Local MCPRuns on your own dev machine, next to the D365 SDK: 121 tools, 36 of which write AOT files, compile X++, sync the database. It is also the only one that can index your exact platform build, by reading the PackagesLocalDirectory on that machineseparate licensed component, contact alim@almxpp.com
Environment MCPMicrosoft's own Dynamics 365 ERP MCP server, exposed by your F&O environment itself, serving live dataenabled inside D365FO, then connected directly from VS Code

This npm package covers the Cloud MCP only. The Local MCP is licensed separately, and the Environment MCP is Microsoft's -- your client connects to it on its own.

Requirements

  • An API token -- get one at the dashboard
  • Node.js >= 18, only if you use the npx launcher described further down

MCP Client Configuration

The Cloud MCP is a streamable HTTP MCP server at https://api.almxpp.com/mcp, authenticated with the X-API-Key header. Any client that speaks HTTP connects to it directly -- no Node.js, no launcher.

Tool calls are served on api.almxpp.com only. almxpp.com and www.almxpp.com host the website; a JSON-RPC POST sent there is refused with a message naming the correct URL. Only the host changes -- your API key and headers stay the same.

VS Code / GitHub Copilot -- .vscode/mcp.json

json
{
  "servers": {
    "almxppmcp": {
      "type": "http",
      "url": "https://api.almxpp.com/mcp",
      "headers": {
        "X-API-Key": "YOUR_TOKEN"
      }
    }
  }
}

Headers

X-API-Key is the only required header. The others unlock the tools that need your own context -- without them those tools simply report that they are not configured.

HeaderUnlocks
X-API-KeyRequired. Your API token. Authorization: Bearer <token> works too.
D365-Custom-Model-PathAbsolute path to your own extension / ISV metadata on the calling machine. Analysis tools read from here
D365-Standard-Model-PathAbsolute path to PackagesLocalDirectory, used as a read-only reference for standard objects
DEVOPS_ORG_URLAzure DevOps organisation, e.g. https://dev.azure.com/MyOrg
DEVOPS_PROJECTAzure DevOps project name. Required alongside DEVOPS_ORG_URL.
DEVOPS_PATAzure DevOps token. Indexes your own X++ metadata from the repo and reads work items.
DEVOPS_REPORepository holding the metadata, when the project has several
DEVOPS_BRANCHBranch to index, default main
DEVOPS_METADATA_PATHFolder inside the repo holding the AOT XML, default Metadata
D365FO-UrlLive environment base URL, for the odata_* and dmf_* tools
D365FO-Tenant-IdEntra tenant of that environment
D365FO-Client-IdEntra app registered in D365FO under Microsoft Entra applications
D365FO-Client-SecretSecret of that app
AppInsights-Workspace-IdLog Analytics workspace, for the appinsights_* tools
AppInsights-Tenant-IdEntra tenant of that workspace
AppInsights-Client-IdEntra app with Log Analytics Reader on the workspace
AppInsights-Client-SecretSecret of that app

The live-environment and telemetry credentials can also be set for the session with d365fo_set_connection and appinsights_set_connection, so they never sit in a config file.

examples/vscode-mcp.full-headers.json puts all of this together and keeps every secret out of the file by prompting for it through VS Code inputs.


The npx launcher

Some clients only speak stdio. The almxppmcp command covers that case: it reads your token, sends it as the X-API-Key header, and relays the traffic to the Cloud MCP over stdio. It has no dependencies -- just the one file, on top of what Node 18 already provides.

bash
npx almxppmcp --api-key YOUR_TOKEN

or set the environment variable:

bash
export ALMXPPMCP_API_KEY=YOUR_TOKEN
npx almxppmcp

--api-key and ALMXPPMCP_API_KEY are the two ways of giving the token to the launcher. Either way it ends up on the wire as the HTTP header X-API-Key -- same token, different layer.

VS Code, if you prefer the launcher -- .vscode/mcp.json

json
{
  "servers": {
    "almxppmcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
    }
  }
}

Cursor -- .cursor/mcp.json

json
{
  "mcpServers": {
    "almxppmcp": {
      "command": "npx",
      "args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
    }
  }
}

Claude Desktop -- claude_desktop_config.json

json
{
  "mcpServers": {
    "almxppmcp": {
      "command": "npx",
      "args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
    }
  }
}

Tip: replace YOUR_TOKEN with the token shown on your dashboard. Set it as an env var to avoid hard-coding it (root key is mcpServers for Cursor and Claude Desktop, servers for VS Code):

json
{
  "mcpServers": {
    "almxppmcp": {
      "command": "npx",
      "args": ["-y", "almxppmcp"],
      "env": { "ALMXPPMCP_API_KEY": "YOUR_TOKEN" }
    }
  }
}

Environment Variables

VariableDescription
ALMXPPMCP_API_KEYYour API token (alternative to --api-key)
ALMXPPMCP_SERVER_URLOverride the MCP endpoint (default: https://api.almxpp.com/mcp)

What tools are available?

The Cloud MCP exposes 90 tools across 14 categories, listed below.

The Local MCP carries the 85 of them that do not depend on the cloud index, plus 36 more that must run next to your D365 environment (build, deploy, database sync, workspace writes) -- 121 tools on that side. Across both servers the toolbox is 126 distinct tools.

CategoryToolsNames
Search5search_d365_code, search_labels, batch_search, federated_search, search_context_docs
Retrieve6get_object_details, list_objects, list_custom_model_objects, get_object_context, compare_objects, get_menu_item_info
Relations & Impact11find_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
Quality & Analysis7validate_best_practices, detect_performance_issues, find_error_patterns, fix_best_practice_violations, recommend_extension_strategy, suggest_edt, validate_object_naming
Security & Licensing4trace_security_chain, trace_role_license_tree, get_security_coverage_for_object, generate_security_report
Code Generation8generate_unit_test, suggest_refactoring, generate_diagram, generate_query, create_aot_object, generate_data_entity, generate_xpp_form, generate_xpp_template
Functional Domain2generate_fdd, explain_workflow
Differentiators2analyze_upgrade_impact, map_business_process
Upgrade & Release Notes6resolve_client_profile, save_client_profile, list_release_note_inputs, prepare_release_note_context, generate_release_note_document, diff_model_versions
Live Environment5d365fo_set_connection, d365fo_clear_connection, odata_export_entity, odata_upsert_rows, get_data_entity_info
Data Migration7dmf, dmf_create_data_project, dmf_apply_entity_filter, dmf_import_file, dmf_export_package, dmf_get_job_status, dmf_transform_excel
Performance Diagnostics4appinsights_set_connection, appinsights_clear_connection, appinsights_query, appinsights_diagnose_slowness
Orchestration & Reporting6plan_and_execute, summarize_for_stakeholder, resolve_workspace_roots, resync_devops_index, healthcheck, get_output_page
Azure DevOps17ado_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

Beyond code search, the notable capabilities are:

  • Upgrade impact - compare two D365 versions against your own customisations and produce the regression report as Word and PowerPoint.
  • Live environment - connect to a running environment, read and write real records over OData, run Data Management projects.
  • Performance diagnostics - query Application Insights telemetry and get a ranked diagnosis of what is actually slow.
  • Azure DevOps - work items, pull requests, wiki, from analysis to review.

Full reference with parameters and example prompts: https://www.almxpp.com/docs


What is in this repository

This repository holds the client side only — the npx launcher published to npm as almxppmcp:

PathPurpose
bin/almxppmcp.jsResolves the API key and server URL, then bridges your client's stdio to the Cloud MCP over HTTP -- no third-party package involved
server.jsonMCP registry manifest

The Cloud MCP itself — index, retrieval, the 90 tools and the licensing layer — is closed source and runs at https://api.almxpp.com/mcp. The launcher never sees your code: it forwards requests over HTTPS with the token you provide.


License

MIT

常见问题

ALM X++ MCP Server 是什么?

面向 Dynamics 365 F&O 开发者的云端 MCP 服务器,通过 HTTPS 提供 40 多个 AI 工具。

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描176.4k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描176.4k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描26.0k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
89.7k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
80.0k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
72.9k

评论