50 AI tools for D365 F&O: X++ search, ADO integration, code gen, security tracing & upgrade impact.
healthy
status
90
tools exposed
1433ms
connect latency
e460115ab246
schema fingerprint
Tools (90)
validate_best_practices
Run D365 best-practice audit on any AOT object (custom or standard). Returns violation table: severity (Critical/Warning), rule ID, code snippet, fix instruction. Critical violations block deployment. Checks: ISV prefix, security chain, ttsbegin/ttscommit, firstOnly on single-record selects, hardcod
find_extensions
Find all extension objects (AxClassExtension, AxTableExtension, AxFormExtension, AxEnumExtension), CoC classes ([ExtensionOf]), and event handlers for a base object. Also queries Azure DevOps Code Search in real-time for custom extensions not yet in the KB. ALWAYS call before creating a new extensio
dmf_import_file
Bulk-import a CSV file into a D365 F&O entity through the Data Management
package REST API. Builds the package (Manifest + header + CSV) in memory,
uploads it to Azure blob, then calls ImportFromPackage which AUTO-CREATES the
data project from the manifest. Runs in batch; the tool polls until com
search_d365_code
WHEN: object name is unknown, partial, or you need to find by concept/keyword. Search the D365 F&O knowledge base for X++ code, tables, classes, forms, views, enums, EDTs, security objects using natural language or partial names. Returns ALL chunks (metadata, Declaration, methods) for the top-scorin
dmf_transform_excel
Transform a multi-sheet Excel (.xlsx) into DMF-ready rows using a data-driven JSON
mapping -- equivalent to FO_TransformExcelForDMF. NO FO credentials required (offline
transform). Provide the workbook via ONE of: sourceUrl (Blob/SharePoint SAS URL or
Graph downloadUrl), filePath (local .xlsx) or
generate_query
WHEN: developer needs correct X++ select or T-SQL for D365 tables with proper joins. Triggers: 'X++ select', 'generate a query', 'SQL for', 'join with', 'how to query', 'générer une requête', 'write a select statement', 'select from', 'X++ query for', 'requête X++', 'écrire une select'. Generate bot
ado_wiki_delete_page
AZURE DEVOPS ONLY -- Delete a wiki page. This also deletes its sub-pages if any exist under it. Requires DEVOPS_ORG_URL + DEVOPS_PAT env vars (PAT needs Wiki: Read & Write scope).
appinsights_diagnose_slowness
WHEN: user wants to understand/deduce why a D365 F&O environment feels slow, using the
real Application Insights telemetry the environment already emits -- no trace file
upload needed. Runs a set of canned KQL queries and assembles one combined report:
1. X++ exception hotspots (exceptions tabl
ado_wiki_list
AZURE DEVOPS ONLY -- List all wikis in a project (the project wiki plus any published code-as-wiki repos). Use this FIRST when the user doesn't know the wiki's exact name/id, or to confirm which wiki to target before reading/writing a page. Requires DEVOPS_ORG_URL + DEVOPS_PAT env vars.
get_object_details
WHEN: you know the EXACT object name. Triggers: user gives an exact name like 'SalesTable', 'CustTable', 'VendInvoiceJour', any PascalCase D365 object name. Get complete details: all fields, methods, relations, indexes, source code, and metadata. COST NOTE: this returns the FULL object and can be ve
ado_query_workitems
AZURE DEVOPS ONLY -- Query Work Items (Bugs, Tasks, FDDs, User Stories, CRs) in Azure DevOps. [~] PRIORITY TRIGGER: use this tool when the user mentions 'FDD', 'RDD', 'IDD', 'CR', 'Task', 'Workitem', 'Work Item', 'Bug', 'User Story', 'Feature', 'Issue', 'ticket', 'sprint', 'backlog', 'DevOps', 'list
dmf_apply_entity_filter
Apply a single-field value filter to ONE entity row of an existing DMF project, so the
export only contains the matching records. The kernel builds the packed query (custom
'GenerateQueryData' action), the container envelope is stripped on the QueryRun.pack()
signature, and the inner blob is PATC
ado_update_workitem
Update one or more fields on an existing Azure DevOps Work Item. Can update any standard field (System.Description, System.Title, System.State, System.AssignedTo, ...) or custom field (Custom.Extensionlifecyclestatus, ...) using its Field Reference Name. Triggers: 'mets à jour la description du work
find_references
Full index scan for all usages of an object, method, field, or label ID. Use for impact analysis before changing or deleting an object. EXPENSIVE — O(1M+ chunks). Prefer find_callers when XRef index is loaded (O(1)). Label IDs: automatically searches both `@SYS124480` and `@SYS:124480` forms. NOT fo
ado_gap_fit_analysis
WHEN: user asks whether a D365 requirement is standard, needs config, needs an extension, or is a full gap. Also triggered by gap analysis or fit/gap classification of a Work Item.
GAP / FIT CLASSIFIER -- Analyse a D365 F&O requirement (from an ADO Work Item OR plain text) and classify it as one o
batch_search
WHEN: you need context on multiple D365 objects or concepts simultaneously -- runs all queries in parallel. Use INSTEAD of multiple sequential search_d365_code calls -- each line becomes one parallel search. Maximum 6 queries per call. Results are equivalent to search_d365_code but returned together
ado_read_attachment
AZURE DEVOPS ONLY -- Reads the ACTUAL CONTENT of a file attached to a work item (Excel spreadsheet, Word document, text/CSV/JSON/XML file, or image). WHEN: a work item (FDD/RDD/CR/Bug/Task/User Story) has an Excel/Word attachment with requirements, field mappings, mockups, or specs that need to be r
trace_field_lineage
WHEN: you need to understand the full data lifecycle of a D365 F&O table field: who writes it, who reads it, which forms display it, which reports use it, and which tables have FK relationships to its parent table. Triggers: 'where is field X set', 'qui écrit ce champ', 'data lineage', 'GDPR field a
plan_and_execute
CHAIN-OF-TOOLS PLANNER -- Execute a multi-step JSON plan in ONE call by chaining tools. Pass an EXPLICIT JSON array of steps (NL parsing disabled to prevent ambiguity). Maximum 5 steps per plan. The chain stops on any critical failure (ado_analyze_workitem, get_object_details).
## Required Format (
find_similar_implementations
Find D365 objects structurally similar to the one you supply (same kind, similar method set, similar field set). Useful when you need a working reference implementation to copy from.
recommend_extension_strategy
WHEN: developer about to customise a standard D365 object asks 'should I use AxTableExtension, Chain of Command, EventHandler, or Delegate?'. Triggers: 'how to extend', 'best way to customise', 'extension strategy for', 'CoC ou event handler', 'comment etendre X'. Returns a ranked recommendation bas
diff_model_versions
Compare two D365 F&O KB snapshots to produce a changelog (added/removed/modified objects). Use action 'save_baseline' once, then 'compare' between two snapshots.
find_related_objects
Returns ALL FK/DeleteAction/DataSource relations (outgoing) AND back-references (incoming). Call BEFORE generating multi-object code to understand the full dependency graph. When the relation index is loaded, delegates to get_relation_graph (O(1)) internally — do NOT call both tools for the same obj
ado_review_xpp_pr
WHEN: reviewing a PR that modifies X++ code or AOT objects and you need D365-specific insights. Returns a structured code review for each changed object: blast radius (who calls it), existing best-practice violations, performance issues, and impact severity. Triggers: 'review this PR', 'code review
dmf_create_data_project
Create (or extend) a DMF data project -- EXPORT or IMPORT -- entirely through standard
public OData entities, with NO X++ customization required. It POSTs the header to
DataManagementDefinitionGroups and one row per entity to DataManagementDefinitionGroupDetails
with AutoGenerateMapping=Yes, so F
find_entity_for_table
WHEN: developer needs to integrate via OData and wants to find the entity name for a given table. Also generates a new entity template when none exists and generateIfMissing=true. Triggers: 'which entity exposes', 'OData entity for', 'find entity for', 'quelle entité expose', 'DMF entity for', 'crea
summarize_for_stakeholder
WHEN: you have a large technical tool output (get_object_details, validate_best_practices, ado_analyze_workitem, detect_performance_issues...) and need it reframed for a non-technical audience. Calls the local Ollama instance (OLLAMA_HOST env var, default localhost:11434) to produce the summary. Mod
suggest_refactoring
WHEN: developer wants to improve code quality before a PR merge or code review. Triggers: 'refactor', 'clean up', 'simplify', 'too long method', 'nested ifs', 'code smells', 'améliorer le code'. Suggest concrete refactoring actions for YOUR custom D365 F&O X++ code. [!] Only runs on custom/extension
resync_devops_index
WHEN: the user wants to force a full re-download and re-index of their Azure DevOps custom model. Triggers: 'resync', 'reindex', 'force sync', 'rebuild index', 'my model is stale', 'update index', 'mon index est vieux', 'rafraîchir l\'index', 'relancer l\'indexation'. Useful when the server's built-
ado_wiki_get_page
AZURE DEVOPS ONLY -- Read the content of a wiki page (and its immediate sub-page paths). path uses wiki page-path syntax, e.g. '/Home' or '/Architecture/Deployment'. Requires DEVOPS_ORG_URL + DEVOPS_PAT env vars.
dmf
Consolidated Data Management Framework tool — one entry point for all 5 DMF operations,
selected via `action`. Each action forwards to the exact same implementation as its
dedicated tool (dmf_import_file / dmf_create_data_project / dmf_apply_entity_filter /
dmf_export_package / dmf_get_job_status
find_callers
Full cross-reference profile for a class or method: callers, callees, inheritance chain, interface implementations, overrides, attributes. Requires xref_index.json.gz (generated from DYNAMICSXREFDB via GenerateCache --xref-conn). Falls back to vector-search when XRef not loaded.
healthcheck
WHEN: checking server status, loaded D365 version, or custom model path. Triggers: 'status', 'statut', 'is the server ready', 'how many chunks', 'index loaded'. Returns JSON with: status, indexed chunk count, loaded version, custom model path.
ado_analyze_pr_impact
[~] PRIORITY TRIGGER: Use this tool when the user says 'analyse PR', 'review PR', 'check PR', 'PR #', 'impact du PR', 'analyse la PR', 'what changed in PR', 'D365 impact of PR', 'code review PR', 'violations in PR', 'PR review'. NEVER call search_d365_code when 'PR' or 'Pull Request' + a number is m
find_error_patterns
WHEN: a user encounters an error message, infolog error, or runtime exception in D365. Also handles business-language error explanation when audienceType='business'. Triggers (developer): 'fix this error', 'what causes', 'exception thrown', 'infolog error', 'update conflict', 'outside tts', 'number
suggest_edt
WHEN: adding a new field to a table -- find the best existing D365 EDT to extend instead of using raw primitives (str, int64, real, date). Triggers: 'what EDT for', 'which EDT should I extend', 'quel EDT pour', 'quel type étendu', 'EDT for a field'. D365 best practice mandates EDT reuse over raw pri
get_object_context
WHEN: you need a COMPLETE picture of a D365 object in ONE call. Returns in a single response: full structure (fields, method signatures, relation summary) AND all CoC extensions / event handlers -- equivalent to calling get_object_details THEN find_extensions. Use this INSTEAD of those two separate
odata_upsert_rows
Idempotent import of rows into any entity via OData: PATCH when the record
exists (matched by keyFields), otherwise POST. Safe to re-run -- duplicates
are updated, not re-created. Best for small-to-medium transactional loads
(e.g. <= a few thousand rows). For bulk loads use dmf_import_file.
Prov
find_change_impact
WHEN: about to modify an X++ object or method and need to understand what could break. Returns a blast-radius report: direct callers, transitive dependents (BFS up to 3 hops), custom model extensions, interface propagation, and severity classification (Critical/High/Medium/Low). Requires the XRef in
generate_security_report
Generate a security & licensing governance report for the indexed model(s). For each role, lists duties, privileges, entry points and the inferred user-license tier (Activity, Operations, Finance, etc.). Surfaces orphan duties/privileges that grant no real access.
ado_create_task
WHEN: user asks to create a DevOps Task or start development on a Work Item. Triggers: 'create task', 'créer une tâche', 'start development on', 'commencer le dev sur', 'créer un task ADO', 'new development task for WI'. Create a D365 F&O development Task work item in Azure DevOps following the proj
appinsights_set_connection
Securely register the D365 F&O environment's Application Insights / Log Analytics
connection for the CURRENT session. The client secret is encrypted in memory
(AES-256-GCM), never written to disk and never echoed back. Once set, appinsights_query
and appinsights_diagnose_slowness use it automatic
dmf_get_job_status
Poll the status of a DMF import/export execution by its executionId
(e.g. NotRun, Executing, Succeeded, PartiallySucceeded, Failed). For a
completed export, also returns the download URL.
detect_performance_issues
Profile an X++ object for N+1 queries, queries in loops, missing field lists, row-by-row inserts/updates, missing firstOnly. Returns compact issue table with line + fix. Only call when performance is explicitly the concern — for general quality use validate_best_practices. [!] Auto-fixing requires D
get_relation_graph
WHEN: you need the COMPLETE bidirectional relation graph for an object in ONE call. Triggers: 'relations of', 'FK of', 'what tables link to', 'quelles tables liées à', 'avant de générer du code', 'before generating code', 'foreign keys', 'delete actions', 'who references', 'qui référence', 'graph de
d365fo_clear_connection
Removes the D365 F&O connection cached for the current session by d365fo_set_connection.
generate_xpp_template
WHEN: writing an extension or customization -- generates ready-to-use X++ code. Triggers: 'génère un CoC', 'crée une extension', 'generate extension', 'write a CoC class', 'event handler pour', 'template pour'. Uses REAL metadata from the KB (actual field names, method signatures). 'coc' = Chain of
get_security_coverage_for_object
WHEN: developer/security architect needs to know WHICH ROLES can access a specific form, table, menu item or service operation. Triggers: 'who can access', 'which roles see', 'security coverage for', 'quels roles ont accès à', 'find roles with access'. Walks the security graph backwards (EntryPoint
get_output_page
Retrieve the NEXT page of a previously PAGINATED tool output. When a tool result is too large for a single response, it is split losslessly into ordered pages — the footer of each page gives you a `token` and the next `page` number. Call this tool with that token to read the continuation; nothing is
ado_pr_dependency_map
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.
For each PR:
* Lists X++ / AOT objects changed (from diff)
* Detects OBJECT CONFLICTS: same object modified in multiple PRs => merge ris
generate_fdd
WHEN: user asks to write or generate a Functional Design Document, FDD, functional spec, CdC, or cahier des charges. NOT for developer technical docs -- use `get_object_details` for that.
FUNCTIONAL DESIGN DOCUMENT GENERATOR -- Produces a structured FDD ready for review and sign-off.
Sections gen
map_business_process
WHEN: mapping the technical D365 objects behind a business process, or understanding which tables/forms implement a flow. Triggers: 'processus métier', 'Order-to-Cash', 'Procure-to-Pay', 'Record-to-Report', 'business process flow', 'qui est impliqué dans', 'map the process', 'flux du processus', 'qu
ado_post_comment
WHEN: user explicitly asks to post, add, or save a comment to an ADO Work Item. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_workitem` when user says 'post the analysis', 'save it to the ticket', 'ajoute en commentaire'.
WARNING: ALWAYS ask for explicit user confirmation before calling this tool. R
get_data_entity_info
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. Triggers: 'data entity info', 'OData entity details', 'is X a public entity', 'entity datasources'. Cloud-safe: pure metadata read
compare_objects
Compare two D365 F&O objects side-by-side (fields, methods, signatures). Handy when investigating differences between standard and a customisation, or between two similar tables.
list_objects
WHEN: you need ALL objects of a given type or in a given model. Triggers: 'list all tables in ALM', 'show all classes', 'quels objets dans le modèle', 'give me all forms'. Full index scan -- returns EVERY matching object, not just top search results. Use to discover what tables, classes, forms, enum
explain_workflow
WHEN: user asks how an approval workflow works, who approves a document, what states it goes through, or what happens on submission/rejection. NOT for technical workflow class details -- use `get_object_details`.
WORKFLOW EXPLAINER (Business Language) -- Explains a D365 approval workflow: who appr
trace_role_license_tree
WHEN: security design, licence audit, or 'what licence does this role require?'. Triggers: 'arborescence du rôle', 'licence nécessaire pour', 'what licence for role', 'role tree', 'droits du rôle', 'entry points of role', 'privilege tree for'. Builds the COMPLETE tree for ONE role: Role -> Duties ->
prepare_release_note_context
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 server calling its own LLM. Call resolve_client_profile FIRST -- if it finds a profile, OMIT v1/v2/customM
ado_analyze_workitem
AZURE DEVOPS ONLY -- Fetch a Work Item and assemble ALL technical context needed for D365 F&O expert analysis. [~] PRIORITY TRIGGER: 'analyse le workitem', 'analyse la tâche', 'analyse le FDD/RDD/CR/IDD', 'read the work item', 'check the bug', 'look at ticket', 'review task', '#1234', 'WI#', 'WI ',
ado_wiki_create_or_update_page
AZURE DEVOPS ONLY -- Create a new wiki page, or OVERWRITE an existing one with new markdown content. ALWAYS call ado_wiki_get_page first if you intend to edit (not replace) an existing page's content, since this tool replaces the ENTIRE page body -- it does not merge/append. Automatically handles th
resolve_workspace_roots
WHEN: you need to know which folder(s) are configured as the workspace/project root for the current caller. Reads D365-Custom-Model-Path and D365-Standard-Model-Path from the request headers or environment variables. Use before any tool that accepts a customModelPath/standardModelPath parameter.
resolve_client_profile
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 DevOps org/project (auto-detected from DEVOPS_ORG_URL/DEVOPS_PROJECT MCP headers -- you don't pass anythin
generate_unit_test
WHEN: developer needs to write or scaffold unit tests for a custom D365 object. Triggers: 'generate tests', 'unit test', 'SysTest', 'write test for', 'scénarios de test', 'test this class'. Generate X++ SysTest unit test code for a CUSTOM D365 F&O object based on functional test scenarios. [!] Only
create_aot_object
Generate a complete, ready-to-deploy D365 F&O AOT XML scaffold for any object type.
Returns the XML + the correct file path inside the model -- the calling client (VS Extension,
Cursor, Copilot Chat) is responsible for writing the result to disk. This tool is fully
read-only on the se
d365fo_set_connection
Securely register the D365 F&O connection (URL + Entra app-registration credentials)
for the CURRENT session. The client secret is encrypted in memory (AES-256-GCM),
never written to disk and never echoed back. Once set, all odata_* and dmf_* tools
use it automatically until it expires or you cal
appinsights_clear_connection
Removes the Application Insights connection cached for the current session by appinsights_set_connection.
generate_data_entity
WHEN: developer needs to CREATE a data entity (AxDataEntityView) AOT XML from a table for OData/DMF/data migration. Triggers: 'create data entity', 'generate entity', 'créer une data entity', 'exposer table via OData', 'DMF entity', 'entity for OData', 'entité de données', 'générer entity XML', 'AxD
find_event_handlers
Find all event handlers that subscribe to events on a D365 table or class. Searches the knowledge base for [SubscribesTo(classStr(objectName), ...)] / [SubscribesTo(tableStr(objectName), ...)] attribute patterns. Use eventName to narrow results to a specific event (e.g. 'OnInserted'). WHEN: 'who han
generate_xpp_form
Generate a complete, compilable AxForm AOT XML with the CORRECT control serialization (<AxFormControl xmlns="" i:type="...">) for the requested pattern. Patterns: SimpleList, DetailsMaster, DetailsTransaction, ListPage, Dialog, DropDialog, Workspace, Extension. After generation, call validate_form_p
appinsights_query
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).
Requires the connection to be configured first via appinsights_set_connection (or server
env vars). Use the standard App Insight
search_context_docs
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 -- anything an admin uploaded via the admin portal's 'Context Documents' library (PDF, Word .docx, Excel .xlsx/.
trace_security_chain
WHEN: security audit -- need the TECHNICAL chain from Role/Duty/Privilege to Entry Points and Table/Form permissions. Also handles BUSINESS-LANGUAGE role explanation when businessLanguage=true. Triggers (technical): 'sécurité de', 'who can access', 'security for', 'role duty privilege', 'droits sur'
find_relation_path
WHEN: you need to know HOW two AOT objects are connected -- the chain of relations linking them. Triggers: 'how is X related to Y', 'comment X est lié à Y', 'path between', 'chemin entre', 'lien entre deux tables', 'connection between', 'is X reachable from Y'. Walks the pre-computed relation graph
ado_estimate_effort
WHEN: user asks for an effort estimate, chiffrage, or development hours for a D365 Work Item. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_workitem` when the user asks 'how long?', 'estimate this', 'chiffre ce WI'.
[t] EFFORT ESTIMATOR -- Estimate D365 F&O development effort for a Work Item. Uses
ado_list_prs
[~] 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 [author]', 'PRs targeting [branch]'. NEVER call search_d365_code for PR listing requests. List Pull Reque
validate_object_naming
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. Triggers: 'is this a valid name', 'check naming', 'name conflict', 'valider le nommage'. Cloud-safe: KB read on
generate_diagram
WHEN: generating a visual diagram of D365 table relationships or security chains. Triggers: 'generate diagram', 'diagramme', 'visualize', 'schéma', 'ER diagram', 'entity-relationship', 'relation diagram', 'security diagram', 'show connections'. Generate visual Mermaid diagrams from D365 F&O knowledg
save_client_profile
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. Creates or updates a Client Profile keyed by the CURRENT caller's ADO org/project (auto-detected from MCP headers
dmf_export_package
Trigger a bulk export through the Data Management package REST API and return
the download URL when complete. NOTE: the DMF EXPORT project (definitionGroupId)
must already exist in FO with its entities + mapping configured -- create it with
dmf_create_data_project if needed. For ad-hoc exports wi
ado_post_pr_comment
WHEN: user explicitly asks to post, add, or save a review comment to an ADO Pull Request. [~] PRIORITY TRIGGER: call AFTER `ado_analyze_pr_impact` when user says 'post the review', 'add comment to PR', 'ajoute le commentaire sur la PR'.
WARNING: ALWAYS ask for explicit user confirmation before calli
list_release_note_inputs
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. Triggers: 'release note', 'compare D365 versions', 'upgrade impact for a client', 'what changed for this cl
federated_search
Fan-out search across multiple ALM XPP MCP server instances in parallel and merge results using Reciprocal Rank Fusion (RRF). Useful when D365 code is split across multiple organisations or knowledge bases (e.g. one per client, one standard KB). Peer servers are configured via D365_FEDERATION_PEERS
search_labels
Search D365 F&O labels across all indexed languages. Given text (e.g. 'Sales order'), finds the matching label ID (@SYS12345). Given a label ID (e.g. '@SYS12345' or '@SYS:12345'), finds the text in all languages. Accepts both D365 short form (@SYS124480) and colon form (@SYS:124480) -- both are norm
odata_export_entity
Export any D365 F&O data entity via OData (transactional, no DMF project required).
Universal: works for ANY public entity. Supports $select, $filter, $orderby and
follows server paging automatically. Returns CSV (default) or JSON.
Use for live/ad-hoc exports and small-to-medium volumes. For very
list_custom_model_objects
WHEN: developer wants to see what custom/extension objects exist in their model. Triggers: 'list my custom objects', 'what have we customized', 'show ISV objects', 'list custom model', 'what objects are in our model'. List all D365 F&O objects in the custom/extension model directory on disk. Reads t
analyze_upgrade_impact
WHEN: upgrading D365 F&O to a new version or applying a Microsoft update -- check if your custom code will break. Triggers: 'upgrade D365', 'mise à niveau', 'will this break after upgrade', 'compatibilité après upgrade', 'impact de la mise à jour', 'check CoC targets after update'. Analyze upgrade r
fix_best_practice_violations
WHEN: validate_best_practices returned violations and you want concrete X++ fix suggestions. Returns each BP violation with its built-in fix suggestion AND (when Ollama is available) an AI-generated X++ code patch using the source from the knowledge base. Triggers: 'fix best practice', 'corriger les
generate_release_note_document
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. This tool renders that findings array into a downloadable Word (.docx, detailed appendix) and PowerPoint (.pptx, executive s
get_menu_item_info
WHEN: developer needs to resolve a menu item -- find its target object (form / action / output), linked security privilege, label, and parameters. Triggers: 'menu item info', 'what does menu item X open', 'menu item target', 'security privilege for menu item'. Cloud-safe: parses the AxMenuItem XML a
Endpoint
https://www.almxpp.com/mcp Category: Databases · Last checked: 2026-08-15T09:40:57Z
Monitor your own MCP server
Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.