ALM X++

Serveur MCP par alimbenhelal-pro

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

Clé API requise (Nécessite une clé API de l’éditeur)Streamable HTTP

Connecter ALM X++

ALM X++ demande une clé API. Connectez votre client à son URL, avec votre clé :

https://api.almxpp.com/mcp

Envoyez votre clé dans l’en-tête X-API-Key. mcp.tc ne voit ni ne conserve jamais les clés. Où obtenir une clé

Partager ce serveur

Ouvre cette page, avec l’URL et les étapes de configuration.

mcp.tc/i/alm-x

Présentation

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.

Ce que vous pouvez faire

  • 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

Outils 90

  • validate_best_practicesLecture seule

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

  • find_extensionsLecture seule

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

  • dmf_import_filePeut supprimer

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

  • search_d365_codeLecture seule

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

  • dmf_transform_excelÉcriture

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

  • generate_queryLecture seule

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

  • ado_wiki_delete_pagePeut supprimer

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

  • appinsights_diagnose_slownessLecture seule

    Diagnose slow D365 environments using Application Insights telemetry.

  • ado_wiki_listLecture seule

    List all wikis in an Azure DevOps project.

  • get_object_detailsLecture seule

    Get details of a D365 object by its exact name.

  • ado_query_workitemsLecture seule

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

  • dmf_apply_entity_filterÉcriture

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

Afficher 78 outils de plus
  • ado_update_workitemPeut supprimer

    Update fields on an existing Azure DevOps work item.

  • find_referencesLecture seule

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

  • ado_gap_fit_analysisLecture seule

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

  • batch_searchLecture seule

    Run multiple D365 searches in parallel.

  • ado_read_attachmentLecture seule

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

  • trace_field_lineageLecture seule

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

  • plan_and_executePeut supprimer

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

  • find_similar_implementationsLecture seule

    Find D365 objects structurally similar to a given one.

  • recommend_extension_strategyLecture seule

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

  • diff_model_versionsLecture seule

    Compare two knowledge base snapshots into a changelog.

  • find_related_objectsLecture seule

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

  • ado_review_xpp_prLecture seule

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

  • dmf_create_data_projectÉcriture

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

  • find_entity_for_tableLecture seule

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

  • summarize_for_stakeholderLecture seule

    Rewrite technical tool output for a chosen audience.

  • suggest_refactoringLecture seule

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

  • resync_devops_indexPeut supprimer

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

  • ado_wiki_get_pageLecture seule

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

  • dmfÉcriture

    Consolidated Data Management Framework tool with an action parameter.

  • find_callersLecture seule

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

  • healthcheckLecture seule

    Report server status, loaded D365 version and index state.

  • ado_analyze_pr_impactLecture seule

    Analyze what changed in a pull request and its impact.

  • find_error_patternsLecture seule

    Explain a D365 error message or exception and suggest causes.

  • suggest_edtLecture seule

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

  • get_object_contextLecture seule

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

  • odata_upsert_rowsPeut supprimer

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

  • find_change_impactLecture seule

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

  • generate_security_reportLecture seule

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

  • ado_create_taskÉcriture

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

  • appinsights_set_connectionÉcriture

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

  • dmf_get_job_statusLecture seule

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

  • detect_performance_issuesLecture seule

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

  • get_relation_graphLecture seule

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

  • d365fo_clear_connectionÉcriture

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

  • generate_xpp_templateLecture seule

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

  • get_security_coverage_for_objectLecture seule

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

  • get_output_pageLecture seule

    Retrieve the NEXT page of a previously PAGINATED tool output.

  • ado_pr_dependency_mapLecture seule

    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_fddLecture seule

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

  • map_business_processLecture seule

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

  • ado_post_commentÉcriture

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

  • get_data_entity_infoLecture seule

    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_objectsLecture seule

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

  • list_objectsLecture seule

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

  • explain_workflowLecture seule

    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_treeLecture seule

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

  • prepare_release_note_contextLecture seule

    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_workitemLecture seule

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

  • ado_wiki_create_or_update_pagePeut supprimer

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

  • resolve_workspace_rootsLecture seule

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

  • resolve_client_profileLecture seule

    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_testLecture seule

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

  • create_aot_objectLecture seule

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

  • d365fo_set_connectionÉcriture

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

  • appinsights_clear_connectionÉcriture

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

  • generate_data_entityLecture seule

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

  • find_event_handlersLecture seule

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

  • generate_xpp_formLecture seule

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

  • appinsights_queryLecture seule

    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_docsLecture seule

    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_chainLecture seule

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

  • find_relation_pathLecture seule

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

  • ado_estimate_effortLecture seule

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

  • ado_list_prsLecture seule

    [~] 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_namingLecture seule

    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_diagramLecture seule

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

  • save_client_profilePeut supprimer

    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_packageÉcriture

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

  • ado_post_pr_commentÉcriture

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

  • list_release_note_inputsLecture seule

    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_searchLecture seule

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

  • search_labelsLecture seule

    Search D365 F&O labels across all indexed languages.

  • odata_export_entityLecture seule

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

  • list_custom_model_objectsLecture seule

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

  • analyze_upgrade_impactLecture seule

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

  • fix_best_practice_violationsLecture seule

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

  • generate_release_note_documentÉcriture

    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_infoLecture seule

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

Lus directement sur le serveur le 7 oct. 2026. Lecture seule, Écriture et Peut supprimer sont des indications déclarées par le serveur ; c’est votre client qui décide de vous demander confirmation avant d’exécuter un outil.

Exemples de prompts

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

Configuration

Chaque client se connecte à api.almxpp.com. Choisissez le vôtre ; la page retient votre choix.

Claude Code

  1. Lancez ceci dans un terminal, dans le dossier de votre projet :
claude mcp add --transport http alm-x https://api.almxpp.com/mcp --header "X-API-Key: <YOUR_API_KEY>"
  1. Remplacez l’espace réservé par votre clé avant de lancer la commande, puis vérifiez avec /mcp dans Claude Code.

Ajoutez --scope user pour le rendre disponible dans tous vos projets, pas seulement celui-ci.

Claude Desktop

  1. Utilisez la passerelle mcp-remote, qui garde la clé sur cet ordinateur (un connecteur ajouté sur claude.ai avec la clé dans Request headers apparaît aussi ici). Ouvrez Settings → Developer → Edit Config et ajoutez :
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. Remplacez l’espace réservé par votre clé et redémarrez Claude Desktop.

La passerelle nécessite Node.js sur votre ordinateur.

claude.ai

  1. Ouvrez le formulaire des connecteurs sur claude.ai. Ce bouton remplit le nom et l’URL pour vous :
  1. Vérifiez que l’URL est https://api.almxpp.com/mcp. Dans Request headers, ajoutez X-API-Key: <YOUR_API_KEY> avec votre clé obtenue auprès de alimbenhelal-pro, puis cliquez sur Add.
  2. Activez-le dans une conversation depuis le menu des outils.

Les offres gratuites permettent un connecteur personnalisé. Sur les offres Team et Enterprise, un propriétaire l’ajoute dans Organization settings → Connectors.

Cursor

Ou ajoutez-le à la main dans ~/.cursor/mcp.json (tous les projets) ou .cursor/mcp.json (ce projet) :

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

VS Code

Ajoutez-le à .vscode/mcp.json. VS Code demande la clé la première fois et la stocke de façon sécurisée :

.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. Ajoutez-le à ~/.config/devin/mcp_config.json (macOS et Linux) ou %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. Actualisez la liste des serveurs MCP dans Cascade.

Devin Desktop est le nouveau nom de Windsurf. Pour les serveurs distants, il lit serverUrl (ou url).

Codex

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

codex mcp add ne peut pas définir l’en-tête X-API-Key, cette étape est donc obligatoire : mettez cette entrée dans ~/.codex/config.toml au lieu de lancer la commande, ou ajoutez sa ligne env_http_headers à l’entrée créée par la commande :

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

Codex lit les valeurs des en-têtes dans les variables d’environnement nommées dans env_http_headers.

Gemini CLI

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

Cela l’ajoute au projet en cours. Ajoutez -s user pour l’utiliser partout.

Tout client

La plupart des clients acceptent cette forme. Certains nomment autrement le champ de l’URL : serverUrl dans Devin Desktop, httpUrl dans le fichier de réglages de Gemini CLI.

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

Zed place les serveurs sous context_servers dans ses réglages. Cline a besoin de "type": "streamableHttp", sinon il suppose SSE.

Votre client ne lance que des serveurs locaux ? Reliez-le avec npx -y mcp-remote https://api.almxpp.com/mcp.

Intégrer

Affichez ALM X++ dans un README ou sur votre site. Chaque intégration renvoie à cette page, utilise l’URL du serveur et ne dépose aucun cookie. Comment fonctionnent les intégrations

La carte, l’iframe et le JSON sont en anglais. Ajoutez ?lang=it, fr, de ou es à leur adresse pour une autre langue.

Badge pour README

Aperçu du badge, clairAperçu du badge, sombre
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>

Il suit le mode clair ou sombre du lecteur. Ajoutez ?theme=light ou ?theme=dark pour le fixer, ou ?style=compact pour afficher le symbole sans le nom.

Carte pour site web

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

La carte apparaît à l’endroit de la balise. Ajoutez data-theme="dark" ou data-size="compact" à la balise pour la modifier. Le fichier contient tout ce qu’il lui faut : il ne fait aucune autre requête et ne dépose aucun 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>

Utilisez-la sur les pages qui n’autorisent pas les scripts. Ajoutez ?theme=light ou ?theme=dark à l’adresse pour fixer les couleurs.

JSON

La fiche sous forme de données pour vos pages et vos outils : nom, accroche, URL du serveur, outils et liens « Add to ». N’importe quel site peut la lire (CORS ouvert).

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

Ce que signifie chaque champ

Prompt pour l’IA

Collez-le dans un assistant de code IA, comme Claude Code ou Cursor, et il ajoutera la carte de ALM X++ à votre site.

Markdown
Ajoute à mon site la carte mcp.tc de ALM X++, un serveur MCP. C’est un seul script statique : pas de build, aucun paquet à installer, aucun cookie.

Place cette balise là où la carte doit apparaître. La carte s’affiche juste avant elle :

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

Pour l’afficher ailleurs, mets ce conteneur à cet endroit et charge le même script une seule fois, par exemple avant `</body>`. Garde le lien à l’intérieur : les visiteurs sans JavaScript le voient.

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

Options :
- `data-theme="light"` ou `"dark"` sur la balise ou le conteneur fixe les couleurs. Sans cela, la carte suit le mode clair ou sombre du visiteur.
- `data-size="compact"` donne une carte plus petite, sans l’accroche.
- La variable CSS `--mcptc-max-width` sur le conteneur ou un parent fixe la largeur (`520px` par défaut).
- `?lang=` dans l’URL du script choisit la langue de la carte : `en`, `it`, `fr`, `de` ou `es`.

Si le site a une Content Security Policy, autorise `script-src https://mcp.tc` et `img-src data:` (l’icône est intégrée).

Pour un README ou une autre doc en Markdown, utilise plutôt le badge :

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

Référence : https://mcp.tc/fr/embed

Historique des changements

Nous lisons la liste d’outils de ce serveur toutes les 3 heures et notons ce qui change. Dernière lecture : 8 oct. 2026, 10:34 UTC.

Suivez ALM X++ et nous vous enverrons un e-mail quand quelque chose change.

  1. , Vérification automatique

    Début de l’observation : 90 outils.

FAQ

Puis-je coller mcp.tc/i/alm-x dans mon client MCP ?

Non. Les liens mcp.tc sont des pages, pas des adresses de serveur. Connectez votre client à https://api.almxpp.com/mcp, pour qu’il parle directement à ALM X++. Votre clé y est envoyée aussi, jamais à mcp.tc. Le lien rapide sert au partage : il ouvre cette page, avec les étapes de configuration pour chaque client.

ALM X++ a-t-il besoin d’une clé API ou d’une connexion ?

Oui. ALM X++ a besoin d’une clé API, envoyée dans l’en-tête X-API-Key. Obtenez-en une auprès de alimbenhelal-pro et gardez-la dans la configuration de votre client, jamais dans un fichier partagé.

ALM X++ est-il un serveur distant ou local ?

Distant. alimbenhelal-pro l’héberge à https://api.almxpp.com/mcp, et il utilise Streamable HTTP. Il n’y a rien à installer.

Que peut faire ALM X++ ?

Il a 90 outils, dont validate_best_practices, find_extensions et dmf_import_file.

Quels clients peuvent l’utiliser ?

Tout client compatible avec les serveurs MCP distants et capable d’envoyer votre clé : Claude Code, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed et d’autres. Sur claude.ai et Claude Desktop, ajoutez la clé comme en-tête de requête en créant le connecteur personnalisé. ChatGPT ne peut pas envoyer de clé, il ne peut donc pas l’utiliser.

mcp.tc suit-il les changements de ALM X++ ?

Oui. L’onglet Historique de ALM X++ montre chaque changement que nous trouvons dans ses outils, jusqu’aux descriptions et aux paramètres, ainsi que les nouvelles versions et les modifications de son propriétaire. Suivez la fiche pour recevoir un e-mail quand elle change.

Qui a rédigé cette page ?

Le robot de mcp.tc a lu les métadonnées de ALM X++ (son handshake MCP, sa liste d’outils et ses pages publiques), et un modèle d’IA en a tiré le texte. Une personne examine tout ce que les vérifications ne peuvent pas confirmer. Le texte peut encore contenir des erreurs : si vous en repérez une, utilisez Signaler cette fiche sur cette page.

mcp.tc n’est pas affilié à alimbenhelal-pro. Cette page a été construite à partir des métadonnées publiques de ALM X++, vérifiées pour la dernière fois le 7 oct. 2026, et un modèle d’IA a rédigé la description : elle peut contenir des erreurs. Les noms et marques appartiennent à leurs propriétaires. Quelque chose cloche ? Signaler cette fiche.