ALM X++
Servidor MCP de alimbenhelal-pro
Search and analyze Dynamics 365 Finance & Operations X++ code, and work with Azure DevOps work items, wikis and pull requests.
Conectar con ALM X++
ALM X++ requiere una clave de API. Conéctate con su propia URL y tu clave:
Envía tu clave en la cabecera X-API-Key. mcp.tc nunca ve ni guarda claves. Dónde conseguir una clave
Compartir este servidor
El enlace abre esta página, con la URL y los pasos de configuración.
mcp.tc/i/alm-xDescripción
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.
Qué puedes hacer
- 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
Herramientas 90
validate_best_practicesSolo lecturaRun an in-house best-practice audit on an AOT object from the indexed source.
find_extensionsSolo lecturaFind extension objects, CoC classes and event handlers for a base object.
dmf_import_filePuede borrarBulk-import a CSV into a D365 F&O entity through the Data Management package API.
search_d365_codeSolo lecturaSearch the knowledge base for X++ code, tables, classes, forms and views.
dmf_transform_excelEscrituraTransform a multi-sheet Excel file into DMF-ready rows using a JSON mapping.
generate_querySolo lecturaGenerate X++ select or T-SQL for D365 tables with joins and filters.
ado_wiki_delete_pagePuede borrarDelete an Azure DevOps wiki page and its sub-pages.
appinsights_diagnose_slownessSolo lecturaDiagnose slow D365 environments using Application Insights telemetry.
ado_wiki_listSolo lecturaList all wikis in an Azure DevOps project.
get_object_detailsSolo lecturaGet details of a D365 object by its exact name.
ado_query_workitemsSolo lecturaQuery Azure DevOps work items such as bugs, tasks, FDDs and user stories.
dmf_apply_entity_filterEscrituraApply a single-field value filter to an entity row of a DMF project.
Mostrar 78 herramientas más
ado_update_workitemPuede borrarUpdate fields on an existing Azure DevOps work item.
find_referencesSolo lecturaScan the full index for all usages of an object, method, field or label.
ado_gap_fit_analysisSolo lecturaClassify a requirement as standard, configuration, extension or gap.
batch_searchSolo lecturaRun multiple D365 searches in parallel.
ado_read_attachmentSolo lecturaRead the content of a file attached to an Azure DevOps work item.
trace_field_lineageSolo lecturaTrace who writes and reads a table field, plus forms and reports using it.
plan_and_executePuede borrarExecute a multi-step JSON plan by chaining tools in one call.
find_similar_implementationsSolo lecturaFind D365 objects structurally similar to a given one.
recommend_extension_strategySolo lecturaAdvise between table extension, Chain of Command, event handler or delegate.
diff_model_versionsSolo lecturaCompare two knowledge base snapshots into a changelog.
find_related_objectsSolo lecturaReturn outgoing relations and incoming back-references for an object.
ado_review_xpp_prSolo lecturaProduce a structured review of a pull request that changes X++ objects.
dmf_create_data_projectEscrituraCreate or extend a DMF export or import data project through OData.
find_entity_for_tableSolo lecturaFind the OData entity for a table, or generate an entity template.
summarize_for_stakeholderSolo lecturaRewrite technical tool output for a chosen audience.
suggest_refactoringSolo lecturaSuggest refactorings for an X++ object or method before a PR merge.
resync_devops_indexPuede borrarForce a full re-download and re-index of an Azure DevOps custom model.
ado_wiki_get_pageSolo lecturaRead an Azure DevOps wiki page and its sub-page paths.
dmfEscrituraConsolidated Data Management Framework tool with an action parameter.
find_callersSolo lecturaShow callers, callees, inheritance and overrides for a class or method.
healthcheckSolo lecturaReport server status, loaded D365 version and index state.
ado_analyze_pr_impactSolo lecturaAnalyze what changed in a pull request and its impact.
find_error_patternsSolo lecturaExplain a D365 error message or exception and suggest causes.
suggest_edtSolo lecturaFind the best existing extended data type for a new table field.
get_object_contextSolo lecturaReturn structure, methods, relations and validation of an object in one call.
odata_upsert_rowsPuede borrarIdempotently import rows into an entity via OData PATCH or POST.
find_change_impactSolo lecturaBlast-radius report of callers and dependents for a planned change.
generate_security_reportSolo lecturaReport roles, duties, privileges and license needs for indexed models.
ado_create_taskEscrituraWHEN: user asks to create a DevOps Task or start development on a Work Item.
appinsights_set_connectionEscrituraSecurely register the D365 F&O environment's Application Insights / Log Analytics connection for the CURRENT session.
dmf_get_job_statusSolo lecturaPoll the status of a DMF import/export execution by its executionId (e.g.
detect_performance_issuesSolo lecturaProfile an X++ object for N+1 queries, queries in loops, missing field lists, row-by-row inserts/updates, missing firstOnly.
get_relation_graphSolo lecturaWHEN: you need the COMPLETE bidirectional relation graph for an object in ONE call.
d365fo_clear_connectionEscrituraRemoves the D365 F&O connection cached for the current session by d365fo_set_connection.
generate_xpp_templateSolo lecturaWHEN: writing an extension or customization -- generates ready-to-use X++ code.
get_security_coverage_for_objectSolo lecturaWHEN: developer/security architect needs to know WHICH ROLES can access a specific form, table, menu item or service operation.
get_output_pageSolo lecturaRetrieve the NEXT page of a previously PAGINATED tool output.
ado_pr_dependency_mapSolo lecturaPR 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_fddSolo lecturaWHEN: user asks to write or generate a Functional Design Document, FDD, functional spec, CdC, or cahier des charges.
map_business_processSolo lecturaWHEN: mapping the technical D365 objects behind a business process, or understanding which tables/forms implement a flow.
ado_post_commentEscrituraWHEN: user explicitly asks to post, add, or save a comment to an ADO Work Item.
get_data_entity_infoSolo lecturaWHEN: 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_objectsSolo lecturaCompare two D365 F&O objects side-by-side (fields, methods, signatures).
list_objectsSolo lecturaWHEN: you need ALL objects of a given type or in a given model.
explain_workflowSolo lecturaWHEN: 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_treeSolo lecturaWHEN: security design, licence audit, or 'what licence does this role require?'.
prepare_release_note_contextSolo lecturaWHEN: 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_workitemSolo lecturaAZURE DEVOPS ONLY -- Fetch a Work Item and assemble ALL technical context needed for D365 F&O expert analysis.
ado_wiki_create_or_update_pagePuede borrarAZURE DEVOPS ONLY -- Create a new wiki page, or OVERWRITE an existing one with new markdown content.
resolve_workspace_rootsSolo lecturaWHEN: you need to know which folder(s) are configured as the workspace/project root for the current caller.
resolve_client_profileSolo lecturaWHEN: 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_testSolo lecturaWHEN: developer needs to write or scaffold unit tests for a custom D365 object.
create_aot_objectSolo lecturaGenerate a complete, ready-to-deploy D365 F&O AOT XML scaffold for any object type.
d365fo_set_connectionEscrituraSecurely register the D365 F&O connection (URL + Entra app-registration credentials) for the CURRENT session.
appinsights_clear_connectionEscrituraRemoves the Application Insights connection cached for the current session by appinsights_set_connection.
generate_data_entitySolo lecturaWHEN: developer needs to CREATE a data entity (AxDataEntityView) AOT XML from a table for OData/DMF/data migration.
find_event_handlersSolo lecturaFind all event handlers that subscribe to events on a D365 table or class.
generate_xpp_formSolo lecturaGenerate a complete, compilable AxForm AOT XML with the CORRECT control serialization (<AxFormControl xmlns="" i:type="...">) for the requested pattern.
appinsights_querySolo lecturaRun 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_docsSolo lecturaWHEN: 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_chainSolo lecturaWHEN: security audit -- need the TECHNICAL chain from Role/Duty/Privilege to Entry Points and Table/Form permissions.
find_relation_pathSolo lecturaWHEN: you need to know HOW two AOT objects are connected -- the chain of relations linking them.
ado_estimate_effortSolo lecturaWHEN: user asks for an effort estimate, chiffrage, or development hours for a D365 Work Item.
ado_list_prsSolo lectura[~] 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_namingSolo lecturaWHEN: 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_diagramSolo lecturaWHEN: generating a visual diagram of D365 table relationships or security chains.
save_client_profilePuede borrarWHEN: 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_packageEscrituraTrigger a bulk export through the Data Management package REST API and return the download URL when complete.
ado_post_pr_commentEscrituraWHEN: user explicitly asks to post, add, or save a review comment to an ADO Pull Request.
list_release_note_inputsSolo lecturaWHEN: 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_searchSolo lecturaFan-out search across multiple ALM XPP MCP server instances in parallel and merge results using Reciprocal Rank Fusion (RRF).
search_labelsSolo lecturaSearch D365 F&O labels across all indexed languages.
odata_export_entitySolo lecturaExport any D365 F&O data entity via OData (transactional, no DMF project required).
list_custom_model_objectsSolo lecturaWHEN: developer wants to see what custom/extension objects exist in their model.
analyze_upgrade_impactSolo lecturaWHEN: upgrading D365 F&O to a new version or applying a Microsoft update -- check if your custom code will break.
fix_best_practice_violationsSolo lecturaWHEN: validate_best_practices returned violations and you want concrete X++ fix suggestions.
generate_release_note_documentEscrituraWHEN: 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_infoSolo lecturaWHEN: developer needs to resolve a menu item -- find its target object (form / action / output), linked security privilege, label, and parameters.
Leídas del servidor en funcionamiento el 7 oct 2026. Solo lectura, Escritura y Puede borrar son indicaciones que declara el servidor; tu cliente decide si te pregunta antes de ejecutar una herramienta.
Prompts de ejemplo
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.
Configuración
Todos los clientes se conectan a api.almxpp.com. Elige el tuyo; la página recuerda tu elección.
Claude Code
- Ejecútalo en un terminal, en la carpeta de tu proyecto:
claude mcp add --transport http alm-x https://api.almxpp.com/mcp --header "X-API-Key: <YOUR_API_KEY>"- Sustituye el marcador por tu clave antes de ejecutarlo, y después compruébalo con
/mcpdentro de Claude Code.
Añade --scope user para que esté disponible en todos los proyectos, no solo en este.
Claude Desktop
- Usa el puente
mcp-remote, que guarda la clave en este equipo (un conector añadido en claude.ai con la clave en Request headers también aparece aquí). Abre Settings → Developer → Edit Config y añade:
{
"mcpServers": {
"alm-x": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.almxpp.com/mcp",
"--header",
"X-API-Key: <YOUR_API_KEY>"
]
}
}
}- Sustituye el marcador por tu clave y reinicia Claude Desktop.
El puente necesita Node.js en tu equipo.
claude.ai
- Abre el formulario de conectores en claude.ai. Este botón rellena el nombre y la URL por ti:
Añadir a claude.ai (se abre en una pestaña nueva)
- Comprueba que la URL es
https://api.almxpp.com/mcp. En Request headers, añadeX-API-Key: <YOUR_API_KEY>con tu clave de alimbenhelal-pro y luego haz clic en Add. - Actívalo en un chat desde el menú de herramientas.
Los planes gratuitos permiten un conector personalizado. En los planes Team y Enterprise lo añade un propietario en Organization settings → Connectors.
Cursor
Añadir a Cursor (se abre en una pestaña nueva)
O añádelo a mano en ~/.cursor/mcp.json (todos los proyectos) o en .cursor/mcp.json (este proyecto):
{
"mcpServers": {
"alm-x": {
"url": "https://api.almxpp.com/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}VS Code
Añádelo a .vscode/mcp.json. VS Code pide la clave la primera vez y la guarda de forma segura:
{
"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
- Añádelo a
~/.config/devin/mcp_config.json(macOS y 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>"
}
}
}
}- Actualiza la lista de servidores MCP en Cascade.
Devin Desktop es el nuevo nombre de Windsurf. Para los servidores remotos lee serverUrl (o url).
Codex
codex mcp add alm-x --url https://api.almxpp.com/mcpcodex mcp add no puede definir la cabecera X-API-Key, así que este paso es obligatorio: pon esta entrada en ~/.codex/config.toml en lugar de ejecutar el comando, o añade su línea env_http_headers a la entrada que creó el comando:
[mcp_servers.alm-x]
url = "https://api.almxpp.com/mcp"
env_http_headers = { "X-API-Key" = "X_API_KEY" }Codex lee los valores de las cabeceras de las variables de entorno indicadas en env_http_headers.
Gemini CLI
gemini mcp add --transport http --header "X-API-Key: <YOUR_API_KEY>" alm-x https://api.almxpp.com/mcpAsí lo añades al proyecto actual. Añade -s user para usarlo en todas partes.
Cualquier cliente
La mayoría de los clientes aceptan esta forma. Algunos llaman de otra manera al campo de la URL: serverUrl en Devin Desktop, httpUrl en el archivo de ajustes de Gemini CLI.
{
"mcpServers": {
"alm-x": {
"type": "http",
"url": "https://api.almxpp.com/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}Zed pone los servidores bajo context_servers en sus ajustes. Cline necesita "type": "streamableHttp"; si no, supone SSE.
¿Tu cliente solo inicia servidores locales? Conéctalo con npx -y mcp-remote https://api.almxpp.com/mcp.
Insertar
Muestra ALM X++ en un README o en tu web. Cada inserción enlaza a esta página, usa la URL propia del servidor y no instala cookies. Cómo funcionan las inserciones
La tarjeta, el iframe y el JSON están en inglés. Añade ?lang=it, fr, de o es a su dirección para otro idioma.
Insignia para 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>Sigue el modo claro u oscuro de quien lee. Añade ?theme=light o ?theme=dark para fijarlo, o ?style=compact para mostrar el símbolo sin la palabra.
Tarjeta para web
<script src="https://mcp.tc/w/alm-x.js" async></script>La tarjeta aparece donde esté la etiqueta. Añade data-theme="dark" o data-size="compact" a la etiqueta para cambiarla. El archivo contiene todo lo que necesita, así que no hace otras solicitudes ni instala cookies.
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>Úsalo en páginas que no permiten scripts. Añade ?theme=light o ?theme=dark a la dirección para fijar los colores.
JSON
La ficha como datos para tus propias páginas y herramientas: nombre, descripción corta, la URL propia del servidor, herramientas y los enlaces «Add to». Cualquier web puede leerla (CORS abierto).
https://mcp.tc/i/alm-x.jsonPrompt para la IA
Pégalo en un asistente de programación con IA, como Claude Code o Cursor, y añadirá la tarjeta de ALM X++ a tu web.
Añade a mi web la tarjeta de mcp.tc de ALM X++, un servidor MCP. Es un solo script estático: sin paso de build, sin paquetes que instalar, sin cookies.
Pon esta etiqueta donde deba aparecer la tarjeta. La tarjeta se muestra justo antes de ella:
```html
<script src="https://mcp.tc/w/alm-x.js" async></script>
```
Para mostrarla en otro sitio, pon allí este marcador y carga el mismo script una sola vez, por ejemplo antes de `</body>`. Deja el enlace dentro: lo ven los visitantes sin JavaScript.
```html
<div data-mcptc="alm-x"><a href="https://mcp.tc/i/alm-x">ALM X++ on mcp.tc</a></div>
```
Opciones:
- `data-theme="light"` o `"dark"` en la etiqueta o el marcador fija los colores. Sin él, la tarjeta sigue el modo claro u oscuro del visitante.
- `data-size="compact"` da una tarjeta más pequeña, sin el eslogan.
- La variable CSS `--mcptc-max-width` en el marcador o en un elemento padre fija el ancho (por defecto `520px`).
- `?lang=` en la URL del script fija el idioma de la tarjeta: `en`, `it`, `fr`, `de` o `es`.
Si el sitio tiene una Content Security Policy, permite `script-src https://mcp.tc` e `img-src data:` (el icono va incrustado).
Para un README u otra documentación en Markdown, usa la insignia:
```markdown
[](https://mcp.tc/i/alm-x)
```
Referencia: https://mcp.tc/es/embedHistorial de cambios
Leemos la lista de herramientas de este servidor cada 3 horas y registramos lo que cambia. Última lectura: 8 oct 2026, 10:34 UTC.
Preguntas frecuentes
¿Puedo pegar mcp.tc/i/alm-x en mi cliente MCP?
No. Los enlaces de mcp.tc son páginas, no direcciones de servidores. Conéctate con https://api.almxpp.com/mcp, para que tu cliente hable directamente con ALM X++. Tu clave también va ahí, nunca a mcp.tc. El enlace rápido sirve para compartir: abre esta página, con los pasos de configuración para cada cliente.
¿ALM X++ necesita una clave de API o iniciar sesión?
Sí. ALM X++ necesita una clave de API, enviada en la cabecera X-API-Key. Consíguela en alimbenhelal-pro y guárdala en la configuración de tu cliente, nunca en un archivo compartido.
¿ALM X++ es un servidor remoto o local?
Remoto. Lo aloja alimbenhelal-pro en https://api.almxpp.com/mcp, y usa Streamable HTTP. No hay nada que instalar.
¿Qué puede hacer ALM X++?
Tiene 90 herramientas, entre ellas validate_best_practices, find_extensions y dmf_import_file.
¿Qué clientes pueden usarlo?
Cualquier cliente compatible con servidores MCP remotos que pueda enviar tu clave: Claude Code, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed y otros. En claude.ai y Claude Desktop, añade la clave como cabecera de la solicitud al crear el conector personalizado. ChatGPT no puede enviar una clave, así que no puede usarlo.
¿mcp.tc sigue los cambios de ALM X++?
Sí. La pestaña Historial de ALM X++ muestra cada cambio que encontramos en sus herramientas, hasta las descripciones y los parámetros, además de las versiones nuevas y las ediciones de su responsable. Sigue la ficha para recibir un correo cuando cambie.
¿Quién escribió esta página?
El robot de mcp.tc leyó los metadatos propios de ALM X++ (su handshake MCP, su lista de herramientas y sus páginas públicas), y un modelo de IA redactó el texto a partir de ellos. Una persona revisa todo lo que las comprobaciones no pueden confirmar. Aun así, el texto puede contener errores, así que si encuentras uno, usa Reportar esta ficha en esta página.
mcp.tc no tiene relación con alimbenhelal-pro. Esta página se creó a partir de los metadatos públicos de ALM X++, comprobados por última vez el 7 oct 2026, y un modelo de IA escribió la descripción, así que puede contener errores. Los nombres y marcas pertenecen a sus titulares. ¿Algo no cuadra? Reportar esta ficha.