- Explore MCP Servers
- DataverseMCPServer
Dataversemcpserver
What is Dataversemcpserver
DataverseMCPServer is a complete solution for Microsoft Power Platform that provides a Node.js server exposing Dataverse tools via the Model Context Protocol (MCP). It features an HTTP ‘/invoke’ endpoint and a user-friendly HTML chatbot UI that accepts natural language queries.
Use cases
Use cases for DataverseMCPServer include querying entity metadata, retrieving specific records, listing entity attributes, and dynamically generating relationship maps, all through natural language queries.
How to use
To use DataverseMCPServer, clone the repository, install the necessary dependencies, build the TypeScript code, and configure the environment variables with your Power Platform credentials. After setup, you can interact with the server through the chatbot UI or directly via the ‘/invoke’ endpoint.
Key features
Key features include support for 8 core MCP operations, a natural-language front end for easy interaction, environment configuration using variables for credentials, and a simple HTTP server built with Express and CORS for integration.
Where to use
DataverseMCPServer can be used in various fields where Microsoft Power Platform is implemented, including business applications, CRM systems, and data management solutions.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Dataversemcpserver
DataverseMCPServer is a complete solution for Microsoft Power Platform that provides a Node.js server exposing Dataverse tools via the Model Context Protocol (MCP). It features an HTTP ‘/invoke’ endpoint and a user-friendly HTML chatbot UI that accepts natural language queries.
Use cases
Use cases for DataverseMCPServer include querying entity metadata, retrieving specific records, listing entity attributes, and dynamically generating relationship maps, all through natural language queries.
How to use
To use DataverseMCPServer, clone the repository, install the necessary dependencies, build the TypeScript code, and configure the environment variables with your Power Platform credentials. After setup, you can interact with the server through the chatbot UI or directly via the ‘/invoke’ endpoint.
Key features
Key features include support for 8 core MCP operations, a natural-language front end for easy interaction, environment configuration using variables for credentials, and a simple HTTP server built with Express and CORS for integration.
Where to use
DataverseMCPServer can be used in various fields where Microsoft Power Platform is implemented, including business applications, CRM systems, and data management solutions.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
Dataverse MCP Chatbot
A lightweight HTTP wrapper around a Model Context Protocol (MCP) server for Microsoft Power Platform/Dataverse. This project exposes a set of tools via a /invoke REST endpoint and includes a simple HTML chatbot UI that accepts natural-language queries and dynamically routes them to the appropriate MCP tool.
Features
-
MCP Tools: Supports 8 core MCP operations:
use-powerplatform-prompt— Entity overview, attribute details, query templates, relationship mapsget-entity-metadata— Fetch metadata for an entityget-entity-attributes— List all attributes of an entityget-entity-attribute— Retrieve a specific attribute definitionget-entity-relationships— One-to-many and many-to-many relationshipsget-global-option-set— Global option set definitionsget-record— Fetch a record by GUIDquery-records— OData-filtered record queries
-
Natural-Language Front End: HTML + JavaScript UI that parses free-text questions and invokes the correct MCP tool.
-
Environment Configuration: Uses environment variables for all Power Platform credentials.
-
Express + CORS: Simple HTTP server for integration with any front-end.
Prerequisites
-
Node.js >= 16.x
-
A Dataverse / Power Platform environment and service principal (app registration) with:
- Tenant ID
- Client (Application) ID
- Client Secret
- Organization URL (e.g.
https://<yourorg>.crm.dynamics.com)
Installation
-
Clone the repository
git clone https://github.com/your-org/powerplatform-mcp-chatbot.git cd powerplatform-mcp-chatbot -
Install dependencies
npm install -
Build the TypeScript
npm run build
Configuration
Create a .env file in the project root (or set environment variables in your shell) with:
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
Note: Ensure these values are kept secure and not committed to version control.
Running the Server
After building, start the HTTP wrapper:
node dist/server.js
You should see:
✅ PowerPlatform MCP HTTP server running at http://localhost:3000/invoke
REST Invoke Endpoint
All MCP tools are exposed via a single POST endpoint:
POST http://localhost:3000/invoke Content-Type: application/json { "tool": "tool-name", "parameters": { /* tool-specific parameters */ } }
Sample Requests
-
Entity Overview
curl -X POST http://localhost:3000/invoke \ -H 'Content-Type: application/json' \ -d '{"tool":"use-powerplatform-prompt","parameters":{"promptType":"ENTITY_OVERVIEW","entityName":"account"}}' -
Get Entity Metadata
curl -X POST http://localhost:3000/invoke \ -d '{"tool":"get-entity-metadata","parameters":{"entityName":"contact"}}' -
Query Records
curl -X POST http://localhost:3000/invoke \ -d '{"tool":"query-records","parameters":{"entityNamePlural":"contacts","filter":"statecode eq 0","maxRecords":10}}'
Refer to the full tool list above for parameter details.
HTML Chatbot UI
A demo front-end is provided in chatbot.html. It listens for natural-language queries, maps them to the correct tool, and displays results inline.
-
Serve
chatbot.html(e.g., open directly in Chrome or host via any static server). -
Ask questions such as:
- “Tell me about the Account entity”
- “List fields in Lead”
- “Details of field revenue on Account”
- “Find active contacts where statecode eq 0”
Troubleshooting
- CORS Errors: Ensure you run the HTML from a local or hosted file with CORS enabled (the server uses
cors()by default). - Authentication: Verify your service principal has Dataverse API permissions and the environment URL is correct.
- Errors: Check console output from
server.jsfor stack traces and error messages.
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










