这是一个轻量级的HTTP封装器,围绕Microsoft Power Platform/Dataverse的模型上下文协议(MCP)服务器。该项目通过一个/invoke REST端点提供了一组工具,并包括一个简单的HTML聊天机器人UI,该UI接受自然语言查询并动态将其路由到适当的MCP工具。
MCP 工具:支持8个核心MCP操作:
use-powerplatform-prompt — 实体概述、属性详情、查询模板、关系图get-entity-metadata — 获取实体元数据get-entity-attributes — 列出实体的所有属性get-entity-attribute — 检索特定属性定义get-entity-relationships — 一对多和多对多关系get-global-option-set — 全局选项集定义get-record — 根据GUID获取记录query-records — 使用OData过滤的记录查询自然语言前端:HTML + JavaScript UI解析自由文本问题并调用正确的MCP工具。
环境配置:使用环境变量存储所有Power Platform凭据。
Express + CORS:用于与任何前端集成的简单HTTP服务器。
Node.js >= 16.x
一个Dataverse / Power Platform环境和服务主体(应用程序注册),包括:
https://<yourorg>.crm.dynamics.com)克隆仓库
git clone https://github.com/your-org/powerplatform-mcp-chatbot.git
cd powerplatform-mcp-chatbot
安装依赖
npm install
构建TypeScript
npm run build
在项目根目录创建一个.env文件(或在你的shell中设置环境变量):
POWERPLATFORM_URL=https://yourorg.crm.dynamics.com
POWERPLATFORM_CLIENT_ID=your-client-id
POWERPLATFORM_CLIENT_SECRET=your-client-secret
POWERPLATFORM_TENANT_ID=your-tenant-id
PORT=3000 # 可选:HTTP服务器端口
注意:确保这些值的安全性,不要提交到版本控制中。
构建后,启动HTTP封装器:
node dist/server.js
你应该看到:
✅ PowerPlatform MCP HTTP服务器运行在http://localhost:3000/invoke
所有MCP工具都通过一个单一的POST端点暴露:
POST http://localhost:3000/invoke
Content-Type: application/json
{
"tool": "tool-name",
"parameters": { /* 工具特定参数 */ }
}
实体概述
curl -X POST http://localhost:3000/invoke \
-H 'Content-Type: application/json' \
-d '{"tool":"use-powerplatform-prompt","parameters":{"promptType":"ENTITY_OVERVIEW","entityName":"account"}}'
获取实体元数据
curl -X POST http://localhost:3000/invoke \
-d '{"tool":"get-entity-metadata","parameters":{"entityName":"contact"}}'
查询记录
curl -X POST http://localhost:3000/invoke \
-d '{"tool":"query-records","parameters":{"entityNamePlural":"contacts","filter":"statecode eq 0","maxRecords":10}}'
参阅上面的完整工具列表以了解参数细节。
提供了演示前端chatbot.html。它监听自然语言查询,将其映射到正确的工具,并在页面内显示结果。
服务chatbot.html(例如,在Chrome中直接打开或通过任何静态服务器托管)。
提问如:
cors())。server.js的控制台输出以获取堆栈跟踪和错误消息。