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.

Requiere clave de API (Requiere una clave de API del proveedor)Streamable HTTP

Conectar con ALM X++

ALM X++ requiere una clave de API. Conéctate con su propia URL y tu clave:

https://api.almxpp.com/mcp

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-x

Descripció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 lectura

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

  • find_extensionsSolo lectura

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

  • dmf_import_filePuede borrar

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

  • search_d365_codeSolo lectura

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

  • dmf_transform_excelEscritura

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

  • generate_querySolo lectura

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

  • ado_wiki_delete_pagePuede borrar

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

  • appinsights_diagnose_slownessSolo lectura

    Diagnose slow D365 environments using Application Insights telemetry.

  • ado_wiki_listSolo lectura

    List all wikis in an Azure DevOps project.

  • get_object_detailsSolo lectura

    Get details of a D365 object by its exact name.

  • ado_query_workitemsSolo lectura

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

  • dmf_apply_entity_filterEscritura

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

Mostrar 78 herramientas más
  • ado_update_workitemPuede borrar

    Update fields on an existing Azure DevOps work item.

  • find_referencesSolo lectura

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

  • ado_gap_fit_analysisSolo lectura

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

  • batch_searchSolo lectura

    Run multiple D365 searches in parallel.

  • ado_read_attachmentSolo lectura

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

  • trace_field_lineageSolo lectura

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

  • plan_and_executePuede borrar

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

  • find_similar_implementationsSolo lectura

    Find D365 objects structurally similar to a given one.

  • recommend_extension_strategySolo lectura

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

  • diff_model_versionsSolo lectura

    Compare two knowledge base snapshots into a changelog.

  • find_related_objectsSolo lectura

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

  • ado_review_xpp_prSolo lectura

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

  • dmf_create_data_projectEscritura

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

  • find_entity_for_tableSolo lectura

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

  • summarize_for_stakeholderSolo lectura

    Rewrite technical tool output for a chosen audience.

  • suggest_refactoringSolo lectura

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

  • resync_devops_indexPuede borrar

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

  • ado_wiki_get_pageSolo lectura

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

  • dmfEscritura

    Consolidated Data Management Framework tool with an action parameter.

  • find_callersSolo lectura

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

  • healthcheckSolo lectura

    Report server status, loaded D365 version and index state.

  • ado_analyze_pr_impactSolo lectura

    Analyze what changed in a pull request and its impact.

  • find_error_patternsSolo lectura

    Explain a D365 error message or exception and suggest causes.

  • suggest_edtSolo lectura

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

  • get_object_contextSolo lectura

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

  • odata_upsert_rowsPuede borrar

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

  • find_change_impactSolo lectura

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

  • generate_security_reportSolo lectura

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

  • ado_create_taskEscritura

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

  • appinsights_set_connectionEscritura

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

  • dmf_get_job_statusSolo lectura

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

  • detect_performance_issuesSolo lectura

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

  • get_relation_graphSolo lectura

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

  • d365fo_clear_connectionEscritura

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

  • generate_xpp_templateSolo lectura

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

  • get_security_coverage_for_objectSolo lectura

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

  • get_output_pageSolo lectura

    Retrieve the NEXT page of a previously PAGINATED tool output.

  • ado_pr_dependency_mapSolo lectura

    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_fddSolo lectura

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

  • map_business_processSolo lectura

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

  • ado_post_commentEscritura

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

  • get_data_entity_infoSolo lectura

    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_objectsSolo lectura

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

  • list_objectsSolo lectura

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

  • explain_workflowSolo lectura

    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_treeSolo lectura

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

  • prepare_release_note_contextSolo lectura

    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_workitemSolo lectura

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

  • ado_wiki_create_or_update_pagePuede borrar

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

  • resolve_workspace_rootsSolo lectura

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

  • resolve_client_profileSolo lectura

    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_testSolo lectura

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

  • create_aot_objectSolo lectura

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

  • d365fo_set_connectionEscritura

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

  • appinsights_clear_connectionEscritura

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

  • generate_data_entitySolo lectura

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

  • find_event_handlersSolo lectura

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

  • generate_xpp_formSolo lectura

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

  • appinsights_querySolo lectura

    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_docsSolo lectura

    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_chainSolo lectura

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

  • find_relation_pathSolo lectura

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

  • ado_estimate_effortSolo lectura

    WHEN: 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 lectura

    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_diagramSolo lectura

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

  • save_client_profilePuede borrar

    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_packageEscritura

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

  • ado_post_pr_commentEscritura

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

  • list_release_note_inputsSolo lectura

    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_searchSolo lectura

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

  • search_labelsSolo lectura

    Search D365 F&O labels across all indexed languages.

  • odata_export_entitySolo lectura

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

  • list_custom_model_objectsSolo lectura

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

  • analyze_upgrade_impactSolo lectura

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

  • fix_best_practice_violationsSolo lectura

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

  • generate_release_note_documentEscritura

    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_infoSolo lectura

    WHEN: 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

  1. 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>"
  1. Sustituye el marcador por tu clave antes de ejecutarlo, y después compruébalo con /mcp dentro de Claude Code.

Añade --scope user para que esté disponible en todos los proyectos, no solo en este.

Claude Desktop

  1. 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:
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. Sustituye el marcador por tu clave y reinicia Claude Desktop.

El puente necesita Node.js en tu equipo.

claude.ai

  1. Abre el formulario de conectores en claude.ai. Este botón rellena el nombre y la URL por ti:
  1. Comprueba que la URL es https://api.almxpp.com/mcp. En Request headers, añade X-API-Key: <YOUR_API_KEY> con tu clave de alimbenhelal-pro y luego haz clic en Add.
  2. 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

O añádelo a mano en ~/.cursor/mcp.json (todos los proyectos) o en .cursor/mcp.json (este proyecto):

mcp.json
{
  "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:

.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. Añádelo a ~/.config/devin/mcp_config.json (macOS y 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. 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/mcp

codex 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:

config.toml
[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/mcp

Así 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

Vista previa de la insignia, claraVista previa de la insignia, oscura
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>

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

HTML
<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

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>

Ú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.json

Qué significa cada campo

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

Markdown
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
[![ALM X++ on mcp.tc](https://mcp.tc/i/alm-x/badge.svg)](https://mcp.tc/i/alm-x)
```

Referencia: https://mcp.tc/es/embed

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

Sigue ALM X++ y te enviaremos un correo cuando algo cambie.

  1. , Comprobación automática

    Inicio del seguimiento: 90 herramientas.

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.