Greg.Xrm.Mcp.AppMaker
A Model Context Protocol (MCP) server for Microsoft Dataverse that enables AI-powered development of forms, views, apps, and sitemaps.
Ask AI about Greg.Xrm.Mcp.AppMaker
Powered by Claude Β· Grounded in docs
I know everything about Greg.Xrm.Mcp.AppMaker. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
π Greg.Xrm.Mcp
A Comprehensive Framework for Building Model Context Protocol (MCP) Servers for Microsoft Dataverse
ποΈ Vision
Transform your Dataverse development experience with AI-powered tools that understand your business context. Greg.Xrm.Mcp is a foundational framework designed to revolutionize how developers interact with Microsoft Dataverse through intelligent MCP-enabled AI assistants (VS Code Copilot MCP extension, Claude Desktop, and other MCP clients).
βΆοΈ Check-out this video showcasing the tool in action.
ποΈ Framework Architecture
At its core, Greg.Xrm.Mcp provides a robust foundation for building specialized MCP servers that seamlessly integrate with Dataverse ecosystems:
Greg.Xrm.Mcp.Core - The Foundation
- π Unified Authentication: Standardized Dataverse connection and token management
- π§ Common Services: Reusable components for metadata, queries, and operations
- π MCP Integration: Built-in Model Context Protocol server capabilities (stdio-based and sse-based)
- π‘οΈ Error Handling: Comprehensive error management and structured logging
- β‘ Performance: Optimized for real-time AI assistant interactions
β Current Capabilities (AppMaker Server)
The flagship implementation Greg.Xrm.Mcp.AppMaker currently offers:
- π οΈ Tools
- π¦ Dataverse Metadata Access:
- π List all tables in a given environment
- π List all columns of a given table
- π¦ System Form Manipulation:
- π Form Inventory: List all forms for a Dataverse table (formatted text or JSON)
- 𧬠Form Definition Retrieval: Fetch form definition (XML or JSON) with metadata
- π§Ή Form Updater: Updates the structure of a form using AI-generated layout (LLM-assisted, non-deterministic)
- β FormXML Validation: Validate FormXML structure and report issues
- π¦ Saved Query (view) Management:
- π Saved Query Inventory: List all saved queries for a table (formatted text or JSON)
- 𧬠Saved Query Definition Retrieval: Fetch saved query definition (both FetchXML and LayoutXML)
- π§Ή Saved Query Updater: Updates the structure of a view using AI-generated layout and filters (LLM-assisted, non-deterministic)
- π§Ή Saved Query Maker: Creates new views using AI-generated layout and filters (LLM-assisted, non-deterministic)
- π Saved Query Renamer: Allows to change the name of an existing view
- π¦ AppModules and Sitemaps
- π§ App Module Inventory: Enumerate all model-driven apps with version, managed status, default flag, configuration XML, and associated security roles
- β Add/Remove App Components: Adds or removes table definitions from an app.
- π§Ή Create new AppModules: Creates new Apps, with tables and sitemap.
- β AppModule Validation: Validate the structure and contents of given AppModule and report issues
- 𧬠Sitemap Definition Retrieval: retrieves the XML defining the structure of a given app Sitemap
- π§Ή Sitemap Updater: Updates the structure of a form using AI-generated layout (LLM-assisted, non-deterministic)
- π¦ Dataverse Metadata Access:
- π Resources
docs://instructions_for_formxml: Instructions to be aware of when manipulating Dataverse FormXmlschema://formxml: Returns a set of Xml schemas defining the structure of Dataverse forms.schema://layoutxml: Returns the XML schema describing the structure of Dataverse views in terms of columns.schema://fetchxml: Returns the XML schema of the query that runs Dataverse views.schema://sitemapxml: Returns a set of Xml schemas defining the structure of Dataverse sitemap (navigation bar), and instructions on how to properly generate a SiteMap XML document.
π MCP Usage
The server runs as a Model Context Protocol (stdio) endpoint. You can connect via:
- VS Code (GitHub Copilot MCP extension)
- Claude Desktop (custom MCP server config)
Installation
dotnet tool install --global Greg.Xrm.Mcp.AppMaker
VS Code (.vscode/mcp.json snippet)
{
"servers": {
"AppMaker": {
"command": "Greg.Xrm.Mcp.AppMaker",
"args": [
"--dataverseUrl",
"https://yourorg.crm.dynamics.com"
],
"cwd": "${workspaceFolder}"
}
}
}
Claude Desktop (config fragment)
{
"mcpServers": {
"AppMaker": {
"command": "Greg.Xrm.Mcp.AppMaker",
"args": [
"--dataverseUrl",
"https://yourorg.crm.dynamics.com"
],
}
}
}
π Authentication
The tool uses OAuth authentication to connect to Dataverse. You can simply provide your Dataverse URL as a command-line argument, as described above.
The tool will then prompt you to authenticate via a browser window. The authentication is managed by official Microsoft.PowerPlatform.Dataverse.Client library.
Authentication tokens are cached locally for reuse.
π€ Contributing
We welcome contributions:
- π Bug reports & feature requests
- π§© New specialized MCP servers
- π Documentation improvements
- π οΈ Core enhancements / performance tuning
π·οΈ License
This project is licensed under the terms specified in the LICENSE file.
π³οΈ Important Disclaimer π³οΈ
- The toolset is in preview and provided as-is.
- Always export / backup solutions before applying modifications.
- LLM-assisted operations (form editing/cleanup) are inherently non-deterministic.
- Read-only tools (listing & inspection) are safe for production observation.
- The author is not responsible for misuse leading to unintended customization changes.
Made with β€οΈ for the Power Platform community.
