mcp-dataverse
MCP server for Microsoft Dataverse Web API for devs !
Documentation
MCP Dataverse
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.
- Three auth modes — device code (local), client credentials (CI/CD), managed identity (Azure-hosted)
- 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 installThe 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.
Update
npx mcp-dataverse updateNo re-config required — just checks your existing setup and shows what changed. `npx` auto-fetches the latest version on each run, so simply restarting your MCP client is enough to get the new tools.
Authentication
Three modes — choose based on where the server runs:
| Mode | When to use |
|---|---|
| Device Code (default) | Local development — interactive Microsoft login, token cached on disk |
| Client Credentials | Unattended: CI/CD, Docker, Azure services — `authMethod: "client-credentials"` + App Registration |
| Managed Identity | Azure-hosted (App Service, Container Apps) — zero secrets, `authMethod: "managed-identity"` |
Device code quick start: authentication triggers on the first tool call.
1. Open `View → Output → MCP` — a sign-in code appears
2. Go to `https://microsoft.com/devicelogin`, enter the code, sign in with your work account
3. Token is cached encrypted — all future starts are silent
For client credentials and managed identity setup, see Authentication docs.
Capabilities
| Category | Count | Description |
|---|---|---|
| Metadata | 9 | Tables, schema, relationships, option sets, entity keys |
| Query | 3 | OData, FetchXML, paginated retrieval |
| CRUD | 6 | Get, create, update, delete, upsert, assign |
| Relations | 4 | Associate, associate bulk, disassociate, query associations |
| Actions & Functions | 6 | Bound/unbound Dataverse actions and functions |
| Batch | 1 | Up to 1000 operations atomically |
| Solutions | 2 | Publish customizations, create sitemap |
| Search | 1 | Full-text Relevance Search |
| Users & Teams | 4 | Users, roles, teams, role assignment |
| RBAC | 7 | Role privileges: list, assign, remove, add, replace, get, team |
| Files | 2 | Upload/download file and image columns |
| Audit & Trace | 3 | Audit log, plugin trace logs, workflow trace logs |
| Annotations | 2 | Notes and file attachments |
| Customization | 4 | Custom actions, plugins, env variables, connection references |
| Attributes | 4 | Create, update, delete columns; lookup column type |
| Schema (write) | 2 | Create custom tables and relationships |
| Record Access | 4 | Check, grant, revoke record sharing; merge records |
| Assistance | 2 | Tool router, tool tags |
| + more | … | Delta sync, impersonation, views, business units, duplicate detection |
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.jsConnect 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` |
| HTTP errors | Run `npx mcp-dataverse doctor` to diagnose config and connectivity |
Performance Tip
MCP Dataverse is designed to be comprehensive, but most AI models work best with fewer tools in context. Deselect the tools you don't need in your client's tool picker (e.g. VS Code Chat panel) to keep the agent focused and responsive.
Roadmap
| Version | Feature | Status |
|---|---|---|
| v0.4 | HTTP transport + attribute management + schema consistency | ✅ Released |
| v0.5 | Enterprise auth (Client Credentials, Managed Identity, Entra JWT) | ✅ Released |
| v0.6 | MCP Prompts (5 templates) + MCP Resources (4) | ✅ Released |
| v0.7 | Schema write (create table/relationship) + Record Access (share, merge) | ✅ Released (v0.7.5) |
License
Frequently asked questions
What is mcp-dataverse?
mcp-dataverse is MCP server for Microsoft Dataverse Web API for devs !
How do I install mcp-dataverse?
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 mcp-dataverse open source?
Yes — it is hosted on GitHub at https://github.com/codeurali/mcp-dataverse and has 13 stars.
Related MCP tools
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Official remote MCP server for Atlassian. Securely connect Jira, Confluence, Jira Service Management, Bitbucket, and Compass to Claude, ChatGPT, Cursor, VS Code, and other AI tools using OAuth 2.1 or API tokens.
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients. JavaScript-based implementation.
Use any LLMs (Large Language Models) for Deep Research. Support SSE API and MCP server.
文颜 MCP Server 可以让 AI 自动将 Markdown 文章排版后发布至微信公众号。
This is a 12306 ticket search server based on the Model Context Protocol (MCP).
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP