home / mcp / dataverse mcp chatbot mcp server
Provides an HTTP MCP wrapper for Dataverse, exposing tools to fetch metadata, records, and entity details via a single /invoke endpoint.
Configuration
View docs{
"mcpServers": {
"bonanip512-dataversemcpserver": {
"url": "http://localhost:3000/invoke",
"headers": {
"PORT": "3000",
"POWERPLATFORM_URL": "https://yourorg.crm.dynamics.com",
"POWERPLATFORM_CLIENT_ID": "your-client-id",
"POWERPLATFORM_TENANT_ID": "your-tenant-id",
"POWERPLATFORM_CLIENT_SECRET": "your-client-secret"
}
}
}
}You deploy a lightweight HTTP wrapper around a Model Context Protocol (MCP) server for Dataverse. It exposes MCP tools via a single /invoke endpoint and includes a simple UI to ask natural-language questions and route them to the right MCP tool, enabling you to query metadata, fetch records, and explore entity structures with ease.
You run the MCP server locally or in your environment and send requests to the /invoke endpoint. Each request specifies which MCP tool you want to run and the parameters that tool needs. Use the HTTP endpoint to access a broad set of capabilities such as obtaining entity metadata, listing attributes, retrieving records, and performing filtered queries. The UI demo lets you type natural-language questions and automatically maps them to the appropriate MCP tool.
# Prerequisites
# - Node.js >= 16.x
# 1. Clone the project
git clone https://github.com/bonanip512/dataversemcpserver.git
cd dataversemcpserver
# 2. Install dependencies
npm install
# 3. Build the TypeScript source
npm run build
# 4. Run the server
node dist/server.jsConfigure your Dataverse / Power Platform credentials using environment variables. The server reads these values to authenticate and access the Dataverse API.
Environment variables you will set include credentials and connection details such as your Dataverse URL, client ID, client secret, tenant ID, and an optional port for the HTTP server.
If you encounter CORS errors, ensure you serve the client from a host with CORS enabled on the server. Verify that your service principal has the necessary Dataverse permissions and that the environment URL is correct. Check logs from the running server for stack traces and error messages to identify misconfigurations or authentication issues.
Entity overview, attribute details, query templates, and relationship maps for a given entity
Fetch metadata for a specified entity
List all attributes of a specified entity
Retrieve a specific attribute definition for an entity
Inspect one-to-many and many-to-many relationships for an entity
Fetch global option set definitions
Fetch a single record by its GUID
Query records using OData-style filters