使用说明
XML元数据MCP
用于Power Platform项目的MCP(模型上下文协议)实现,提供访问WebSocket元数据的工具。
安装
安装 XML元数据MCP VS代码市场的扩展:
- 打开VS代码
- 转到扩展(Ctrl+Shift+X)
- 搜索“XML元数据MCP”
- 单击安装
该扩展会自动在GitHub Copilot上注册MCP服务器,并提供一个易于使用的配置UI来设置您的鲍比连接。看 vscode扩展/README.md 了解详情。
用法示例
看看 用法示例 了解如何使用RubyMetadata MCP服务器。
开发设置
如果你想贡献或从源代码运行:
-
克隆存储库:
git clone https://github.com/markus-tobler/dataverse-metadata-mcp.git cd dataverse-metadata-mcp -
构建解决方案:
dotnet build -
使用连接字符串运行服务器:
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/" -
用于使用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():获取所有自定义APIReadCustomApiDetails(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 获取详细的集成说明。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试:
dotnet test - 提交拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。