Dataverse MCP PCF - 基于AI的聊天组件
   
一个革命性的PowerApps组件框架(PCF)控件,它将AI驱动的对话界面直接引入到Microsoft Dataverse应用程序中。您可以使用自然语言与数据进行对话,让AI无缝处理复杂的Dataverse操作。
🚀 功能特性
🤖 基于人工智能的对话
- 自然语言查询用平实的英语提问,比如“给我列出前5个账户”或“列出所有表格”
- GPT-5迷你版集成由OpenAI最新模型提供智能回复支持
- 情境感知保持对话历史记录以便更好地理解
🔧 数据库操作
- 模式探索描述表格,列出实体,探索关系
- 数据查询使用自然语言执行复杂查询
- 实时操作通过聊天界面执行创建、读取、更新操作
- MCP协议使用模型上下文协议实现可靠的工具集成
💻 现代用户界面/用户体验(UI/UX)
- 响应式设计在桌面和移动设备上无缝工作
- 实时更新实时状态指示器和思考动画
- Markdown 支持回复中的富文本格式化
- 快速操作为常见操作预设快捷键
⚙️ 企业就绪
- 可配置的通过OpenAI端点配置轻松设置
- 安全基于令牌的身份验证,支持会话cookie
- 可扩展的设计时注重性能和可靠性
- 可扩展的易于添加新的MCP工具和功能
📋 快速入门
先决条件
- Microsoft Dataverse 环境
- OpenAI Azure 端点(GPT-5 迷你版部署)
配置
使用您的OpenAI设置配置该组件:
| 参数 | 描述 | 必需 |
|---|---|---|
openaiEndpoint | 您的OpenAI Azure终端节点URL | 是 |
openaiApiKey 用于身份验证的API密钥 | 是 | |
openaiApiVersion API版本(例如,“2024-02-01”) | 是 | |
openaiDeployment | GPT-5迷你版的部署名称 | 是 |
componentHeight | 聊天界面的高度 | 否 |
🛠️ 使用方法
基本聊天操作
User: "List all tables in my environment"
AI: Here are all the tables in your Dataverse environment:
- account (Account)
- contact (Contact)
- opportunity (Opportunity)
...高级查询
User: "Show me accounts created this month with revenue > $100k"
AI: I'll query the accounts for you...
| Name | Revenue | Created On |
|------|---------|------------|
| Contoso Ltd | $150,000 | 2025-10-05 |
| Fabrikam Inc | $120,000 | 2025-10-08 |模式探索
User: "Describe the account table"
AI: The account table has the following structure:
- accountid (Primary Key): Unique identifier
- name (Text): Account name
- revenue (Currency): Annual revenue
- createdon (DateTime): Record creation date
...🏗️ 建筑学
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ React UI │ │ OpenAI │ │ Dataverse │
│ Components │◄──►│ Agent │◄──►│ MCP Server │
└─────────────────┘ └──────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Chat │ │ Tool │ │ Web API │
│ Interface │ │ Execution │ │ Operations │
└─────────────────┘ └──────────────┘ └─────────────────┘核心组件
- DataverseChat.tsx 翻译为中文是:“数据宇宙聊天组件(或:数据宇宙聊天界面).tsx”。这里,“Dataverse”通常指的是一个数据宇宙或数据空间的概念,而“Chat”则表明这是一个聊天相关的组件或界面,“.tsx”是TypeScript的React组件文件扩展名带有消息历史记录的主聊天界面
- MCPClient.ts 翻译为中文是:“MCP客户端(TypeScript文件)”工具集成的模型上下文协议客户端
- OpenAIAgent.ts(文件名或类名,可翻译为“OpenAI代理.ts”)AI代理处理对话和工具调用
- ChatMessage.tsx 翻译成中文可以是:“聊天消息组件(使用TypeScript编写)”。不过,这里的“ChatMessage.tsx”更准确地描述了一个使用React和TypeScript编写的组件文件名,直接翻译可能不完全传达其技术含义,但基于您的要求,上述翻译是一个较为贴近的表述。在实际开发语境中,我们通常会直接保留“ChatMessage.tsx”这样的文件名,因为它已经包含了技术上的信息支持Markdown的单条消息渲染
- \
StatusBar.tsx\翻译成中文是“状态栏组件(使用TypeScript编写)”。不过,具体翻译可能根据上下文和项目命名习惯有所调整,但基本意思是描述一个用TypeScript编写的与状态栏相关的组件或文件实时状态和连接指示灯
可用的MCP工具
📚 文档
📄 许可证
这个项目遵循MIT许可证授权——详见 许可证 详情请参阅文件。
🙏 致谢
- Microsoft Power Platform 团队(负责PCF框架)
- OpenAI提供先进的AI能力
- 模型上下文协议贡献者
- 开源社区,灵感与工具的源泉
为微软Power平台社区倾心打造
*如果你觉得这个仓库有帮助,请给它加个星⭐!*
