Greg.Xrm.Mcp.AppMaker 1.2025.9.19

dotnet tool install --global Greg.Xrm.Mcp.AppMaker --version 1.2025.9.19
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Greg.Xrm.Mcp.AppMaker --version 1.2025.9.19
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Greg.Xrm.Mcp.AppMaker&version=1.2025.9.19
                    
nuke :add-package Greg.Xrm.Mcp.AppMaker --version 1.2025.9.19
                    

๐Ÿš€ Greg.Xrm.Mcp

A Comprehensive Framework for Building Model Context Protocol (MCP) Servers for Microsoft Dataverse

.NET 9 License GitHub Issues Build and Release


๐Ÿ‘๏ธ 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)
  • ๐Ÿ“„ Resources
    • docs://instructions_for_formxml: Instructions to be aware of when manipulating Dataverse FormXml
    • schema://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.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.2025.9.19 84 9/26/2025
1.2025.9.16 200 9/14/2025
1.2025.9.15 115 9/14/2025