DataverseMCPServer
A complete Power Platform MCP solution with a Node.js server exposing Dataverse tools via MCP, an HTTP `/invoke` endpoint, and a sleek HTML chatbot UI that accepts natural language queries (e.g. “List fields in Lead”) and routes them to the correct tool. Easily configurable via environment variables.
Documentation
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:
1. `use-powerplatform-prompt` — Entity overview, attribute details, query templates, relationship maps
2. `get-entity-metadata` — Fetch metadata for an entity
3. `get-entity-attributes` — List all attributes of an entity
4. `get-entity-attribute` — Retrieve a specific attribute definition
5. `get-entity-relationships` — One-to-many and many-to-many relationships
6. `get-global-option-set` — Global option set definitions
7. `get-record` — Fetch a record by GUID
8. `query-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:
Installation
1. Clone the repository
git clone https://github.com/your-org/powerplatform-mcp-chatbot.git
cd powerplatform-mcp-chatbot2. Install dependencies
npm install3. Build the TypeScript
npm run buildConfiguration
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.jsYou should see:
✅ PowerPlatform MCP HTTP server running at http://localhost:3000/invokeREST 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
1. 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"}}'2. Get Entity Metadata
curl -X POST http://localhost:3000/invoke \
-d '{"tool":"get-entity-metadata","parameters":{"entityName":"contact"}}'3. 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.
1. Serve `chatbot.html` (e.g., open directly in Chrome or host via any static server).
2. Ask questions such as:
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.js` for stack traces and error messages.
Frequently asked questions
What is DataverseMCPServer?
DataverseMCPServer is A complete Power Platform MCP solution with a Node.js server exposing Dataverse tools via MCP, an HTTP `/invoke` endpoint, and a sleek HTML chatbot UI that accepts natural language queries (e.g. “List fields in Lead”) and routes them to the correct tool. Easily configurable via environment variables.
How do I install DataverseMCPServer?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is DataverseMCPServer open source?
Yes — it is hosted on GitHub at https://github.com/bonanip512/dataversemcpserver and has 7 stars.
Related MCP tools
🍒 Cherry Studio is a desktop client that supports for multiple LLM providers. Built for the Model Context Protocol to enhance AI capabilities.
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini...
FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, ...
Composio equips your AI agents & LLMs with 100+ high-quality integrations via function calling for the Model Context Protocol. Enhance AI assistants with powerf
📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Lan...
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Ag...
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP