{
  "markdown": "# MCP Dataverse\n\n<div align=\"center\">\n\n<img src=\"assets/logo.webp\" alt=\"MCP Dataverse\" width=\"180\" />\n\n**The most complete MCP server for Microsoft Dataverse.**\n\n79 tools · 4 resources · 10 guided workflows · Three auth modes\n\n[![npm](https://img.shields.io/npm/v/mcp-dataverse)](https://www.npmjs.com/package/mcp-dataverse)\n[![npm downloads](https://img.shields.io/npm/dm/mcp-dataverse)](https://www.npmjs.com/package/mcp-dataverse)\n[![CI](https://github.com/codeurali/mcp-dataverse/actions/workflows/ci.yml/badge.svg)](https://github.com/codeurali/mcp-dataverse/actions/workflows/ci.yml)\n[![Node 20+](https://img.shields.io/badge/Node.js-20%2B-green)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.4-blue)](https://www.typescriptlang.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)\n\n**[→ Full Documentation](https://codeurali.github.io/mcp-dataverse)**\n\n</div>\n\n---\n\n<div align=\"center\">\n<video src=\"assets/demo.mp4\" controls poster=\"assets/demo-thumbnail.jpg\" width=\"800\">\n  <a href=\"assets/demo.mp4\"><img src=\"assets/demo-thumbnail.jpg\" alt=\"▶ Watch MCP Dataverse in action — 60s demo\" width=\"800\" /></a>\n</video>\n</div>\n\n---\n\n## Why MCP Dataverse?\n\nAI 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](https://modelcontextprotocol.io).\n\n- **Three auth modes** — device code (local), client credentials (CI/CD), managed identity (Azure-hosted)\n- **Works with any MCP client** — VS Code, Claude, Cursor, Windsurf, Gemini, Codex CLI\n- **Atomic tools** — each tool does one thing well; the AI picks the right one\n- **Structured outputs** — every response returns `{summary, data, suggestions}`\n- **Guardrails** — destructive operations require explicit confirmation\n- **Encrypted tokens** — AES-256-GCM cached credentials, never logged\n\n---\n\n## Install\n\n```bash\nnpx mcp-dataverse install\n```\n\nThe interactive wizard configures your environment, registers the server in VS Code, and authenticates your Microsoft account in under 2 minutes.\n\n> Requires Node.js 20+. For other clients (Claude, Cursor, Windsurf…) see [Multi-Client Setup](https://codeurali.github.io/mcp-dataverse/multi-client-setup).\n\n## Update\n\n```bash\nnpx mcp-dataverse update\n```\n\nNo 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.\n\n---\n\n## Authentication\n\nThree modes — choose based on where the server runs:\n\n| Mode                      | When to use                                                                                       |\n| :------------------------ | :------------------------------------------------------------------------------------------------ |\n| **Device Code** (default) | Local development — interactive Microsoft login, token cached on disk                             |\n| **Client Credentials**    | Unattended: CI/CD, Docker, Azure services — `authMethod: \"client-credentials\"` + App Registration |\n| **Managed Identity**      | Azure-hosted (App Service, Container Apps) — zero secrets, `authMethod: \"managed-identity\"`       |\n\n**Device code quick start:** authentication triggers on the first tool call.\n\n1. Open `View → Output → MCP` — a sign-in code appears\n2. Go to `https://microsoft.com/devicelogin`, enter the code, sign in with your work account\n3. Token is cached encrypted — all future starts are silent\n\nFor client credentials and managed identity setup, see [Authentication docs](https://codeurali.github.io/mcp-dataverse/authentication).\n\n---\n\n## Capabilities\n\n| Category                | Count | Description                                                           |\n| ----------------------- | ----- | --------------------------------------------------------------------- |\n| **Metadata**            | 9     | Tables, schema, relationships, option sets, entity keys               |\n| **Query**               | 3     | OData, FetchXML, paginated retrieval                                  |\n| **CRUD**                | 6     | Get, create, update, delete, upsert, assign                           |\n| **Relations**           | 4     | Associate, associate bulk, disassociate, query associations           |\n| **Actions & Functions** | 6     | Bound/unbound Dataverse actions and functions                         |\n| **Batch**               | 1     | Up to 1000 operations atomically                                      |\n| **Solutions**           | 2     | Publish customizations, create sitemap                                |\n| **Search**              | 1     | Full-text Relevance Search                                            |\n| **Users & Teams**       | 4     | Users, roles, teams, role assignment                                  |\n| **RBAC**                | 7     | Role privileges: list, assign, remove, add, replace, get, team        |\n| **Files**               | 2     | Upload/download file and image columns                                |\n| **Audit & Trace**       | 3     | Audit log, plugin trace logs, workflow trace logs                     |\n| **Annotations**         | 2     | Notes and file attachments                                            |\n| **Customization**       | 4     | Custom actions, plugins, env variables, connection references         |\n| **Attributes**          | 4     | Create, update, delete columns; lookup column type                    |\n| **Schema (write)**      | 2     | Create custom tables and relationships                                |\n| **Record Access**       | 4     | Check, grant, revoke record sharing; merge records                    |\n| **Assistance**          | 2     | Tool router, tool tags                                                |\n| **+ more**              | …     | Delta sync, impersonation, views, business units, duplicate detection |\n\n[→ Full Capabilities Reference](https://codeurali.github.io/mcp-dataverse/capabilities)\n\n---\n\n## HTTP Transport\n\nRun as an HTTP server for multi-client use:\n\n```bash\nMCP_TRANSPORT=http MCP_HTTP_PORT=3000 MCP_HTTP_SECRET=mysecret node dist/server.js\n```\n\nConnect using VS Code / Copilot with:\n\n```json\n{\n  \"servers\": {\n    \"dataverse\": {\n      \"type\": \"http\",\n      \"url\": \"http://localhost:3000/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer mysecret\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Troubleshooting\n\n| Symptom                            | Fix                                                                |\n| ---------------------------------- | ------------------------------------------------------------------ |\n| No sign-in prompt                  | Open **View → Output → MCP** — the device code is displayed there  |\n| `No MSAL accounts found`           | Run `npx mcp-dataverse-auth` then restart the server               |\n| `Authentication timed out`         | Restart the MCP server — a fresh code is generated automatically   |\n| Server not appearing in Agent mode | Run `npx mcp-dataverse install` or `npx mcp-dataverse doctor`      |\n| HTTP errors                        | Run `npx mcp-dataverse doctor` to diagnose config and connectivity |\n\n---\n\n## Performance Tip\n\nMCP 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.\n\n---\n\n## Roadmap\n\n| Version  | Feature                                                           | Status      |\n| -------- | ----------------------------------------------------------------- | ----------- |\n| **v0.4** | HTTP transport + attribute management + schema consistency        | ✅ Released |\n| **v0.5** | Enterprise auth (Client Credentials, Managed Identity, Entra JWT) | ✅ Released |\n| **v0.6** | MCP Prompts (5 templates) + MCP Resources (4)                     | ✅ Released |\n| **v0.7** | Schema write (create table/relationship) + Record Access (share, merge) | ✅ Released (v0.7.5) |\n\n[→ Full Roadmap](https://codeurali.github.io/mcp-dataverse/roadmap)\n\n---\n\n## License\n\n[MIT](LICENSE) © [Ali Taggaz](https://www.linkedin.com/in/alitaggaz/)\n",
  "bytes": 8330,
  "sha": "a7b3385b9b82369096ef032c5466b5f0206f2ed1f751aa96b405008424f3215f",
  "repo_slug": "codeurali/mcp-dataverse",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_codeurali_dataverse_bfcd8b2e/readme"
}