返回市场
格雷格.Xrm.Mcp

格雷格.Xrm.Mcp

作者:neronotte8 星标更新:2025-11-08

项目介绍

🚀 Greg.Xrm.Mcp

一个全面的框架,用于构建适用于Microsoft Dataverse的模型上下文协议(MCP)服务器

.NET 9 License GitHub Issues Build and Release


👁️ 愿景

通过AI驱动的工具,理解您的业务环境,从而改变您的Dataverse开发体验。Greg.Xrm.Mcp 是一个基础框架,旨在通过智能的MCP启用的AI助手(如VS Code Copilot MCP扩展、Claude Desktop和其他MCP客户端),革新开发者与Microsoft Dataverse的交互方式。

▶️ 查看此视频,展示该工具的实际操作。


🏗️ 框架架构

在核心部分,Greg.Xrm.Mcp 提供了一个强大的基础,用于构建与Dataverse生态系统无缝集成的专业MCP服务器:

Greg.Xrm.Mcp.Core - 基础

  • 🔐 统一认证:标准化的Dataverse连接和令牌管理
  • 🔧 通用服务:可重用的元数据、查询和操作组件
  • 🔌 MCP集成:内置的模型上下文协议服务器能力(基于stdio和sse)
  • 🛡️ 错误处理:全面的错误管理和结构化日志记录
  • 性能:优化了实时AI助手交互

✅ 当前功能(AppMaker服务器)

旗舰实现Greg.Xrm.Mcp.AppMaker 目前提供:

  • 🛠️ 工具
    • 📦 Dataverse元数据访问
      • 📂 列出给定环境中的所有表
      • 📂 列出给定表的所有列
    • 📦 系统表单操作
      • 📂 表单清单:列出Dataverse表的所有表单(格式化文本或JSON)
      • 🧬 表单定义检索:获取表单定义(XML或JSON)及其元数据
      • 🧹 表单更新器:使用AI生成的布局更新表单结构(LLM辅助,非确定性)
      • FormXML验证:验证FormXML结构并报告问题
    • 📦 保存查询(视图)管理
      • 📂 保存查询清单:列出表的所有保存查询(格式化文本或JSON)
      • 🧬 保存查询定义检索:获取保存查询定义(FetchXML和LayoutXML)
      • 🧹 保存查询更新器:使用AI生成的布局和过滤器更新视图结构(LLM辅助,非确定性)
      • 🧹 保存查询创建者:使用AI生成的布局和过滤器创建新的视图(LLM辅助,非确定性)
      • 📝 保存查询重命名器:允许更改现有视图的名称
    • 📦 AppModules和站点地图
      • 🧭 App模块清单:枚举所有模型驱动的应用程序,包括版本、托管状态、默认标志、配置XML和关联的安全角色
      • 添加/移除应用组件:向应用程序中添加或移除表定义。
      • 🧹 创建新的AppModules:创建新的应用程序,包括表和站点地图。
      • AppModule验证:验证给定AppModule的结构和内容,并报告问题
      • 🧬 站点地图定义检索:检索定义给定应用程序站点地图结构的XML
      • 🧹 站点地图更新器:使用AI生成的布局更新表单结构(LLM辅助,非确定性)
  • 📄 资源
    • docs://instructions_for_formxml:操作Dataverse FormXml时需要注意的说明
    • schema://formxml:返回一组定义Dataverse表单结构的Xml模式。
    • schema://layoutxml:返回描述Dataverse视图结构(按列)的XML模式。
    • schema://fetchxml:返回运行Dataverse视图的查询的XML模式。
    • schema://sitemapxml:返回一组定义Dataverse站点地图(导航栏)结构的XML模式,以及如何正确生成SiteMap XML文档的说明。

🔌 MCP使用

服务器作为模型上下文协议(stdio)端点运行。您可以通过以下方式连接:

  • VS Code(GitHub Copilot MCP扩展)
  • Claude Desktop(自定义MCP服务器配置)

安装

dotnet tool install --global Greg.Xrm.Mcp.AppMaker

VS Code (.vscode/mcp.json 片段)

{
    "servers": {
        "AppMaker": {
            "command": "Greg.Xrm.Mcp.AppMaker",
            "args": [
                "--dataverseUrl",
                "https://yourorg.crm.dynamics.com"
            ],
            "cwd": "${workspaceFolder}"
        }
    }
}

Claude Desktop (配置片段)

{
    "mcpServers": {
        "AppMaker": {
            "command": "Greg.Xrm.Mcp.AppMaker",
            "args": [
                "--dataverseUrl",
                "https://yourorg.crm.dynamics.com"
            ],
        }
    }
}

🔐 认证

该工具使用OAuth认证连接到Dataverse。您可以简单地提供Dataverse URL作为命令行参数,如上所述。 然后,工具会提示您通过浏览器窗口进行身份验证。认证由官方Microsoft.PowerPlatform.Dataverse.Client库管理。 认证令牌被本地缓存以供重复使用。


🤝 贡献

我们欢迎贡献:

  • 🐛 错误报告及功能请求
  • 🧩 新的专用MCP服务器
  • 📖 文档改进
  • 🛠️ 核心增强/性能调整

🏷️ 许可证

本项目根据LICENSE文件中的条款授权。


🏳️ 重要免责声明 🏳️

  • 工具集处于预览阶段,按原样提供。
  • 在应用修改之前,请始终导出/备份解决方案。
  • LLM辅助操作(表单编辑/清理)本质上是非确定性的。
  • 只读工具(列表和检查)适合生产观察。
  • 作者不对因误用导致的意外定制变更负责。

为Power Platform社区制作,充满❤️。