WBMCP聊天机器人
一个轻量级的HTTP包装器,围绕着微软Power Platform/Network的模型上下文协议(MCP)服务器。该项目通过 /invoke REST端点,包括一个简单的HTML聊天机器人UI,可以接受自然语言查询并将其动态路由到适当的MCP工具。
______________________________________________________________________
特性
- MCP工具:支持8核MCP操作:
1. use-powerplatform-prompt --实体概述、属性详细信息、查询模板、关系图 1. get-entity-metadata --获取实体的元数据 1. get-entity-attributes --列出实体的所有属性 1. get-entity-attribute --检索特定属性定义 1. get-entity-relationships --一对多和多对多的关系 1. get-global-option-set --全局选项集定义 1. get-record --按GUID获取记录 1. query-records --OData筛选记录查询
- 自然语言前端:HTML+JavaScript UI,解析自由文本问题并调用正确的MCP工具。
- 环境配置:对所有Power Platform凭据使用环境变量。
- 快递 + CORS:简单的HTTP服务器,可与任何前端集成。
______________________________________________________________________
先决条件
- Node.js >=16.x
- 一个具有以下功能的Ruby/Power平台环境和服务主体(应用程序注册):
- 租户ID - 客户端(应用程序)ID - 客户端密钥 - 组织URL(例如。 https://.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 # Optional: HTTP server port备注:确保这些值保持安全,不提交给版本控制。
______________________________________________________________________
运行服务器
构建后,启动HTTP包装器:
node dist/server.js您应该看到:
✅ PowerPlatform MCP HTTP server running at http://localhost:3000/invoke______________________________________________________________________
REST调用端点
所有MCP工具都通过一个POST端点公开:
POST http://localhost:3000/invoke
Content-Type: application/json
{
"tool": "tool-name",
"parameters": { /* tool-specific 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}}'有关参数的详细信息,请参阅上面的完整工具列表。
______________________________________________________________________
HTML聊天机器人用户界面
演示前端提供在 chatbot.html。它监听自然语言查询,将其映射到正确的工具,并内联显示结果。
- 服务
chatbot.html(例如,直接在Chrome中打开或通过任何静态服务器在主机中打开)。
- 提出问题 例如:
- “告诉我有关帐户实体的信息” - “列出Lead中的字段” - “现场记账收入明细” - “查找状态代码为eq 0的活动联系人”
______________________________________________________________________
故障排除
- CORS 错误:确保在启用CORS的情况下从本地或托管文件运行HTML(服务器使用
cors()默认情况下)。 - 认证:验证您的服务主体是否具有Dataverse API权限以及环境URL是否正确。
- 错误:检查控制台输出
server.js用于堆栈跟踪和错误消息。
