返回市场
数据版本mcp服务器

数据版本mcp服务器

作者:bonanip5127 星标更新:2025-05-18

项目介绍

Dataverse MCP 聊天机器人

这是一个轻量级的HTTP封装器,围绕Microsoft Power Platform/Dataverse的模型上下文协议(MCP)服务器。该项目通过一个/invoke REST端点提供了一组工具,并包括一个简单的HTML聊天机器人UI,该UI接受自然语言查询并动态将其路由到适当的MCP工具。


功能

  • MCP 工具:支持8个核心MCP操作:

    1. use-powerplatform-prompt — 实体概述、属性详情、查询模板、关系图
    2. get-entity-metadata — 获取实体元数据
    3. get-entity-attributes — 列出实体的所有属性
    4. get-entity-attribute — 检索特定属性定义
    5. get-entity-relationships — 一对多和多对多关系
    6. get-global-option-set — 全局选项集定义
    7. get-record — 根据GUID获取记录
    8. query-records — 使用OData过滤的记录查询
  • 自然语言前端:HTML + JavaScript UI解析自由文本问题并调用正确的MCP工具。

  • 环境配置:使用环境变量存储所有Power Platform凭据。

  • Express + CORS:用于与任何前端集成的简单HTTP服务器。


预备条件

  • Node.js >= 16.x

  • 一个Dataverse / Power Platform环境和服务主体(应用程序注册),包括:

    • 租户ID
    • 客户端(应用)ID
    • 客户端密钥
    • 组织URL(例如https://<yourorg>.crm.dynamics.com

安装

  1. 克隆仓库

    git clone https://github.com/your-org/powerplatform-mcp-chatbot.git
    cd powerplatform-mcp-chatbot
    
  2. 安装依赖

    npm install
    
  3. 构建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

REST 调用端点

所有MCP工具都通过一个单一的POST端点暴露:

POST http://localhost:3000/invoke
Content-Type: application/json

{
  "tool": "tool-name",
  "parameters": { /* 工具特定参数 */ }
}

示例请求

  1. 实体概述

    curl -X POST http://localhost:3000/invoke \
      -H 'Content-Type: application/json' \
      -d '{"tool":"use-powerplatform-prompt","parameters":{"promptType":"ENTITY_OVERVIEW","entityName":"account"}}'
    
  2. 获取实体元数据

    curl -X POST http://localhost:3000/invoke \
      -d '{"tool":"get-entity-metadata","parameters":{"entityName":"contact"}}'
    
  3. 查询记录

    curl -X POST http://localhost:3000/invoke \
      -d '{"tool":"query-records","parameters":{"entityNamePlural":"contacts","filter":"statecode eq  0","maxRecords":10}}'
    

参阅上面的完整工具列表以了解参数细节。


HTML 聊天机器人UI

提供了演示前端chatbot.html。它监听自然语言查询,将其映射到正确的工具,并在页面内显示结果。

  1. 服务chatbot.html(例如,在Chrome中直接打开或通过任何静态服务器托管)。

  2. 提问如:

    • “告诉我关于账户实体”
    • “列出潜在客户的字段”
    • “账户收入字段的详情”
    • “查找状态码等于0的活跃联系人”

故障排除

  • CORS错误:确保从本地或已启用CORS的托管文件运行HTML(服务器默认使用cors())。
  • 身份验证:确认你的服务主体具有Dataverse API权限且环境URL正确。
  • 错误:检查server.js的控制台输出以获取堆栈跟踪和错误消息。