Greg.Xrm.Mcp.AppMaker 1.2025.10.20

dotnet tool install --global Greg.Xrm.Mcp.AppMaker --version 1.2025.10.20
                    
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.10.20
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Greg.Xrm.Mcp.AppMaker&version=1.2025.10.20
                    
nuke :add-package Greg.Xrm.Mcp.AppMaker --version 1.2025.10.20
                    

๐Ÿš€ 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.10.20 29 10/2/2025
1.2025.9.19 122 9/26/2025
1.2025.9.16 214 9/14/2025
1.2025.9.15 127 9/14/2025