Query a specific DevExpress XAF application over the Model Context Protocol. Provides tools for discovering and understanding the structure, logic, and behavior of XAF (eXpressApp Framework) applications through source code analysis.
This is a well-structured domain-specific MCP server for XAF application analysis. Eight tools with explicit registration via [McpServerTool] attributes, clear descriptions (avg 180 chars), and comprehensive input parameter descriptions. All tools are read-only (safe). Tool names follow verb_noun pattern (xaf_overview, xaf_search, xaf_entity, xaf_controller, xaf_rules, xaf_model, xaf_refresh, xaf_walkthrough). Input schemas are visible and properly typed. However, output schemas are NOT documented in the source, responses are free-text markdown strings with no formal structure defined. Error handling is present (NotFound helper visible) but recovery guidance is minimal. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only. Parameters are well-described but some lack explicit constraints (e.g., 'depth' parameter has no bounds documented).
Full detail of one controller: which views it applies to, every action it defines with the actual C# that runs when the action fires, and its helper methods. Use when asked what a button or command actually does.
Full detail of one business entity: every property with its type and attributes, relationships to other entities, validation rules, appearance rules, and calculated property expressions. Use before writing or changing any code that touches an entity.
The customizations defined only in the Model Editor — the XAF runtime configuration that lives outside source code. Shows application setup, view layouts, and property customizations that are not enforced by the database or validation rules.
What this XAF application is and everything it contains: ORM, module setup, and the COMPLETE list of entities, controllers, actions and navigation groups. Call this first when asked anything about the application as a whole. The lists are exhaustive: if something is not in them, it does not exist in this application.
Reload the source and refresh all tool results. Use after the source code has changed on disk. Reports what changed: how many items were added, removed or modified.
Output schemas are not documented. All eight tools return free-text markdown (string) with no formal structure definition. LLMs cannot parse structured data or chain downstream operations without knowing the response format.
Tool annotations missing. All eight tools are read-only (safe to call), but none declare readOnlyHint=true. This deprives the MCP client of metadata needed for safety decisions and permission gating.
Parameter constraints incomplete. 'depth' parameter in xaf_walkthrough is an integer with no documented min/max bounds. Unbounded integers allow LLMs to pass absurd values (e.g., depth=999999) causing performance issues.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
All validation rules, appearance rules and calculated properties in the application, or filtered to one entity. Each rule shows its condition, what it affects, and any message or calculation it runs.
Search the whole application for a term: entity and property names, controllers, actions, validation messages, criteria expressions and seed data. Use when you know roughly what you are looking for but not where it lives — for example a field name mentioned by the user, or a business concept like 'discount'. Returns what matched and where.
Trace one business process end to end: what runs, in what order, which entities it touches and which rules govern them, every step citing file and line. Start from an action, a controller method, a controller or an entity. Use this when asked HOW something works — 'how does approval work', 'what happens when I press this' — rather than what exists. Calls the trace could not follow are reported explicitly, so an empty list of them means the path really is complete.
Error recovery guidance sparse. The NotFound helper exists, but most error paths do not guide the LLM toward recovery (e.g., 'Entity not found. Did you mean: Customer, Invoice, Order?'). Raw 404-style responses provide no actionable next step.