ALM X++

Server MCP di alimbenhelal-pro

Search and analyze Dynamics 365 Finance & Operations X++ code, and work with Azure DevOps work items, wikis and pull requests.

Serve una chiave API (Serve una chiave API del fornitore)Streamable HTTP

Collegati a ALM X++

ALM X++ richiede una chiave API. Collegati con il suo URL e la tua chiave:

https://api.almxpp.com/mcp

Invia la tua chiave nell’header X-API-Key. mcp.tc non vede né conserva mai le chiavi. Dove trovare una chiave

Condividi questo server

Apre questa pagina, con l’URL e i passaggi di configurazione.

mcp.tc/i/alm-x

Descrizione

ALM X++ answers D365 Finance & Operations questions from a prebuilt index of the standard codebase: over 200K AOT objects, 25M+ cross-references and label translations. Tools cover code search, object details, references and callers, change impact, extension strategy, best-practice checks, query generation and security reports. It also includes Azure DevOps tools for work items, wikis and X++ pull request review, plus Data Management Framework and OData import helpers.

It runs as a hosted streamable-http endpoint, or locally through the npx launcher almxppmcp. Both need an API token from almxpp.com, sent as the X-API-Key header or, for the npx launcher, in ALMXPPMCP_API_KEY. Azure DevOps tools need DEVOPS_ORG_URL and DEVOPS_PAT. Some tools write data or modify work items.

Cosa puoi fare

  • Search D365 F&O X++ code, tables, classes and forms by keyword or concept
  • Get object details, relations and full context for an exact AOT object
  • Find references, callers and change impact before editing an object
  • Recommend extension strategy such as Chain of Command or event handlers
  • Run best-practice audits and refactoring suggestions on X++ objects
  • Query, update and analyze Azure DevOps work items and wiki pages
  • Review X++ pull requests and analyze their impact
  • Import data through DMF and OData upsert tools

Tool 90

  • validate_best_practicesSola lettura

    Run an in-house best-practice audit on an AOT object from the indexed source.

  • find_extensionsSola lettura

    Find extension objects, CoC classes and event handlers for a base object.

  • dmf_import_filePuò eliminare

    Bulk-import a CSV into a D365 F&O entity through the Data Management package API.

  • search_d365_codeSola lettura

    Search the knowledge base for X++ code, tables, classes, forms and views.

  • dmf_transform_excelScrive

    Transform a multi-sheet Excel file into DMF-ready rows using a JSON mapping.

  • generate_querySola lettura

    Generate X++ select or T-SQL for D365 tables with joins and filters.

  • ado_wiki_delete_pagePuò eliminare

    Delete an Azure DevOps wiki page and its sub-pages.

  • appinsights_diagnose_slownessSola lettura

    Diagnose slow D365 environments using Application Insights telemetry.

  • ado_wiki_listSola lettura

    List all wikis in an Azure DevOps project.

  • get_object_detailsSola lettura

    Get details of a D365 object by its exact name.

  • ado_query_workitemsSola lettura

    Query Azure DevOps work items such as bugs, tasks, FDDs and user stories.

  • dmf_apply_entity_filterScrive

    Apply a single-field value filter to an entity row of a DMF project.

Mostra altri 78 tool
  • ado_update_workitemPuò eliminare

    Update fields on an existing Azure DevOps work item.

  • find_referencesSola lettura

    Scan the full index for all usages of an object, method, field or label.

  • ado_gap_fit_analysisSola lettura

    Classify a requirement as standard, configuration, extension or gap.

  • batch_searchSola lettura

    Run multiple D365 searches in parallel.

  • ado_read_attachmentSola lettura

    Read the content of a file attached to an Azure DevOps work item.

  • trace_field_lineageSola lettura

    Trace who writes and reads a table field, plus forms and reports using it.

  • plan_and_executePuò eliminare

    Execute a multi-step JSON plan by chaining tools in one call.

  • find_similar_implementationsSola lettura

    Find D365 objects structurally similar to a given one.

  • recommend_extension_strategySola lettura

    Advise between table extension, Chain of Command, event handler or delegate.

  • diff_model_versionsSola lettura

    Compare two knowledge base snapshots into a changelog.

  • find_related_objectsSola lettura

    Return outgoing relations and incoming back-references for an object.

  • ado_review_xpp_prSola lettura

    Produce a structured review of a pull request that changes X++ objects.

  • dmf_create_data_projectScrive

    Create or extend a DMF export or import data project through OData.

  • find_entity_for_tableSola lettura

    Find the OData entity for a table, or generate an entity template.

  • summarize_for_stakeholderSola lettura

    Rewrite technical tool output for a chosen audience.

  • suggest_refactoringSola lettura

    Suggest refactorings for an X++ object or method before a PR merge.

  • resync_devops_indexPuò eliminare

    Force a full re-download and re-index of an Azure DevOps custom model.

  • ado_wiki_get_pageSola lettura

    Read an Azure DevOps wiki page and its sub-page paths.

  • dmfScrive

    Consolidated Data Management Framework tool with an action parameter.

  • find_callersSola lettura

    Show callers, callees, inheritance and overrides for a class or method.

  • healthcheckSola lettura

    Report server status, loaded D365 version and index state.

  • ado_analyze_pr_impactSola lettura

    Analyze what changed in a pull request and its impact.

  • find_error_patternsSola lettura

    Explain a D365 error message or exception and suggest causes.

  • suggest_edtSola lettura

    Find the best existing extended data type for a new table field.

  • get_object_contextSola lettura

    Return structure, methods, relations and validation of an object in one call.

  • odata_upsert_rowsPuò eliminare

    Idempotently import rows into an entity via OData PATCH or POST.

  • find_change_impactSola lettura

    Blast-radius report of callers and dependents for a planned change.

  • generate_security_reportSola lettura

    Report roles, duties, privileges and license needs for indexed models.

  • ado_create_taskScrive

    WHEN: user asks to create a DevOps Task or start development on a Work Item.

  • appinsights_set_connectionScrive

    Securely register the D365 F&O environment's Application Insights / Log Analytics connection for the CURRENT session.

  • dmf_get_job_statusSola lettura

    Poll the status of a DMF import/export execution by its executionId (e.g.

  • detect_performance_issuesSola lettura

    Profile an X++ object for N+1 queries, queries in loops, missing field lists, row-by-row inserts/updates, missing firstOnly.

  • get_relation_graphSola lettura

    WHEN: you need the COMPLETE bidirectional relation graph for an object in ONE call.

  • d365fo_clear_connectionScrive

    Removes the D365 F&O connection cached for the current session by d365fo_set_connection.

  • generate_xpp_templateSola lettura

    WHEN: writing an extension or customization -- generates ready-to-use X++ code.

  • get_security_coverage_for_objectSola lettura

    WHEN: developer/security architect needs to know WHICH ROLES can access a specific form, table, menu item or service operation.

  • get_output_pageSola lettura

    Retrieve the NEXT page of a previously PAGINATED tool output.

  • ado_pr_dependency_mapSola lettura

    PR 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.

  • generate_fddSola lettura

    WHEN: user asks to write or generate a Functional Design Document, FDD, functional spec, CdC, or cahier des charges.

  • map_business_processSola lettura

    WHEN: mapping the technical D365 objects behind a business process, or understanding which tables/forms implement a flow.

  • ado_post_commentScrive

    WHEN: user explicitly asks to post, add, or save a comment to an ADO Work Item.

  • get_data_entity_infoSola lettura

    WHEN: developer building an OData / DMF integration needs a quick rundown of a specific data entity: its public OData name, datasources, key fields, and IsPublic status.

  • compare_objectsSola lettura

    Compare two D365 F&O objects side-by-side (fields, methods, signatures).

  • list_objectsSola lettura

    WHEN: you need ALL objects of a given type or in a given model.

  • explain_workflowSola lettura

    WHEN: user asks how an approval workflow works, who approves a document, what states it goes through, or what happens on submission/rejection.

  • trace_role_license_treeSola lettura

    WHEN: security design, licence audit, or 'what licence does this role require?'.

  • prepare_release_note_contextSola lettura

    WHEN: building an AI-assisted D365 F&O upgrade release note (regressions + opportunities) for a specific client, and you (the calling assistant) want to do the reasoning yourself instead of the…

  • ado_analyze_workitemSola lettura

    AZURE DEVOPS ONLY -- Fetch a Work Item and assemble ALL technical context needed for D365 F&O expert analysis.

  • ado_wiki_create_or_update_pagePuò eliminare

    AZURE DEVOPS ONLY -- Create a new wiki page, or OVERWRITE an existing one with new markdown content.

  • resolve_workspace_rootsSola lettura

    WHEN: you need to know which folder(s) are configured as the workspace/project root for the current caller.

  • resolve_client_profileSola lettura

    WHEN: at the START of any release-note / upgrade-impact conversation -- call this BEFORE list_release_note_inputs to check whether a Client Profile already exists for the CURRENT caller's Azure…

  • generate_unit_testSola lettura

    WHEN: developer needs to write or scaffold unit tests for a custom D365 object.

  • create_aot_objectSola lettura

    Generate a complete, ready-to-deploy D365 F&O AOT XML scaffold for any object type.

  • d365fo_set_connectionScrive

    Securely register the D365 F&O connection (URL + Entra app-registration credentials) for the CURRENT session.

  • appinsights_clear_connectionScrive

    Removes the Application Insights connection cached for the current session by appinsights_set_connection.

  • generate_data_entitySola lettura

    WHEN: developer needs to CREATE a data entity (AxDataEntityView) AOT XML from a table for OData/DMF/data migration.

  • find_event_handlersSola lettura

    Find all event handlers that subscribe to events on a D365 table or class.

  • generate_xpp_formSola lettura

    Generate a complete, compilable AxForm AOT XML with the CORRECT control serialization (<AxFormControl xmlns="" i:type="...">) for the requested pattern.

  • appinsights_querySola lettura

    Run a raw KQL (Kusto) query against the D365FO environment's Application Insights / Log Analytics workspace (read-only -- the query language has no mutation operators).

  • search_context_docsSola lettura

    WHEN: the user asks about business/functional context that lives OUTSIDE the D365 code KB -- specs, functional design docs, mapping sheets, contracts, meeting notes, screenshots' captions…

  • trace_security_chainSola lettura

    WHEN: security audit -- need the TECHNICAL chain from Role/Duty/Privilege to Entry Points and Table/Form permissions.

  • find_relation_pathSola lettura

    WHEN: you need to know HOW two AOT objects are connected -- the chain of relations linking them.

  • ado_estimate_effortSola lettura

    WHEN: user asks for an effort estimate, chiffrage, or development hours for a D365 Work Item.

  • ado_list_prsSola lettura

    [~] 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…

  • validate_object_namingSola lettura

    WHEN: developer needs to check that a proposed object name follows D365 + ISV naming conventions, is unique against the indexed KB, and does not collide with a reserved or standard prefix.

  • generate_diagramSola lettura

    WHEN: generating a visual diagram of D365 table relationships or security chains.

  • save_client_profilePuò eliminare

    WHEN: no profile was found by resolve_client_profile and the user wants one created (or updated) for their client, so future release-note requests never need v1/v2/customModelIds again.

  • dmf_export_packageScrive

    Trigger a bulk export through the Data Management package REST API and return the download URL when complete.

  • ado_post_pr_commentScrive

    WHEN: user explicitly asks to post, add, or save a review comment to an ADO Pull Request.

  • list_release_note_inputsSola lettura

    WHEN: ALWAYS call this FIRST, before prepare_release_note_context -- it discovers the exact D365FO version strings and custom model ids actually indexed on THIS server, which you cannot guess.

  • federated_searchSola lettura

    Fan-out search across multiple ALM XPP MCP server instances in parallel and merge results using Reciprocal Rank Fusion (RRF).

  • search_labelsSola lettura

    Search D365 F&O labels across all indexed languages.

  • odata_export_entitySola lettura

    Export any D365 F&O data entity via OData (transactional, no DMF project required).

  • list_custom_model_objectsSola lettura

    WHEN: developer wants to see what custom/extension objects exist in their model.

  • analyze_upgrade_impactSola lettura

    WHEN: upgrading D365 F&O to a new version or applying a Microsoft update -- check if your custom code will break.

  • fix_best_practice_violationsSola lettura

    WHEN: validate_best_practices returned violations and you want concrete X++ fix suggestions.

  • generate_release_note_documentScrive

    WHEN: you have already called prepare_release_note_context and analyzed its 'objects' array yourself, producing a findings JSON array per the 'instructions' field it returned.

  • get_menu_item_infoSola lettura

    WHEN: developer needs to resolve a menu item -- find its target object (form / action / output), linked security privilege, label, and parameters.

Letti dal server attivo (7 ott 2026). Sola lettura, Scrive e Può eliminare sono indicazioni dichiarate dal server; è il tuo client a decidere se chiederti conferma prima di eseguire un tool.

Prompt di esempio

  • Find all extensions of SalesTable and show the Chain of Command classes.

  • Generate an X++ select joining CustTable and CustTrans for one customer group.

  • What breaks if I change the method validateWrite on VendInvoiceJour?

  • Review Azure DevOps pull request 1234 for X++ impact.

Configurazione

Ogni client si collega a api.almxpp.com. Scegli il tuo; la pagina ricorda la tua scelta.

Claude Code

  1. Eseguilo in un terminale, nella cartella del tuo progetto:
claude mcp add --transport http alm-x https://api.almxpp.com/mcp --header "X-API-Key: <YOUR_API_KEY>"
  1. Sostituisci il segnaposto con la tua chiave prima di eseguirlo, poi controlla con /mcp dentro Claude Code.

Aggiungi --scope user per renderlo disponibile in tutti i progetti, non solo in questo.

Claude Desktop

  1. Usa il bridge mcp-remote, che tiene la chiave su questo computer (anche un connettore aggiunto su claude.ai con la chiave in Request headers compare qui). Apri Settings → Developer → Edit Config e aggiungi:
claude_desktop_config.json
{
  "mcpServers": {
    "alm-x": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.almxpp.com/mcp",
        "--header",
        "X-API-Key: <YOUR_API_KEY>"
      ]
    }
  }
}
  1. Sostituisci il segnaposto con la tua chiave e riavvia Claude Desktop.

Il bridge richiede Node.js sul tuo computer.

claude.ai

  1. Apri il modulo dei connettori su claude.ai. Questo pulsante compila nome e URL per te:
  1. Controlla che l’URL sia https://api.almxpp.com/mcp. In Request headers aggiungi X-API-Key: <YOUR_API_KEY> con la tua chiave di alimbenhelal-pro, poi fai clic su Add.
  2. Attivalo in una chat dal menu degli strumenti.

I piani gratuiti consentono un connettore personalizzato. Nei piani Team ed Enterprise lo aggiunge un owner in Organization settings → Connectors.

Cursor

Oppure aggiungilo a mano in ~/.cursor/mcp.json (tutti i progetti) o in .cursor/mcp.json (questo progetto):

mcp.json
{
  "mcpServers": {
    "alm-x": {
      "url": "https://api.almxpp.com/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

VS Code

Aggiungilo a .vscode/mcp.json. VS Code chiede la chiave la prima volta e la conserva in modo sicuro:

.vscode/mcp.json
{
  "servers": {
    "alm-x": {
      "type": "http",
      "url": "https://api.almxpp.com/mcp",
      "headers": {
        "X-API-Key": "${input:x-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "x-api-key",
      "description": "X-API-Key",
      "password": true
    }
  ]
}

Devin Desktop

  1. Aggiungilo a ~/.config/devin/mcp_config.json (macOS e Linux) o a %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "alm-x": {
      "serverUrl": "https://api.almxpp.com/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}
  1. Aggiorna l’elenco dei server MCP in Cascade.

Devin Desktop è il nuovo nome di Windsurf. Per i server remoti legge serverUrl (o url).

Codex

codex mcp add alm-x --url https://api.almxpp.com/mcp

codex mcp add non può impostare l’header X-API-Key, quindi questo passaggio è necessario: metti questa voce in ~/.codex/config.toml invece di eseguire il comando, oppure aggiungi la sua riga env_http_headers alla voce creata dal comando:

config.toml
[mcp_servers.alm-x]
url = "https://api.almxpp.com/mcp"
env_http_headers = { "X-API-Key" = "X_API_KEY" }

Codex legge i valori degli header dalle variabili d’ambiente indicate in env_http_headers.

Gemini CLI

gemini mcp add --transport http --header "X-API-Key: <YOUR_API_KEY>" alm-x https://api.almxpp.com/mcp

Così lo aggiungi al progetto corrente. Aggiungi -s user per usarlo ovunque.

Qualsiasi client

La maggior parte dei client accetta questa forma. Alcuni chiamano diversamente il campo dell’URL: serverUrl in Devin Desktop, httpUrl nel file di impostazioni di Gemini CLI.

{
  "mcpServers": {
    "alm-x": {
      "type": "http",
      "url": "https://api.almxpp.com/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

Zed mette i server sotto context_servers nelle sue impostazioni. Cline ha bisogno di "type": "streamableHttp", altrimenti presume SSE.

Il tuo client avvia solo server locali? Collegalo con npx -y mcp-remote https://api.almxpp.com/mcp.

Embed

Mostra ALM X++ in un README o sul tuo sito. Ogni embed rimanda a questa pagina, usa l’URL del server stesso e non imposta cookie. Come funzionano gli embed

Card, iframe e JSON sono in inglese. Aggiungi ?lang=it, fr, de o es al loro indirizzo per un’altra lingua.

Badge per il README

Anteprima del badge, chiaroAnteprima del badge, scuro
Markdown
[![ALM X++ on mcp.tc](https://mcp.tc/i/alm-x/badge.svg)](https://mcp.tc/i/alm-x)
HTML
<a href="https://mcp.tc/i/alm-x"><img src="https://mcp.tc/i/alm-x/badge.svg" alt="ALM X++ on mcp.tc" height="20"></a>

Segue la modalità chiara o scura di chi legge. Aggiungi ?theme=light o ?theme=dark per fissarla, oppure ?style=compact per mostrare il simbolo senza la scritta.

Card per il sito

HTML
<script src="https://mcp.tc/w/alm-x.js" async></script>

La card compare dove si trova il tag. Aggiungi data-theme="dark" o data-size="compact" al tag per cambiarla. Il file contiene tutto ciò che serve, quindi non fa altre richieste e non imposta cookie.

iframe

HTML
<iframe src="https://mcp.tc/embed/alm-x" title="ALM X++ on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

Usalo nelle pagine che non consentono script. Aggiungi ?theme=light o ?theme=dark all’indirizzo per fissare i colori.

JSON

La scheda come dati per le tue pagine e i tuoi strumenti: nome, descrizione breve, URL del server, tool e i link «Add to». Qualsiasi sito può leggerla (CORS aperto).

https://mcp.tc/i/alm-x.json

Cosa significa ogni campo

Prompt per l’AI

Incollalo in un assistente di programmazione con l’AI, come Claude Code o Cursor, e aggiungerà la card di ALM X++ al tuo sito.

Markdown
Aggiungi al mio sito la card di mcp.tc per ALM X++, un server MCP. È un solo script statico: niente build, nessun pacchetto da installare, nessun cookie.

Metti questo tag dove deve comparire la card. La card appare subito prima del tag:

```html
<script src="https://mcp.tc/w/alm-x.js" async></script>
```

Per mostrarla altrove, metti lì questo segnaposto e carica lo stesso script una volta sola, per esempio prima di `</body>`. Lascia il link al suo interno: lo vede chi non ha JavaScript.

```html
<div data-mcptc="alm-x"><a href="https://mcp.tc/i/alm-x">ALM X++ on mcp.tc</a></div>
```

Opzioni:
- `data-theme="light"` o `"dark"` sul tag o sul segnaposto fissa i colori. Senza l’attributo, la card segue la modalità chiara o scura di chi visita.
- `data-size="compact"` dà una card più piccola, senza la descrizione breve.
- La variabile CSS `--mcptc-max-width` sul segnaposto o su un elemento padre imposta la larghezza (predefinita `520px`).
- `?lang=` nell’URL dello script imposta la lingua della card: `en`, `it`, `fr`, `de` o `es`.

Se il sito ha una Content Security Policy, consenti `script-src https://mcp.tc` e `img-src data:` (l’icona è inline).

Per un README o altra documentazione in Markdown, usa invece il badge:

```markdown
[![ALM X++ on mcp.tc](https://mcp.tc/i/alm-x/badge.svg)](https://mcp.tc/i/alm-x)
```

Riferimento: https://mcp.tc/it/embed

Cronologia delle modifiche

Leggiamo l’elenco dei tool di questo server ogni 3 ore e registriamo cosa cambia. Ultima lettura: 8 ott 2026, 10:34 UTC.

Segui ALM X++ e ti mandiamo un’email quando qualcosa cambia.

  1. , Controllo automatico

    Inizio del tracciamento: 90 tool.

Domande frequenti

Posso incollare mcp.tc/i/alm-x nel mio client MCP?

No. I link di mcp.tc sono pagine, non indirizzi di server. Collegati con https://api.almxpp.com/mcp, così il tuo client parla direttamente con ALM X++. Anche la tua chiave va lì, mai a mcp.tc. Il link rapido serve per condividere: apre questa pagina, con i passaggi di configurazione per ogni client.

ALM X++ richiede una chiave API o un accesso?

Sì. ALM X++ richiede una chiave API, inviata nell’header X-API-Key. Procuratene una da alimbenhelal-pro e tienila nella configurazione del tuo client, mai in un file condiviso.

ALM X++ è un server remoto o locale?

Remoto. Lo ospita alimbenhelal-pro a https://api.almxpp.com/mcp, e usa Streamable HTTP. Non c’è nulla da installare.

Cosa può fare ALM X++?

Ha 90 tool, tra cui validate_best_practices, find_extensions e dmf_import_file.

Quali client possono usarlo?

Qualsiasi client che supporta i server MCP remoti e può inviare la tua chiave: Claude Code, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed e altri. Su claude.ai e Claude Desktop aggiungi la chiave come header della richiesta quando crei il connettore personalizzato. ChatGPT non può inviare una chiave, quindi non può usarlo.

mcp.tc tiene traccia delle modifiche di ALM X++?

Sì. La sezione Cronologia di ALM X++ mostra ogni modifica che troviamo ai suoi tool, fino a descrizioni e parametri, più le nuove versioni e le modifiche di chi lo gestisce. Segui la scheda per ricevere un’email quando cambia.

Chi ha scritto questa pagina?

Il robot di mcp.tc ha letto i metadati di ALM X++ (il suo handshake MCP, l’elenco dei tool e le pagine pubbliche), e un modello di AI ne ha ricavato il testo. Una persona esamina tutto ciò che i controlli non riescono a confermare. Il testo può comunque contenere errori, quindi se ne trovi uno usa Segnala questa scheda su questa pagina.

mcp.tc non è affiliato a alimbenhelal-pro. Questa pagina è stata creata a partire dai metadati pubblici di ALM X++ (ultimo controllo: 7 ott 2026), e la descrizione l’ha scritta un modello di AI, quindi può contenere errori. Nomi e marchi appartengono ai rispettivi titolari. Qualcosa non va? Segnala questa scheda.