Tool Reference

The complete Reference

90 tools run in the cloud and 121 on your own machine — most of them are the same tools in both places. Each one is documented below — parameters, behaviour, and example prompts. The last five categories run only on the local server, because they read from and write to your own developer machine.

9 Search & Retrieve 6 Relations 6 Quality & Security 6 Upgrade Impact 5 Live Environment 7 Data Migration 4 Performance 13 Azure DevOps 12 AOT Write local 14 Build & Deploy local 5 Git & Delivery local

Backed by an index of 200K+ D365 objects, 25M+ cross-references and 24M+ labels across 74 languages.

Before the catalogue

What you can actually get

A list of 126 tools is not a promise. These are the four outcomes the tools exist to deliver — each one links to the tools that do the work.

Know what breaks before you upgrade
Microsoft tells you what changed on their side. We compare two versions against your code and hand you the regression report as Word and PowerPoint.
Prove it works on the real system
Not « the code compiles ». The assistant connects to a running environment, reads and writes real records, and shows the evidence.
Find out why it is slow
Production telemetry is queried and ranked, so the answer to « why is this screen slow » is a measurement, not an opinion.
Go from ticket to pull request
A work item is analysed, designed, implemented, tested and pushed as a pull request — each step traceable in Azure DevOps.
No tools match your search.
Retrieve6 tools
Get detailed metadata for a specific AOT object by exact name.
get_object_details
Returns full metadata for a named AOT object: all fields, methods, base classes, indexes, relations, labels and source lines. The fastest way to inspect a known object.
objectName
Show me all fields and methods of SalesTable
list_objects
Lists all indexed objects matching a given AOT type (e.g. AxTable, AxClass, AxForm, AxSecurityRole). Supports optional model filter and result limit.
aotType modelFilter topN
List all AxTable objects in the ApplicationSuite model
list_custom_model_objects
Scans the custom model folder on disk and lists all extension and customisation objects found. Requires D365_CUSTOM_MODEL_PATH to be set or customModelPath passed directly.
customModelPath
What custom objects do I have in my extension model?
get_object_context
Everything about an object in one call: structure, extensions and relations. Replaces four separate lookups.
objectNamemethodNameaotTypeincludeValidation
Give me the full picture of CustTable
compare_objects
Puts two objects side by side and lists what differs — fields, methods, properties.
objectNameAobjectNameB
get_menu_item_info
Describes a menu item and what it opens, the usual entry point of a security chain.
menuItemNamemenuItemType
Relations & Impact11 tools
Discover dependencies, callers, extensions and cross-object relationships.
find_related_objects
Returns all objects that are related to the given object: forms that use it as a data source, tables linked via FK relations, and classes that instantiate it.
objectName
Which forms and classes depend on SalesTable?
find_references
Full cross-object scan for every usage of a field, method or EDT. Shows file paths, line numbers and context for each reference found in the index.
name maxResults
Find every place CustAccount field is used across the codebase
find_extensions
Finds all Chain-of-Command extensions, event handlers and table/form extensions that target a base object. Essential before modifying any standard object.
baseObjectName
Are there any existing extensions or CoC methods on SalesTable?
get_relation_graph
Generates a graph of FK relations radiating from the given object up to a configurable depth. Returns a structured list and an optional Mermaid ER diagram.
objectName depth
Show me the foreign key relationship graph for SalesTable at depth 2
find_entity_for_table
Identifies which AxDataEntityView objects expose a given table over OData or the Data Management Framework. Returns entity name, fields mapped and supported operations. Pass generateIfMissing: true to auto-generate a complete AOT entity artefact when none exists.
tableName generateIfMissing?
Which data entity exposes SalesTable over OData? Generate one if missing.
find_callers
Looks up every caller of a specific method using the XRef call-graph index. Requires XRef to be generated first -- the tool returns a setup guide if the index is not loaded.
methodKey
Which methods call SalesFormLetter.run?
find_change_impact
Lists everything that would be affected if you changed a given object — the blast radius before you touch it.
objectNamemaxDepth
What breaks if I change this field?
find_event_handlers
Finds the event handlers already attached to an object, before you add another one.
objectNameeventNamehandlerType
find_relation_path
Shows how two objects are connected, through which tables and relations.
sourcetargetmaxDepthmaxPaths
How is a sales order linked to a customer invoice?
find_similar_implementations
Finds objects built the same way, so you follow an existing pattern instead of inventing one.
objectNamemaxResultsfilterAotType
trace_field_lineage
Follows one field across the system: who writes it, who reads it, who filters on it.
tableNamefieldNamemaxPerCategory
Where does this amount field come from?
Quality & Analysis7 tools
Code review, performance audit, complexity analysis and error diagnostics.
validate_best_practices
Audits an AOT object against D365 best-practice rules: ttsBegin/ttsCommit pairing, select optimisation, security entry points, RecId usage, and more. Returns a scored report with fix suggestions.
objectName
Review SalesTable for D365 best-practice violations
detect_performance_issues
Scans an object for known D365 performance anti-patterns: row-by-row operations, N+1 query loops, missing indexes, excessive cross-company queries and unbounded selects.
objectName
Are there any performance anti-patterns in SalesTable?
find_error_patterns
Looks up a runtime error message or symptom description in the known-error database and D365 label index. Returns likely root causes, affected objects and recommended fixes. Pass audienceType: "business" to get a plain-language explanation suitable for end users.
errorOrSymptom audienceType?
Error posting sales order -- Object could not be found in the AOT
fix_best_practice_violations
Proposes the corrections for the violations found, rather than only listing them.
objectNamegeneratePatchesmaxViolations
recommend_extension_strategy
Advises how to extend an object — Chain of Command, event handler or table extension — based on how it is actually built.
objectNameintent
What is the right way to extend this method?
suggest_edt
Suggests the right Extended Data Type for a new field instead of a raw primitive.
fieldNamepurposebaseTypetopK
validate_object_naming
Checks a name against your naming convention before the object is created.
proposedNameaotTypeisvPrefix
Security & Licensing4 tools
Security chain tracing and role-license mapping.
trace_security_chain
Traces the full Role -> Duty -> Privilege -> Entry Point security chain for a given object. Shows exactly which roles grant access and at what permission level. Pass businessLanguage: true to get a plain-language explanation of what the role allows users to see and do.
securityObjectName businessLanguage?
Which roles have access to the SalesInvoice menu item?
trace_role_license_tree
Builds the complete duty/privilege tree for a security role and infers the minimum Dynamics 365 license tier required (Team Members -> Activity -> Finance/Operations) for each entry point.
roleName maxEntryPoints
What license tier is needed for the Accounts Payable Payments Clerk role?
get_security_coverage_for_object
Shows which privileges, duties and roles actually cover an object — and whether any gap remains.
objectNameminGrantmaxRoles
Is this form reachable without a licence?
generate_security_report
Produces a full security and licensing report across the indexed models.
filterModelmaxRolesDetail
Code Generation8 tools
Generate X++ code, SQL queries, diagrams, unit tests and AOT artefacts.
generate_unit_test
Generates a complete SysTest class for an AOT object with arrange/act/assert stubs, mock security context, and test method skeletons for each public method.
objectName methodNames
Generate unit tests for the SalesTable class
suggest_refactoring
Analyses an object and suggests concrete refactoring opportunities: extract method, guard clauses, convert row-by-row loops to set-based operations, and reduce complexity.
objectName
How should I refactor InventTrans to improve readability and performance?
generate_diagram
Generates Mermaid diagrams: er for entity-relationship, flow for execution flowchart of a method, or security for a role/duty/privilege chain.
diagramType objectName methodName
Generate an ER diagram for SalesTable and its related tables
generate_query
Generates both X++ select statements and equivalent T-SQL for a given table with optional joins and WHERE clauses, using correct D365 field names from the index.
tableName joinTables whereClause
Write an X++ query that selects from SalesTable joined with CustTable where SalesStatus is Open
create_aot_object
Creates a new AOT object with valid metadata XML, respecting the strict element order D365 requires.
aotTypenameoptions
generate_data_entity
Generates a data entity over an existing table, ready for OData or data migration.
tableNameentityNameisPublicpublicEntityNamejoinTables
Create a data entity for our custom contract table
generate_xpp_form
Generates a form following a standard D365 pattern rather than a blank canvas.
formPatternformNameprimaryTablesecondaryTablefields
generate_xpp_template
Generates the skeleton for a Chain of Command, an event handler or a find method, with the real signatures.
templateTypeobjectNamemethodName
Functional Domain2 tools
Business-readable explanations, FDD generation, workflow and report analysis.
generate_fdd
Generates a Functional Design Document skeleton for any AOT object, combining knowledge-base metadata with a structured Word-compatible template covering business rules, fields, integrations and test scenarios.
objectName fddTemplate
Generate an FDD document for the SalesTable customisation
explain_workflow
Describes the design and configuration of a D365 workflow object: approval steps, routing rules, escalation paths, conditions and the business documents it governs.
objectName
How does the SalesOrderApprovalWorkflow work and who approves it?
Differentiators2 tools
Upgrade impact analysis and business process mapping.
analyze_upgrade_impact
Analyses the custom model folder to identify objects that may be broken or require rework after a D365 platform or application upgrade. Flags deprecated APIs, changed signatures and removed objects.
customModelPath targetVersion
What custom objects will be affected by upgrading from 10.0.36 to 10.0.40?
map_business_process
Maps a named business process (Order-to-Cash, Procure-to-Pay, Hire-to-Retire...) to the D365 modules, forms, tables and workflows involved at each step.
processName
Map the Order-to-Cash process to D365 modules and key tables
Upgrade & Release Notes6 tools
Compare two D365 versions against your own customisations and produce the regression report as Word and PowerPoint. Generic release notes tell you what Microsoft changed; these tools tell you what breaks in your code.
resolve_client_profile
Finds the saved profile for the current client — current version, target version and custom models — so the next steps need no manual input.
Do we already have an upgrade profile for this client?
save_client_profile
Records a client context once: versions and the list of their custom models, including any ISV models attached.
namecurrentVersionTagtargetVersionTagcustomModelIds
list_release_note_inputs
Lists the D365 versions and custom models actually indexed on the server, so the comparison uses real values instead of guesses.
prepare_release_note_context
Computes the differences between two versions and cross-references them against the client custom code, returning every impacted object.
v1v2customModelIds
What breaks in our code between 10.0.2645 and the next release?
generate_release_note_document
Turns the analysis into a downloadable Word report and PowerPoint deck, ready for a steering committee.
v1v2customModelLabelbusinessContext
diff_model_versions
Shows the changelog between two snapshots of the same model — what was added, changed or removed.
actionpath1path2OrLabelfilterModel
Live Environment5 tools
Connect to a running D365 environment to read and write real records. This is what turns « the code compiles » into « the feature works on the real system ».
d365fo_set_connection
Points the assistant at one of your D365 environments for the rest of the session.
baseUrltenantIdclientIdttlMinutes
d365fo_clear_connection
Disconnects from the environment and clears the stored credentials.
odata_export_entity
Reads real records from any data entity, with filters, to check that data exists and looks right.
entitySetselectfilterorderBy
Export the 10 latest customer invoices for company DAT
odata_upsert_rows
Creates or updates records — useful to seed test data before validating a screen.
entitySetrowsJsonkeyFieldslegalEntitycrossCompany
get_data_entity_info
Describes a data entity: fields, keys and the tables behind it, before you rely on it for an integration.
entityName
What fields does the CustomersV3 entity expose?
Data Migration7 tools
Build, filter, run and monitor Data Management projects — import, export and Excel transformation — from the assistant instead of the D365 UI.
dmf
Entry point for Data Management: lists what the connected environment can import or export.
actionentityNamelegalEntityfilePath
dmf_create_data_project
Creates an import or export project with the entities you need.
projectNameentitiessourceNameoperationType
Create an export project for customers and their addresses
dmf_apply_entity_filter
Restricts one entity of the project to matching records only, so the export stays targeted.
projectNameentityRowNameaotEntityName
dmf_import_file
Uploads a file into an import project and starts the job.
entityNamelegalEntityfilePathcsvContentdefinitionGroupId
dmf_export_package
Runs the export and retrieves the resulting package.
definitionGroupIdlegalEntitypackageNamereExecutepollTimeoutSeconds
dmf_get_job_status
Follows a running job and reports its outcome, including per-entity errors.
executionId
dmf_transform_excel
Reshapes an Excel file to match the expected entity format before import.
mappingJsonsourceUrlfilePath
Performance Diagnostics4 tools
Query the telemetry of the real environment and get a ranked diagnosis. Answers « why is it slow in production » with measurements rather than opinions.
appinsights_set_connection
Connects the assistant to your Application Insights workspace.
workspaceIdtenantIdclientIdttlMinutes
appinsights_clear_connection
Removes the stored telemetry connection.
appinsights_query
Runs a telemetry query on the live environment and returns the measured results.
kqllookbackHoursmaxRows
appinsights_diagnose_slowness
Analyses recent telemetry and ranks what is actually slow, with the evidence behind each finding.
lookbackHoursminDurationMstop
Why has the sales order form become slow this week?
Orchestration & Reporting6 tools
Plan a multi-step change, explain it to a non-technical stakeholder, and keep the index aligned with your repositories.
plan_and_execute
Breaks a request into ordered steps, runs the right tools for each, and reports what was done.
goalworkItemIdobjectNameproject
summarize_for_stakeholder
Rewrites a technical analysis into plain business language for a manager or a steering committee.
textaudience
Summarise this impact analysis for our finance director
resolve_workspace_roots
Detects the D365 folders available to the assistant so paths never have to be typed by hand.
resync_devops_index
Refreshes the index from your Azure DevOps repositories after a merge.
pat
healthcheck
Reports server status: index loaded, version, and what is available right now.
get_output_page
Fetches the next page of a long result instead of truncating it.
tokenpage
Azure DevOps17 tools
Work items, pull requests, sprint capacity, gap analysis and changelog generation. Requires ADO connection configured in your API settings.
ado_query_workitems
Lists or searches Azure DevOps work items (Bugs, Tasks, User Stories, Features, FDDs) by keyword, state, assignee or iteration. Returns title, ID, state and URL.
query state assignee iteration
Show me all open Bugs assigned to me in the current sprint
ado_analyze_workitem
Deep analysis of a single work item by ID: description, acceptance criteria, linked items, comments, code changes and impact assessment on the D365 codebase.
workItemId
Analyse work item #1234 and tell me which D365 objects it affects
ado_list_prs
Lists pull requests in the configured ADO repository with optional filters for status (active, completed, abandoned) and author.
status author maxResults
Show me all active pull requests in the repository
ado_analyze_pr_impact
Analyses the code changes in a pull request and reports which D365 objects were modified, potential breaking changes, and best-practice violations introduced by the PR.
pullRequestId
What is the impact of PR #42 on the codebase?
ado_gap_fit_analysis
Compares a work item's requirements against D365 standard functionality and identifies gaps that require customisation vs features already covered by standard.
workItemId
Is work item #56 a gap or covered by D365 standard?
ado_estimate_effort
Estimates development effort (hours) for a work item by analysing its requirements against the D365 knowledge base and returning a range with confidence score and assumptions.
workItemId teamVelocity
Estimate the development effort for work item #78
ado_post_comment
Posts a comment to an Azure DevOps work item. Write operation -- the comment will be visible to all project members.
workItemId comment
Add a comment to work item #5 summarising the gap analysis result
ado_post_pr_comment
Posts a review comment to an Azure DevOps pull request thread. Write operation -- visible to the PR author and reviewers.
pullRequestId comment filePath lineNumber
Post a review comment on PR #20 about the missing ttsBegin
ado_create_task
Creates a child development Task under a parent work item with a title, description and estimated hours. Write operation -- creates a real ADO work item.
parentWorkItemId title estimatedHours description assignTo
Create a development task under work item #10 for the SalesTable extension
ado_read_attachment
Reads the actual CONTENT of a work item attachment -- not just its metadata. Excel (.xlsx/.xlsm) is rendered as a markdown table, Word (.docx) as markdown paragraphs/tables preserving document order, plain text formats as-is, images as viewable inline images.
workItemId fileName sheetName
Read the Excel file attached to work item #34 and list every row
ado_update_workitem
Updates a work item — state, fields, assignment — from the assistant.
workItemIdfieldsJsonproject
ado_review_xpp_pr
Reviews the X++ of a pull request against D365 best practices and posts the findings.
prIdrepositoryIdprojectmaxDeepAnalysis
Review PR 412 before I approve it
ado_pr_dependency_map
Shows which pull requests touch the same objects, to spot conflicts before the merge.
repositoryIdprojectstatustargetBranch
ado_wiki_list
Lists the wikis and pages available in the project.
project
ado_wiki_get_page
Reads a wiki page so the assistant works from your own documentation.
pathwikiIdentifierincludeSubPagesproject
ado_wiki_create_or_update_page
Writes or updates a wiki page — useful to publish a generated design document.
pathcontentwikiIdentifierproject
ado_wiki_delete_page
Removes a wiki page.
pathwikiIdentifierproject
Local server only36 tools
The 36 tools below are not available in the cloud, by design: they read and write your developer machine — AOT files, the D365 build toolchain, your Git working copy. They ship with the local server, which also carries the 85 shared tools documented above.
Local — AOT Write12 tools
Creates and edits AOT metadata on your dev box. Never available in the cloud: it writes to your file system.
write_aot_object
Write a D365 F&O AOT XML scaffold file directly to the ISV custom model on disk.
aotType name xml customModelPath overwrite
modify_aot_object
Incrementally modify an EXISTING D365 F&O AOT object in place, the way the platform does it: read -> mutate -> IMetaXxxProvider.Update (Microsoft re-serialises the file = schema-correct).
op objectType objectName params
modify_d365fo_file
Safely edit an existing D365 F&O AOT XML file on disk.
aotType name rollback customModelPath
create_label_file
Bootstrap a new label file for a custom D365 model.
labelFileId language customModelPath
add_label
Insert or update a label entry in the ISV custom model .label.txt file on disk.
labelFileId labelId text comment language
rename_label
Rename a label key inside the ISV custom model on disk.
labelFileId oldLabelId newLabelId customModelPath dryRun
validate_model_xml
Bulk-scans every AxClass/AxTable/AxForm/AxEnum/AxEdt/AxView/AxQuery/AxDataEntityView/...
modelPath modelName includeTypes excludeTypes
verify_d365fo_project
Verify that D365 F&O AOT objects exist on disk AND are registered in a .rnrproj project file.
objects customModelPath projectPath
update_symbol_index
Refresh the live-source cache after writing AOT objects with write_aot_object.
customModelPath
resolve_references
Batch existence check for identifiers you are about to use in AOT XML or X++.
identifiers expectedTypes
get_method_source
Return the full X++ source of ONE method.
objectName methodName customModelPath
review_workspace_changes
List all AOT XML files modified in the custom model within a time window.
sinceMinutes customModelPath
Local — Build & Deploy14 tools
Drives the real D365 toolchain: xppc, SyncEngine, ModelUtil, the test runner and the packaging step.
build_model
Compile a D365 F&O model to IL (X++ → .NET).
modelName skipLabels false packagesPath standardModelPath
build_and_deploy
Build and deploy a D365 F&O model on the local developer machine.
modelName skipBuild skipLabels skipPackage skipDeploy
deploy_model
Create a D365 F&O deployable package (.zip) for cloud deployment to LCS or PPAC/UDE.
modelName packageType buildMode version outputDir
sync_database
Synchronise the D365 F&O database with the current AOT schema.
modelName scope tables packagesPath standardModelPath
get_build_errors
Parse an xppc.exe or MSBuild log file and return a structured error/warning table.
logFilePath modelName packagesPath includeWarnings
run_best_practices_check
Run xppc.exe -BestPractices for the specified D365 model and return a structured BP violations table.
modelName packagesPath standardModelPath
run_best_practices_check_scoped
Run the D365 standalone Best-Practices checker (xppbp.exe, via the metadata bridge) scoped to a SINGLE just-written AOT object -- much faster than the whole-model run_best_practices_check for a post-write validation loop.
module model to objectType objectName
run_compile_scoped
Compile ONLY the specified tables/classes/queries/forms via xppc.exe (through the metadata bridge) -- much faster than the whole-model run_best_practices_check/build_model for a quick post-write compile check on one or a few just-written objects.
module model tables classes queries
run_systest
Run a D365 SysTestCase class via SysTestRunner.exe and return parsed test results.
testClassName modelName packagesPath standardModelPath
resolve_d365_bindir
Resolve the D365 build toolchain BINDIR for the current machine — without hardcoding the PEAP version.
standardModelPath packagesPath
create_d365_model
Create a new D365 F&O model (descriptor + AOT folder structure) using the official ModelUtil.exe CLI.
modelName publisher layer version moduleReferences
generate_solution_zip
Returns the path to a generated .zip containing a full D365 project with Descriptor, .rnrproj, AOT folders, and one XML file per object.
specJson outputPath
scaffold_vs_project
Scaffold the Visual Studio Finance Operations project (.rnrproj) and solution (.sln) files for a D365 model.
modelName solutionName projectsLocation version
build_xref_index
Auto-discovers the XRef SQL database in LocalDB matching the current D365 version and builds xref_index.json.gz.
version sqlServer outputDir
Local — Form Patterns3 tools
Reads the live Microsoft PatternFactory, so a generated form follows the pattern the compiler will enforce.
get_form_pattern_requirements
Enumerate a D365 form pattern's MANDATED control tree straight from Microsoft's PatternFactory (required + optional controls, sub-patterns, and restricted property values like Style=Tabular).
patternName version includeOptional
scaffold_form_from_pattern
Generate an AxForm AOT XML SKELETON whose control tree is derived LIVE from Microsoft's PatternFactory definition (not a hand-curated static template).
patternName formName source primaryTable fields
validate_form_pattern
Validate AxForm AOT XML against D365 structural rules BEFORE calling write_aot_object.
xml SimpleList DetailsMaster DetailsTransaction ListPage
Local — Git & Delivery5 tools
Pushes the work you just generated and opens the pull request, plus two Azure DevOps planning helpers.
ado_create_branch
Creates a remote branch from `sourceBranch` (default: the repo's default branch) and, when `workItemId` is supplied, links the branch to that work item.
repositoryId branchName sourceBranch workItemId project
ado_push_files
Reads each local file from disk and commits all of them to `branchName` in a single push via the ADO Git Pushes API — no local git working copy or PowerShell needed.
repositoryId branchName commitMessage repoRoot files
ado_create_pull_request
Creates a PR from `sourceBranch` into `targetBranch`, sets the title/description, links the work item, and (optionally) assigns reviewers.
repositoryId sourceBranch targetBranch title description
ado_workitem_dor_check
Validate a Work Item against a D365-aware Definition of Ready.
workItemId project
ado_sprint_capacity_d365
D365-aware capacity estimate for an iteration / sprint.
iterationPath project workItemType
Local — Deep Analysis2 tools
Reads artefacts that only exist on your machine: the full custom model and captured ETW traces.
customization_analysis_report
Produces a Customization Analysis Report (CAR) for the active custom model: complexity hotspots, framework patterns detected (CoC, SysOperation, RunBase...), missing pattern methods, and quick-fix suggestions.
objectName topComplexCount topObjectsForPatterns
analyze_etw_trace
Analyze a D365 F&O ETW trace (.etl or .etlx) and surface the top SQL queries, hot X++ methods, exceptions and batch jobs.
etlPath topSqlCount topMethodsCount topExceptionsCount