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.
Collegati a ALM X++
ALM X++ richiede una chiave API. Collegati con il suo URL e la tua chiave:
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-xDescrizione
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 letturaRun an in-house best-practice audit on an AOT object from the indexed source.
find_extensionsSola letturaFind extension objects, CoC classes and event handlers for a base object.
dmf_import_filePuò eliminareBulk-import a CSV into a D365 F&O entity through the Data Management package API.
search_d365_codeSola letturaSearch the knowledge base for X++ code, tables, classes, forms and views.
dmf_transform_excelScriveTransform a multi-sheet Excel file into DMF-ready rows using a JSON mapping.
generate_querySola letturaGenerate X++ select or T-SQL for D365 tables with joins and filters.
ado_wiki_delete_pagePuò eliminareDelete an Azure DevOps wiki page and its sub-pages.
appinsights_diagnose_slownessSola letturaDiagnose slow D365 environments using Application Insights telemetry.
ado_wiki_listSola letturaList all wikis in an Azure DevOps project.
get_object_detailsSola letturaGet details of a D365 object by its exact name.
ado_query_workitemsSola letturaQuery Azure DevOps work items such as bugs, tasks, FDDs and user stories.
dmf_apply_entity_filterScriveApply a single-field value filter to an entity row of a DMF project.
Mostra altri 78 tool
ado_update_workitemPuò eliminareUpdate fields on an existing Azure DevOps work item.
find_referencesSola letturaScan the full index for all usages of an object, method, field or label.
ado_gap_fit_analysisSola letturaClassify a requirement as standard, configuration, extension or gap.
batch_searchSola letturaRun multiple D365 searches in parallel.
ado_read_attachmentSola letturaRead the content of a file attached to an Azure DevOps work item.
trace_field_lineageSola letturaTrace who writes and reads a table field, plus forms and reports using it.
plan_and_executePuò eliminareExecute a multi-step JSON plan by chaining tools in one call.
find_similar_implementationsSola letturaFind D365 objects structurally similar to a given one.
recommend_extension_strategySola letturaAdvise between table extension, Chain of Command, event handler or delegate.
diff_model_versionsSola letturaCompare two knowledge base snapshots into a changelog.
find_related_objectsSola letturaReturn outgoing relations and incoming back-references for an object.
ado_review_xpp_prSola letturaProduce a structured review of a pull request that changes X++ objects.
dmf_create_data_projectScriveCreate or extend a DMF export or import data project through OData.
find_entity_for_tableSola letturaFind the OData entity for a table, or generate an entity template.
summarize_for_stakeholderSola letturaRewrite technical tool output for a chosen audience.
suggest_refactoringSola letturaSuggest refactorings for an X++ object or method before a PR merge.
resync_devops_indexPuò eliminareForce a full re-download and re-index of an Azure DevOps custom model.
ado_wiki_get_pageSola letturaRead an Azure DevOps wiki page and its sub-page paths.
dmfScriveConsolidated Data Management Framework tool with an action parameter.
find_callersSola letturaShow callers, callees, inheritance and overrides for a class or method.
healthcheckSola letturaReport server status, loaded D365 version and index state.
ado_analyze_pr_impactSola letturaAnalyze what changed in a pull request and its impact.
find_error_patternsSola letturaExplain a D365 error message or exception and suggest causes.
suggest_edtSola letturaFind the best existing extended data type for a new table field.
get_object_contextSola letturaReturn structure, methods, relations and validation of an object in one call.
odata_upsert_rowsPuò eliminareIdempotently import rows into an entity via OData PATCH or POST.
find_change_impactSola letturaBlast-radius report of callers and dependents for a planned change.
generate_security_reportSola letturaReport roles, duties, privileges and license needs for indexed models.
ado_create_taskScriveWHEN: user asks to create a DevOps Task or start development on a Work Item.
appinsights_set_connectionScriveSecurely register the D365 F&O environment's Application Insights / Log Analytics connection for the CURRENT session.
dmf_get_job_statusSola letturaPoll the status of a DMF import/export execution by its executionId (e.g.
detect_performance_issuesSola letturaProfile an X++ object for N+1 queries, queries in loops, missing field lists, row-by-row inserts/updates, missing firstOnly.
get_relation_graphSola letturaWHEN: you need the COMPLETE bidirectional relation graph for an object in ONE call.
d365fo_clear_connectionScriveRemoves the D365 F&O connection cached for the current session by d365fo_set_connection.
generate_xpp_templateSola letturaWHEN: writing an extension or customization -- generates ready-to-use X++ code.
get_security_coverage_for_objectSola letturaWHEN: developer/security architect needs to know WHICH ROLES can access a specific form, table, menu item or service operation.
get_output_pageSola letturaRetrieve the NEXT page of a previously PAGINATED tool output.
ado_pr_dependency_mapSola letturaPR 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 letturaWHEN: user asks to write or generate a Functional Design Document, FDD, functional spec, CdC, or cahier des charges.
map_business_processSola letturaWHEN: mapping the technical D365 objects behind a business process, or understanding which tables/forms implement a flow.
ado_post_commentScriveWHEN: user explicitly asks to post, add, or save a comment to an ADO Work Item.
get_data_entity_infoSola letturaWHEN: 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 letturaCompare two D365 F&O objects side-by-side (fields, methods, signatures).
list_objectsSola letturaWHEN: you need ALL objects of a given type or in a given model.
explain_workflowSola letturaWHEN: 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 letturaWHEN: security design, licence audit, or 'what licence does this role require?'.
prepare_release_note_contextSola letturaWHEN: 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 letturaAZURE DEVOPS ONLY -- Fetch a Work Item and assemble ALL technical context needed for D365 F&O expert analysis.
ado_wiki_create_or_update_pagePuò eliminareAZURE DEVOPS ONLY -- Create a new wiki page, or OVERWRITE an existing one with new markdown content.
resolve_workspace_rootsSola letturaWHEN: you need to know which folder(s) are configured as the workspace/project root for the current caller.
resolve_client_profileSola letturaWHEN: 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 letturaWHEN: developer needs to write or scaffold unit tests for a custom D365 object.
create_aot_objectSola letturaGenerate a complete, ready-to-deploy D365 F&O AOT XML scaffold for any object type.
d365fo_set_connectionScriveSecurely register the D365 F&O connection (URL + Entra app-registration credentials) for the CURRENT session.
appinsights_clear_connectionScriveRemoves the Application Insights connection cached for the current session by appinsights_set_connection.
generate_data_entitySola letturaWHEN: developer needs to CREATE a data entity (AxDataEntityView) AOT XML from a table for OData/DMF/data migration.
find_event_handlersSola letturaFind all event handlers that subscribe to events on a D365 table or class.
generate_xpp_formSola letturaGenerate a complete, compilable AxForm AOT XML with the CORRECT control serialization (<AxFormControl xmlns="" i:type="...">) for the requested pattern.
appinsights_querySola letturaRun 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 letturaWHEN: 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 letturaWHEN: security audit -- need the TECHNICAL chain from Role/Duty/Privilege to Entry Points and Table/Form permissions.
find_relation_pathSola letturaWHEN: you need to know HOW two AOT objects are connected -- the chain of relations linking them.
ado_estimate_effortSola letturaWHEN: 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 letturaWHEN: 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 letturaWHEN: generating a visual diagram of D365 table relationships or security chains.
save_client_profilePuò eliminareWHEN: 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_packageScriveTrigger a bulk export through the Data Management package REST API and return the download URL when complete.
ado_post_pr_commentScriveWHEN: user explicitly asks to post, add, or save a review comment to an ADO Pull Request.
list_release_note_inputsSola letturaWHEN: 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 letturaFan-out search across multiple ALM XPP MCP server instances in parallel and merge results using Reciprocal Rank Fusion (RRF).
search_labelsSola letturaSearch D365 F&O labels across all indexed languages.
odata_export_entitySola letturaExport any D365 F&O data entity via OData (transactional, no DMF project required).
list_custom_model_objectsSola letturaWHEN: developer wants to see what custom/extension objects exist in their model.
analyze_upgrade_impactSola letturaWHEN: upgrading D365 F&O to a new version or applying a Microsoft update -- check if your custom code will break.
fix_best_practice_violationsSola letturaWHEN: validate_best_practices returned violations and you want concrete X++ fix suggestions.
generate_release_note_documentScriveWHEN: 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 letturaWHEN: 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
- 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>"- Sostituisci il segnaposto con la tua chiave prima di eseguirlo, poi controlla con
/mcpdentro Claude Code.
Aggiungi --scope user per renderlo disponibile in tutti i progetti, non solo in questo.
Claude Desktop
- 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:
{
"mcpServers": {
"alm-x": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.almxpp.com/mcp",
"--header",
"X-API-Key: <YOUR_API_KEY>"
]
}
}
}- Sostituisci il segnaposto con la tua chiave e riavvia Claude Desktop.
Il bridge richiede Node.js sul tuo computer.
claude.ai
- Apri il modulo dei connettori su claude.ai. Questo pulsante compila nome e URL per te:
Aggiungi a claude.ai (si apre in una nuova scheda)
- Controlla che l’URL sia
https://api.almxpp.com/mcp. In Request headers aggiungiX-API-Key: <YOUR_API_KEY>con la tua chiave di alimbenhelal-pro, poi fai clic su Add. - 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
Aggiungi a Cursor (si apre in una nuova scheda)
Oppure aggiungilo a mano in ~/.cursor/mcp.json (tutti i progetti) o in .cursor/mcp.json (questo progetto):
{
"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:
{
"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
- Aggiungilo a
~/.config/devin/mcp_config.json(macOS e Linux) o a%APPDATA%\devin\mcp_config.json(Windows):
{
"mcpServers": {
"alm-x": {
"serverUrl": "https://api.almxpp.com/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}- 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/mcpcodex 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:
[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/mcpCosì 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
[](https://mcp.tc/i/alm-x)<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
<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
<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.jsonPrompt 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.
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
[](https://mcp.tc/i/alm-x)
```
Riferimento: https://mcp.tc/it/embedCronologia 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.
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.