Index / MCP servers / ALM X++

ALM X++ MCP server

Connect ALM X++ and your agent gets 90 tools, among them ado_analyze_pr_impact, ado_analyze_workitem, ado_create_task. It answers at https://api.almxpp.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 21 October 2026, succeeded.

Status
Answering
Tools
90
Reliability
6 of 6 checks
Response time
116 ms
Transport
streamable HTTP
Last checked
21 October 2026

D365 F&O: 90 AI tools over 200K+ objects, 25M+ cross-refs, 24M+ label translations.

Description as the publisher wrote it.

The 90 tools ALM X++ offers

ToolWhat it does
ado_analyze_pr_impact[~] PRIORITY TRIGGER: Use this tool when the user says 'analyse PR', 'review PR', 'check PR', 'PR #', 'impact du PR', 'analyse la PR', 'what changed in PR', 'D365 impact of PR', 'code review PR', 'violations in PR', 'PR review'. NEVER call
Inputs: repositoryId, prId, project, includeWarnings, maxFilesDeep, includeSource
ado_analyze_workitemAZURE DEVOPS ONLY -- Fetch a Work Item and assemble ALL technical context needed for D365 F&O expert analysis. [~] PRIORITY TRIGGER: 'analyse le workitem', 'analyse la tâche', 'analyse le FDD/RDD/CR/IDD', 'read the work item', 'check the bu
Inputs: workItemId, project, includeImages, maxComments, focusObjects, sourceBranch
ado_create_taskWHEN: user asks to create a DevOps Task or start development on a Work Item. Triggers: 'create task', 'créer une tâche', 'start development on', 'commencer le dev sur', 'créer un task ADO', 'new development task for WI'. Create a D365 F&O d
Inputs: workItemId, project, assignTo, notifyList, repositoryId, sourceBranch
ado_estimate_effortWHEN: user asks for an effort estimate, chiffrage, or development hours for a D365 Work Item. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_workitem` when the user asks 'how long?', 'estimate this', 'chiffre ce WI'. [t] EFFORT ESTIMATOR --
Inputs: workItemId, project, focusObjects
ado_gap_fit_analysisWHEN: user asks whether a D365 requirement is standard, needs config, needs an extension, or is a full gap. Also triggered by gap analysis or fit/gap classification of a Work Item. GAP / FIT CLASSIFIER -- Analyse a D365 F&O requirement (fro
Inputs: workItemId, project, requirementText, requirements
ado_list_prs[~] PRIORITY TRIGGER: Use this tool when user mentions 'PR', 'Pull Request', 'list PRs', 'show PRs', 'active PRs', 'mes PR', 'liste des PR', 'pull requests ouverts', 'what PRs are open', 'PRs by [author]', 'PRs targeting [branch]'. NEVER ca
Inputs: repositoryId, project, status, author, targetBranch, top
ado_post_commentWHEN: user explicitly asks to post, add, or save a comment to an ADO Work Item. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_workitem` when user says 'post the analysis', 'save it to the ticket', 'ajoute en commentaire'. WARNING: ALWAYS as
Inputs: workItemId, commentText, project
ado_post_pr_commentWHEN: user explicitly asks to post, add, or save a review comment to an ADO Pull Request. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_pr_impact` when user says 'post the review', 'add comment to PR', 'ajoute le commentaire sur la PR'. WAR
Inputs: repositoryId, prId, commentText, project, filePath, lineNumber
ado_pr_dependency_mapPR DEPENDENCY MAP -- Scan multiple Pull Requests and build a cross-PR dependency graph based on (a) shared X++/AOT objects and (b) branch chain relationships. For each PR: * Lists X++ / AOT objects changed (from diff) * Detects OBJECT CONFL
Inputs: repositoryId, project, status, targetBranch, top
ado_query_workitemsAZURE DEVOPS ONLY -- Query Work Items (Bugs, Tasks, FDDs, User Stories, CRs) in Azure DevOps. [~] PRIORITY TRIGGER: use this tool when the user mentions 'FDD', 'RDD', 'IDD', 'CR', 'Task', 'Workitem', 'Work Item', 'Bug', 'User Story', 'Featu
Inputs: query, project, workItemType, state, assignedTo, areaPath
ado_read_attachmentAZURE DEVOPS ONLY -- Reads the ACTUAL CONTENT of a file attached to a work item (Excel spreadsheet, Word document, text/CSV/JSON/XML file, or image). WHEN: a work item (FDD/RDD/CR/Bug/Task/User Story) has an Excel/Word attachment with requi
Inputs: workItemId, fileName, sheetName, project
ado_review_xpp_prWHEN: reviewing a PR that modifies X++ code or AOT objects and you need D365-specific insights. Returns a structured code review for each changed object: blast radius (who calls it), best-practice violations found in the PR's own source (fe
Inputs: prId, repositoryId, project, maxDeepAnalysis
ado_update_workitemUpdate one or more fields on an existing Azure DevOps Work Item. Can update any standard field (System.Description, System.Title, System.State, System.AssignedTo, ...) or custom field (Custom.Extensionlifecyclestatus, ...) using its Field R
Inputs: workItemId, fieldsJson, project
ado_wiki_create_or_update_pageAZURE DEVOPS ONLY -- Create a new wiki page, or OVERWRITE an existing one with new markdown content. ALWAYS call ado_wiki_get_page first if you intend to edit (not replace) an existing page's content, since this tool replaces the ENTIRE pag
Inputs: path, content, wikiIdentifier, project
ado_wiki_delete_pageAZURE DEVOPS ONLY -- Delete a wiki page. This also deletes its sub-pages if any exist under it. Requires DEVOPS_ORG_URL + DEVOPS_PAT env vars (PAT needs Wiki: Read & Write scope).
Inputs: path, wikiIdentifier, project
ado_wiki_get_pageAZURE DEVOPS ONLY -- Read the content of a wiki page (and its immediate sub-page paths). path uses wiki page-path syntax, e.g. '/Home' or '/Architecture/Deployment'. Requires DEVOPS_ORG_URL + DEVOPS_PAT env vars.
Inputs: path, wikiIdentifier, includeSubPages, project
ado_wiki_listAZURE DEVOPS ONLY -- List all wikis in a project (the project wiki plus any published code-as-wiki repos). Use this FIRST when the user doesn't know the wiki's exact name/id, or to confirm which wiki to target before reading/writing a page.
Inputs: project
analyze_upgrade_impactWHEN: upgrading D365 F&O to a new version or applying a Microsoft update -- check if your custom code will break. Triggers: 'upgrade D365', 'mise à niveau', 'will this break after upgrade', 'compatibilité après upgrade', 'impact de la mise
appinsights_clear_connectionRemoves the Application Insights connection cached for the current session by appinsights_set_connection.
appinsights_diagnose_slownessWHEN: user wants to understand/deduce why a D365 F&O environment feels slow, using the real Application Insights telemetry the environment already emits -- no trace file upload needed. Runs a set of canned KQL queries and assembles one comb
Inputs: lookbackHours, minDurationMs, top
appinsights_queryRun a raw KQL (Kusto) query against the D365FO environment's Application Insights / Log Analytics workspace (read-only -- the query language has no mutation operators). Requires the connection to be configured first via appinsights_set_conn
Inputs: kql, lookbackHours, maxRows
appinsights_set_connectionSecurely register the D365 F&O environment's Application Insights / Log Analytics connection for the CURRENT session. The client secret is encrypted in memory (AES-256-GCM), never written to disk and never echoed back. Once set, appinsights
Inputs: workspaceId, tenantId, clientId, clientSecret, ttlMinutes
batch_searchWHEN: you need context on multiple D365 objects or concepts simultaneously -- runs all queries in parallel. Use INSTEAD of multiple sequential search_d365_code calls -- each line becomes one parallel search. Maximum 6 queries per call. Resu
Inputs: queries, topK, topObjects
compare_objectsCompare two D365 F&O objects side-by-side (fields, methods, signatures). Handy when investigating differences between standard and a customisation, or between two similar tables.
Inputs: objectNameA, objectNameB
create_aot_objectGenerate a complete, ready-to-deploy D365 F&O AOT XML scaffold for any object type. Returns the XML + the correct file path inside the model -- the calling client (VS Extension, Cursor, Copilot Chat) is responsible for writing the result to
Inputs: aotType, name, options
d365fo_clear_connectionRemoves the D365 F&O connection cached for the current session by d365fo_set_connection.
d365fo_set_connectionSecurely register the D365 F&O connection (URL + Entra app-registration credentials) for the CURRENT session. The client secret is encrypted in memory (AES-256-GCM), never written to disk and never echoed back. Once set, all odata_* and dmf
Inputs: baseUrl, tenantId, clientId, clientSecret, ttlMinutes
detect_performance_issuesProfile an X++ object for N+1 queries, queries in loops, missing field lists, row-by-row inserts/updates, missing firstOnly. Returns compact issue table with line + fix. Only call when performance is explicitly the concern — for general qua
Inputs: objectName, methodName
diff_model_versionsCompare two D365 F&O KB snapshots to produce a changelog (added/removed/modified objects). Use action 'save_baseline' once, then 'compare' between two snapshots.
Inputs: action, path1, path2OrLabel, filterModel
dmfConsolidated Data Management Framework tool — one entry point for all 5 DMF operations, selected via `action`. Each action forwards to the exact same implementation as its dedicated tool (dmf_import_file / dmf_create_data_project / dmf_appl
Inputs: action, entityName, legalEntity, filePath, csvContent, definitionGroupId
dmf_apply_entity_filterApply a single-field value filter to ONE entity row of an existing DMF project, so the export only contains the matching records. The kernel builds the packed query (custom 'GenerateQueryData' action), the container envelope is stripped on
Inputs: projectName, entityRowName, aotEntityName, fieldName, filterValue
dmf_create_data_projectCreate (or extend) a DMF data project -- EXPORT or IMPORT -- entirely through standard public OData entities, with NO X++ customization required. It POSTs the header to DataManagementDefinitionGroups and one row per entity to DataManagement
Inputs: projectName, entities, sourceName, operationType
dmf_export_packageTrigger a bulk export through the Data Management package REST API and return the download URL when complete. NOTE: the DMF EXPORT project (definitionGroupId) must already exist in FO with its entities + mapping configured -- create it with
Inputs: definitionGroupId, legalEntity, packageName, reExecute, pollTimeoutSeconds
dmf_get_job_statusPoll the status of a DMF import/export execution by its executionId (e.g. NotRun, Executing, Succeeded, PartiallySucceeded, Failed). For a completed export, also returns the download URL.
Inputs: executionId
dmf_import_fileBulk-import a CSV file into a D365 F&O entity through the Data Management package REST API. Builds the package (Manifest + header + CSV) in memory, uploads it to Azure blob, then calls ImportFromPackage which AUTO-CREATES the data project f
Inputs: entityName, legalEntity, filePath, csvContent, definitionGroupId, execute
dmf_transform_excelTransform a multi-sheet Excel (.xlsx) into DMF-ready rows using a data-driven JSON mapping -- equivalent to FO_TransformExcelForDMF. NO FO credentials required (offline transform). Provide the workbook via ONE of: sourceUrl (Blob/SharePoint
Inputs: mappingJson, sourceUrl, filePath, fileContentBase64, sheetName, format
explain_workflowWHEN: user asks how an approval workflow works, who approves a document, what states it goes through, or what happens on submission/rejection. NOT for technical workflow class details -- use `get_object_details`. WORKFLOW EXPLAINER (Busines
Inputs: objectName
federated_searchFan-out search across multiple ALM XPP MCP server instances in parallel and merge results using Reciprocal Rank Fusion (RRF). Useful when D365 code is split across multiple organisations or knowledge bases (e.g. one per client, one standard
Inputs: query, topK, peerApiKeys
find_callersFull cross-reference profile for a class or method: callers, callees, inheritance chain, interface implementations, overrides, attributes. Requires xref_index.json.gz (generated from DYNAMICSXREFDB via GenerateCache --xref-conn). Falls back
Inputs: methodKey, maxResults, depth, categories
find_change_impactWHEN: about to modify an X++ object or method and need to understand what could break. Returns a blast-radius report: direct callers, transitive dependents (BFS up to 3 hops), custom model extensions, interface propagation, and severity cla
Inputs: objectName, maxDepth
50 more tools

find_entity_for_table, find_error_patterns, find_event_handlers, find_extensions, find_references, find_related_objects, find_relation_path, find_similar_implementations, fix_best_practice_violations, generate_data_entity, generate_diagram, generate_fdd, generate_query, generate_release_note_document, generate_security_report, generate_unit_test, generate_xpp_form, generate_xpp_template, get_data_entity_info, get_menu_item_info, get_object_context, get_object_details, get_output_page, get_relation_graph, get_security_coverage_for_object, healthcheck, list_custom_model_objects, list_objects, list_release_note_inputs, map_business_process, odata_export_entity, odata_upsert_rows, plan_and_execute, prepare_release_note_context, recommend_extension_strategy, resolve_client_profile, resolve_workspace_roots, resync_devops_index, save_client_profile, search_context_docs, search_d365_code, search_labels, suggest_edt, suggest_refactoring, summarize_for_stakeholder, trace_field_lineage, trace_role_license_tree, trace_security_chain, validate_best_practices, validate_object_naming

Add ALM X++ to your AI client

Every block below points at https://api.almxpp.com/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http alm-x https://api.almxpp.com/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "alm-x": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.almxpp.com/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "alm-x": {
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "alm-x": {
      "type": "http",
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "alm-x": {
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "alm-x": {
      "serverUrl": "https://api.almxpp.com/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "alm-x": {
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: ALM X++
version: 0.0.1
schema: v1
mcpServers:
  - name: ALM X++
    type: streamable-http
    url: https://api.almxpp.com/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "alm-x": {
      "httpUrl": "https://api.almxpp.com/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "alm-x": {
      "type": "http",
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "alm-x": {
      "url": "https://api.almxpp.com/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fapi.almxpp.com%2Fmcp&type=streamable_http&id=alm-x&name=ALM%20X%2B%2B

Is ALM X++ up right now?

It answered our last check on 21 October 2026 in 116 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to ALM X++

Questions about ALM X++

How many tools does ALM X++ have?

90, as returned by the server's own tools/list on 13 September 2026: ado_analyze_pr_impact, ado_analyze_workitem, ado_create_task, ado_estimate_effort, ado_gap_fit_analysis, ado_list_prs, ado_post_comment, ado_post_pr_comment, and 82 more.

Is ALM X++ down?

It answered our last check on 21 October 2026 in 116 ms. Over 6 checks since 11 September 2026 it answered 6.

How do I add ALM X++ to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.almxpp.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does ALM X++ need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: io.github.alimbenhelal-pro. Endpoint host: api.almxpp.com. ARD identifier: urn:air:io.github.alimbenhelal-pro:mcp:alm-xpp-mcp. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.