MCP server for browsing and creating Dynamics 365 Finance and Operations X++ codebase objects
This MCP server for D365 F&O X++ development shows solid foundational work with detailed descriptions and enumerated constraints, but suffers from inconsistent schema quality, missing output documentation, and inadequate error recovery guidance. Of 13 tools examined, 10 have good descriptions (100-300+ chars) that explain WHAT they do and WHEN to use them. However, schema completeness is uneven: tools like create_xpp_object have comprehensive input schemas with enums and defaults, but NONE of the tools document their return/output schema, a critical gap that prevents LLMs from planning downstream calls. Parameters are well-described (e.g. 'layer' with enum choices, 'objectType' with extensive guidance), but several tools lack actionable error recovery hints. Tool naming is verb-first and mostly clear (create_*, delete_*, inspect_*, search_*), but some names are slightly generic (e.g., 'discover_modification_capabilities' could be 'list_modifications_for_object'). Three tools (build_object_index, build_code_analysis_index, execute_object_modification) have significant implementation risk but minimal safety guidance in their descriptions, no mention of dry-run modes or confirmation workflows for destructive operations.
Build a code analysis index for advanced code pattern detection, dependency analysis, and codebase intelligence across all X++ objects.
Build and cache the D365 F&O object index from VS2022 service for faster lookups. This discovers all available object types and metadata.
🎯 SPECIALIZED FORM CREATION TOOL: Create D365 forms with advanced pattern support and datasource integration. This tool combines form creation and pattern discovery in one interface. 🔧 MODE 1 (create): Create forms with patterns, datasources, and proper D365 integration. 🔍 MODE 2 (list_patterns): Discover available D365 form patterns with descriptions. Use this tool instead of 'create_xpp_object' for all form-related operations as it provides specialized form capabilities.
🔍 BROWSE OBJECT TYPES: Call without parameters to see all 544+ available D365 F&O object types organized by category. 🏗️ CREATE OBJECTS: Provide parameters to create D365 F&O objects using VS2022 service integration. Supports classes, tables, enums, data entities, reports, workflows, services, and more. ⚠️ IMPORTANT: For creating FORMS, use the dedicated 'create_form' tool instead as it provides specialized pattern support and datasource integration.
Delete a D365 F&O object from the codebase. Supports deletion of all object types. Use with caution as this is a destructive operation.
Missing output schema documentation for ALL 13 tools, LLMs cannot plan downstream calls or extract required fields when they don't know what the response contains.
Destructive tools (delete_xpp_object, execute_object_modification) lack confirmation patterns, dry-run modes, or clear rollback guidance. An LLM can irreversibly delete objects without recourse.
Error descriptions are absent or non-actionable. delete_xpp_object says 'Use with caution' but doesn't explain what errors an LLM should expect (object not found, dependencies blocking deletion, permission denied) or how to recover.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Discover what modifications and customizations can be made to a specific D365 F&O object. Returns available properties, methods, and modification patterns.
Execute modifications to a D365 F&O object including property changes, method additions, field modifications, and structural updates.
Find and locate D365 F&O objects in the codebase. Search by object name, type, or pattern.
Get statistics and metrics from the code analysis index including code complexity, method counts, class hierarchies, and dependency information.
Get the current server configuration including XPP codebase paths, metadata folders, VS2022 extension paths, and application settings.
Inspect and analyze a D365 F&O object to view its structure, properties, methods, fields, and relationships.
Search the X++ codebase for specific code patterns, method names, class definitions, and text content across all objects.
Search for D365 F&O objects using pattern matching. Supports wildcard and regex patterns for flexible object discovery.
Pagination and result limits not documented for search tools (find_xpp_object, search_objects_pattern, search_codebase). How many results are returned? How does the LLM fetch the next page?
Parameter descriptions for objectType in delete_xpp_object and inspect_xpp_object lack enum constraints or validation hints. 'Type of the D365 object to delete' doesn't tell the LLM what valid values are.
Tool composition issue: discover_modification_capabilities and execute_object_modification are tightly coupled, but execute_object_modification's 'modifications' parameter is a freeform object with 'structure varies by object type', no schema provided. LLMs cannot construct valid modifications without examples or discovery output.
Confusing tool relationships: find_xpp_object, search_objects_pattern, and search_codebase all search but with different semantics. Descriptions don't clarify when to use each (by name vs pattern vs code content?). Creates LLM decision paralysis.
Missing chaining IDs: If create_xpp_object creates an object, does it return the created object's system ID, file path, or model reference? Without these, downstream tools like inspect_xpp_object must re-search to find what was just created.