home / mcp / dataverse mcp chatbot mcp server

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.

Installation
Add the following to your MCP client configuration file.

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.

How to use

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.

How to install

# 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.js

Configuration and usage notes

Configure 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.

Troubleshooting and security

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.

Available tools

use-powerplatform-prompt

Entity overview, attribute details, query templates, and relationship maps for a given entity

get-entity-metadata

Fetch metadata for a specified entity

get-entity-attributes

List all attributes of a specified entity

get-entity-attribute

Retrieve a specific attribute definition for an entity

get-entity-relationships

Inspect one-to-many and many-to-many relationships for an entity

get-global-option-set

Fetch global option set definitions

get-record

Fetch a single record by its GUID

query-records

Query records using OData-style filters