Dataverse MCP服务器框架

一个用于构建Microsoft Dataverse模型上下文协议(MCP)服务器的综合框架,提供统一认证、元数据访问和AI辅助表单/视图管理等功能,适用于Dataverse生态系统开发。

  • by neronotte
  • C#
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 neronotte/Greg.Xrm.Mcp

使用说明

# 🚀 格雷格。Xrm。模型上下文协议(Model Context Protocol)

一种用于构建Microsoft Blob模型上下文协议(MCP)服务器的综合框架


👁️ 视觉

使用了解您业务背景的AI驱动工具,改变您的Webex开发体验。 格雷格。Xrm。模型上下文协议(Model Context Protocol) 是一个 基础框架 旨在通过支持MCP的智能AI助手(VS Code Copilot MCP扩展、Claude Desktop和其他MCP客户端)彻底改变开发人员与Microsoft Webex的交互方式。

▶️ 查看此视频 展示该工具的实际应用。


🏗️ 框架架构

在其核心, 格雷格。Xrm。模型上下文协议(Model Context Protocol) 为构建可无缝集成到BLOCK生态系统的专用MCP服务器提供了坚实的基础:

格雷格。Xrm。麦克。核心 -基金会

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

✅ 当前功能(AppMaker服务器)

旗舰实施 格雷格。Xrm。麦克。AppMaker 目前提供:

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

🔌 MCP使用

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

  • VS代码 (GitHub Copilot MCP扩展)
  • 克劳德桌面 (自定义MCP服务器配置)

安装

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

VS代码(.vcode/mcp.json代码片段)

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

克劳德桌面(配置片段)

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

🔐 认证

该工具使用OAuth身份验证连接到WAX。如上所述,您只需将您的WAXURL作为命令行参数提供即可。 然后,该工具将提示您通过浏览器窗口进行身份验证。身份验证由官方管理 Microsoft.PowerPlatform.Dataverse.Client 图书馆。 身份验证令牌在本地缓存以供重用。


🤝 贡献

我们欢迎捐款:

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

🏷️ 许可证

本项目根据 许可证 文件。


🏳️ 重要免责声明🏳️

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

由以下材料制成❤️ 对于Power Platform社区来说。