Dataverse元数据工具

为Power Platform项目提供Dataverse元数据访问和管理的工具集,支持VS Code集成和GitHub Copilot。

  • by markus-tobler
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 markus-tobler/dataverse-metadata-mcp

使用说明

XML元数据MCP

用于Power Platform项目的MCP(模型上下文协议)实现,提供访问WebSocket元数据的工具。

安装

安装 XML元数据MCP VS代码市场的扩展:

  1. 打开VS代码
  2. 转到扩展(Ctrl+Shift+X)
  3. 搜索“XML元数据MCP”
  4. 单击安装

该扩展会自动在GitHub Copilot上注册MCP服务器,并提供一个易于使用的配置UI来设置您的鲍比连接。看 vscode扩展/README.md 了解详情。

用法示例

看看 用法示例 了解如何使用RubyMetadata MCP服务器。

开发设置

如果你想贡献或从源代码运行:

  1. 克隆存储库:

    git clone https://github.com/markus-tobler/dataverse-metadata-mcp.git
    cd dataverse-metadata-mcp
    
  2. 构建解决方案:

    dotnet build
    
  3. 使用连接字符串运行服务器:

    dotnet run --project DataverseMetadataMcp.Server -- --connection-string "AuthType=OAuth;Url=https://yourorg.crm4.dynamics.com/;Username=your@email.com;ClientId=your-client-id;LoginPrompt=Auto;RedirectUri=http://localhost/"
    
  4. 用于使用VS Code进行开发,可以将扩展配置为从源运行服务器。看 vscode扩展/DEVELOPMENT.md 了解详情。

项目结构

此解决方案包含多个组件:

数据对元数据Mcp。服务器

通过stdio传输承载MCP服务器的控制台应用程序。与VS Code扩展捆绑在一起,便于部署。

数据对元数据Mcp。工具

一个可重用的类库,其中包含用于Power Platform操作的实际MCP工具。此库也可以集成到其他MCP服务器中。

vscode扩展

一个VS Code扩展,可以自动向GitHub Copilot注册MCP服务器。这为VS Code用户提供了最简单的设置体验。看 vscode扩展/README.md 了解详情。

主要特点:

  • 自动注册MCP服务器
  • 易于配置的用户界面
  • 所有平台的捆绑服务器二进制文件
  • 跨平台支持(Windows、Linux、macOS)

特性

  • 全面的JDBC元数据访问:完整的元数据检索,包括表、关系、选项、安全性、表单、工作流和组织信息
  • 全面的列创建工具:在具有全面验证、类型检查和命名约定强制的BLOB表中创建新列(属性)-支持所有主要数据类型,包括文本、数字、选项、查找、文件等
  • 全球选择创造:使用自定义选项和验证创建新的全局选项(选项集)
  • OAuth身份验证:支持现代身份验证流程
  • 模块化设计:为了可重用性,工具与服务器分开
  • MCP协议:与模型上下文协议客户端完全兼容
  • VS代码集成:在VS代码中与GitHub Copilot无缝集成
  • 企业就绪:安全角色、解决方案管理和组织见解

可用工具

📋 表和列元数据

  • ReadTables():检索所有表(实体)
  • ReadTable(tableName):获取特定表的详细信息
  • ReadColumns(tableName):检索特定表的所有列(属性)

➕ 列创建工具

  • CreateTextColumn(tableName, columnName, displayName, description, ...):创建具有验证和格式选项的新文本列
  • CreateIntegerColumn(tableName, columnName, displayName, description, ...):创建具有范围验证的新整数列
  • CreateDecimalColumn(tableName, columnName, displayName, description, ...):创建具有精度控制的新十进制数列
  • CreateCurrencyColumn(tableName, columnName, displayName, description, ...):创建具有正确格式的新货币列
  • CreateDateTimeColumn(tableName, columnName, displayName, description, ...):创建具有行为选项的新日期/时间列
  • CreateBooleanColumn(tableName, columnName, displayName, description, ...):使用自定义标签创建新的yes/no列
  • CreateMultilineTextColumn(tableName, columnName, displayName, description, ...):创建新的多行文字列
  • CreateLookupColumn(tableName, columnName, displayName, description, targetTableName, ...):创建引用另一个表的新查找列
  • CreateChoiceColumn(tableName, columnName, displayName, description, choiceOptions, ...):使用本地选项创建新的选项列
  • CreateMultiSelectChoiceColumn(tableName, columnName, displayName, description, choiceOptions, ...):使用本地选项创建新的多选列
  • CreateGlobalChoiceColumn(tableName, columnName, displayName, description, globalChoiceName, ...):使用现有全局选项创建新的选项列
  • CreateGlobalMultiSelectChoiceColumn(tableName, columnName, displayName, description, globalChoiceName, ...):使用现有全局选项创建新的多选选项列
  • CreateFileColumn(tableName, columnName, displayName, description, ...):创建用于存储图像文件的新文件(图像)列
  • CreateFloatingPointColumn(tableName, columnName, displayName, description, ...):创建具有精度控制的新浮点数列
  • CreateBigIntegerColumn(tableName, columnName, displayName, description, ...):为大数字创建新的大整数列
  • CreateCustomerColumn(tableName, columnName, displayName, description, ...):创建可以引用Account或Contact表的新客户列

🔗 关系元数据

  • ReadEntityRelationships(tableName):获取表的所有关系(1:N,N:1,N:N)
  • ReadOneToManyRelationships(tableName):获取一对多关系
  • ReadManyToOneRelationships(tableName):获取多对一关系
  • ReadManyToManyRelationships(tableName):获得多对多关系

🎯 选择/选择列表元数据

  • CreateGlobalChoice(choiceName, displayName, description, choiceOptions):使用自定义选项创建新的全局选项(选项集)
  • ReadGlobalOptionSets():获取所有全局选择集
  • ReadGlobalOptionSet(optionSetName):获取特定全局选项集的详细信息
  • ReadLocalOptionSets(tableName):获取表的本地选项集
  • ReadPicklistOptions(tableName, attributeName):获取特定选择列表的选项

🔐 安全和特权

  • ReadSecurityRoles():获取所有安全角色
  • ReadEntityPrivileges(tableName):获取特定表的权限
  • ReadRolePrivileges(roleName):获取分配给安全角色的权限
  • ReadFieldSecurityProfiles():获取字段级安全配置文件

📱 表格和视图

  • ReadEntityForms(tableName):获取表的所有表单
  • ReadEntityViews(tableName):获取表的所有视图
  • ReadFormDetails(formId):获取详细的表单元数据
  • ReadViewDetails(viewId):获取详细的视图元数据

⚙️ 流程和工作流

  • ReadBusinessProcessFlows():获取所有业务流程流
  • ReadWorkflows(tableName):获取表的工作流
  • ReadBusinessRules(tableName):获取表的业务规则

🔧 高级属性元数据

  • ReadAttributeDetails(tableName, attributeName):获取详细的属性元数据
  • ReadCalculatedFields(tableName):获取计算字段
  • ReadRollupFields(tableName):获取汇总字段
  • ReadLookupTargets(tableName, attributeName):获取查找目标信息

🏢 组织和解决方案信息

  • ReadOrganizationInfo():获取组织/环境详细信息
  • ReadLanguages():获取已安装的语言
  • ReadCurrencies():获取可用货币
  • ReadTimeZones():获取可用时区
  • ReadSolutions():获取所有解决方案(托管和非托管)
  • ReadSolutionDetails(solutionName):获取详细的解决方案信息
  • ReadPublishers():获取所有解决方案发布者
  • ReadSolutionComponents(solutionName):获取特定解决方案的组件

🔑 关键字和索引

  • ReadEntityKeys(tableName):获取表的所有键(备用键)
  • ReadKeyDetails(tableName, keyName):获取特定键的详细信息
  • ReadIndexes(tableName):获取表的所有索引

🔌 插件和自定义API

  • ReadPluginAssemblies():获取所有插件程序集
  • ReadPlugins(assemblyName):获取特定程序集中的插件
  • ReadPluginSteps(pluginName):获取特定插件的插件步骤
  • ReadCustomApis():获取所有自定义API
  • ReadCustomApiDetails(apiName):获取有关自定义API的详细信息
  • ReadCustomActions():获取所有自定义操作

连接字符串格式

服务器接受以下格式的Webex连接字符串:

AuthType=OAuth;Url=https://yourorg.crm4.dynamics.com/;Username=your@email.com;ClientId=your-client-id;LoginPrompt=Auto;RedirectUri=http://localhost/

有关更多连接字符串选项,请参阅 Microsoft Power Platform的BLOB文档.

列创建工具

dataverse元数据mcp服务器包括全面的列创建工具,允许您在具有完整验证和类型检查的情况下在Blob表中创建新属性。这些工具强制执行Webex命名约定,并提供详细的错误消息。

支持的列类型

  • 文本:带有格式选项(电子邮件、URL、电话等)的单行文本
  • 整数:具有范围验证和显示格式的整数
  • 十进制:具有可配置精度的十进制数
  • 货币:具有正确货币格式的货币字段
  • 日期时间:带有行为选项的日期和时间(用户本地、时区无关等)
  • 布尔:具有可自定义标签的是/否字段
  • 多行文字:具有可配置长度的长文本字段
  • 查找:引用具有自动关系创建功能的其他表
  • 选择(本地):带有自定义选项的单选字段
  • 多选(本地):带自定义选项的多选字段
  • 选择(全球):使用现有全局选项的单选选项字段
  • 多选(全局):使用现有全局选项选择多个选项字段
  • 文件/图像:图像和文档的文件存储列
  • 浮点:双精度浮点数
  • 大整数:超出标准整数范围的大整数值
  • 客户:可以引用帐户或联系人表的特殊查找列

主要特点

  • 全面验证:输入验证、类型检查和业务规则执行
  • 出版商前缀要求:列名和选项名称必须包含有效的发布者前缀(例如,“new_columnname”、“cr123_choicename”)
  • 企业就绪配置:审核设置、高级查找选项和适当的权限
  • 详细错误消息:验证失败和违反约束的明确反馈
  • 类型特定选项:每种数据类型的专用参数(精度、格式、范围等)

有关列创建工具的详细文档,包括示例和最佳实践,请参阅 列创建工具文档.

重复使用工具

这 DataverseMetadataMcp.Tools 库可以集成到其他MCP服务器中。请参阅 工具README 获取详细的集成说明。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试: dotnet test
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。