Dataverse

MCP server for dataverse data objects (dynamics primarily)
  • typescript

0

GitHub Stars

typescript

Language

7 months ago

First Indexed

3 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You can interact with Microsoft Dataverse data through natural language by running this MCP server. It exposes Dataverse tables and records via the Model Context Protocol, enabling you to list tables, query records with filters, create new records, and update existing ones using an MCP client or Claude Desktop integration.

How to use

Use an MCP client to connect to the Dataverse MCP Server at the local endpoint http://localhost:8000/mcp or the cloud deployment URL if you publish it. You can ask the client to list tables, explore table schemas, query records with filters and sorting, create new records, and update existing records by GUID. The server offers a natural language interface that translates your requests into Dataverse operations.

How to install

Prerequisites: Python 3.11 or newer, a Dataverse environment with API access, and an Azure AD app registration with Dataverse permissions.

Step by step commands to set up and run the server locally.

pip install fastapi uvicorn requests python-dotenv fastmcp

# Or with uv (recommended)
uv pip install fastapi uvicorn requests python-dotenv fastmcp

chmod +x setup_dataverse.sh
./setup_dataverse.sh

# If you configure manually, create .env.local with these values:
# DATAVERSE_HOST=https://org1bfe9c69.api.crm.dynamics.com
# DATAVERSE_TENANT_ID=your-tenant-id
# DATAVERSE_CLIENT_ID=your-client-id
# DATAVERSE_CLIENT_SECRET=your-client-secret

python test_dataverse.py

# Start the server locally
./watch.sh
# Or explicitly start with the web server
uvicorn server.app:combined_app --reload --port 8000

# Optional deploy flow to Databricks Apps
./deploy.sh --create

Configuration and startup details

The server uses environment variables to connect to Dataverse. Set up a Dataverse host, tenant, and client credentials in a local environment file or export them in your shell.

DATAVERSE_HOST=https://org1bfe9c69.api.crm.dynamics.com
DATAVERSE_TENANT_ID=your-tenant-id
DATAVERSE_CLIENT_ID=your-client-id
DATAVERSE_CLIENT_SECRET=your-client-secret

Server endpoints and health

MCP endpoint (local): http://localhost:8000/mcp Documentation: http://localhost:8000/docs Health: http://localhost:8000/api/health

Troubleshooting

401 Authentication Error: Verify the client secret and API permissions for the Dataverse app registration.

403 Permission Denied: Ensure the app has the proper security roles in the Power Platform Admin Center.

Table Not Found: Use list_tables() to determine the correct logical name of the target table.

Connection Timeout: Check that DATAVERSE_HOST is reachable and that your network allows access to the Dataverse environment.

Notes on deployment

Option A keeps everything on your machine for testing. Option B deploys to Databricks Apps for hosted access. Refer to the Databricks deployment steps for details.

Available tools

health

Server health check endpoint to verify MCP server readiness.

list_tables

List all Dataverse tables available in the environment.

describe_table

Get the schema and columns for a specific table.

read_query

Query records with OData-style filters, selections, and sorting.

create_record

Create a new record in a specified table.

update_record

Update an existing record by GUID.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
Dataverse MCP Server - lucamilletti99/dataverse_mcp_server | VeilStrat