MCP Dataverse MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add mcp-dataverse -- npx mcp-dataverse install
README.md

The most complete MCP server for Microsoft Dataverse.

MCP Dataverse

The most complete MCP server for Microsoft Dataverse.

73 tools · 4 resources · 10 guided workflows · Zero config auth

→ Full Documentation


Why MCP Dataverse?

AI agents hallucinate schema, guess column names, and build broken OData queries. This server gives them real-time access to your Dataverse environment — schema, records, metadata, solutions — through the Model Context Protocol.

  • No Azure AD app registration — device code flow, zero pre-configuration
  • Works with any MCP client — VS Code, Claude, Cursor, Windsurf, Gemini, Codex CLI
  • Atomic tools — each tool does one thing well; the AI picks the right one
  • Structured outputs — every response returns {summary, data, suggestions}
  • Guardrails — destructive operations require explicit confirmation
  • Encrypted tokens — AES-256-GCM cached credentials, never logged

Install

npx mcp-dataverse install

The interactive wizard configures your environment, registers the server in VS Code, and authenticates your Microsoft account in under 2 minutes.

Requires Node.js 20+. For other clients (Claude, Cursor, Windsurf…) see Multi-Client Setup.


Authentication

No PAC CLI, no app registration, no client secret. Uses Microsoft's device code flow (MSAL):

  1. First tool call → a sign-in code appears in the MCP Output panel (View → Output → MCP)
  2. Open https://microsoft.com/devicelogin → enter the code → sign in with your work account
  3. Done. Token is cached encrypted — all future starts are silent

Re-authenticate after ~90 days of inactivity: npx mcp-dataverse-auth


Capabilities

Category Count Description
Metadata 8 Tables, schema, relationships, option sets, entity keys
Query 3 OData, FetchXML, paginated retrieval
CRUD 6 Get, create, update, delete, upsert, assign
Actions & Functions 6 Bound/unbound Dataverse actions and functions
Batch 1 Up to 1000 operations atomically
Solutions 3 List solutions, components, publish customizations
Search 1 Full-text Relevance Search
Users & Teams 3 Users, roles, teams
Files 2 Upload/download file and image columns
+ more Audit, trace logs, delta tracking, impersonation, annotations…
Assistance 4 Tool router, workflow guide

→ Full Capabilities Reference


HTTP Transport

Run as an HTTP server for multi-client use:

MCP_TRANSPORT=http MCP_HTTP_PORT=3000 MCP_HTTP_SECRET=mysecret node dist/server.js

Connect using VS Code / Copilot with:

{
  "servers": {
    "dataverse": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "Authorization": "Bearer mysecret"
      }
    }
  }
}

Troubleshooting

Symptom Fix
No sign-in prompt Open View → Output → MCP — the device code is displayed there
No MSAL accounts found Run npx mcp-dataverse-auth then restart the server
Authentication timed out Restart the MCP server — a fresh code is generated automatically
Server not appearing in Agent mode Run npx mcp-dataverse install or npx mcp-dataverse doctor

Tools (4)

metadata_toolsAccess tables, schema, relationships, option sets, and entity keys.
query_toolsExecute OData and FetchXML queries for paginated data retrieval.
crud_toolsPerform create, read, update, delete, upsert, and assign operations on records.
action_toolsExecute bound and unbound Dataverse actions and functions.

Environment Variables

MCP_TRANSPORTTransport protocol for the server (e.g., http)
MCP_HTTP_PORTPort for the HTTP server
MCP_HTTP_SECRETSecret token for HTTP authentication

Configuration

claude_desktop_config.json
{"servers": {"dataverse": {"type": "http", "url": "http://localhost:3000/mcp", "headers": {"Authorization": "Bearer mysecret"}}}}

Try it

List all tables in my Dataverse environment that contain 'Account' in their name.
Fetch the last 10 records from the 'Contacts' table using FetchXML.
Create a new record in the 'Tasks' table with the subject 'Follow up with client'.
Find the schema definition for the 'Opportunity' entity.
Execute the 'CalculateTotal' action for the opportunity with ID '123-456'.

Frequently Asked Questions

What are the key features of MCP Dataverse?

Real-time access to Dataverse schema, records, and metadata. Zero-config authentication using Microsoft device code flow. Support for OData and FetchXML queries. Atomic CRUD operations with built-in guardrails. Encrypted credential caching using AES-256-GCM.

What can I use MCP Dataverse for?

Automating data entry and record updates in Dataverse via AI agents. Generating complex OData queries for reporting without manual schema lookup. Managing Dataverse solutions and components through natural language commands. Performing bulk operations and batch updates across multiple entities.

How do I install MCP Dataverse?

Install MCP Dataverse by running: npx mcp-dataverse install

What MCP clients work with MCP Dataverse?

MCP Dataverse works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Dataverse docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare