# Mcp Dataverse

> MCP server for Microsoft Dataverse Web API for devs !

- **Type:** MCP server
- **Install:** `agentstack add mcp-codeurali-mcp-dataverse`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [codeurali](https://agentstack.voostack.com/s/codeurali)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [codeurali](https://github.com/codeurali)
- **Source:** https://github.com/codeurali/mcp-dataverse
- **Website:** https://codeurali.github.io/mcp-dataverse/

## Install

```sh
agentstack add mcp-codeurali-mcp-dataverse
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# MCP Dataverse

**The most complete MCP server for Microsoft Dataverse.**

79 tools · 4 resources · 10 guided workflows · Three auth modes

[](https://www.npmjs.com/package/mcp-dataverse)
[](https://www.npmjs.com/package/mcp-dataverse)
[](https://github.com/codeurali/mcp-dataverse/actions/workflows/ci.yml)
[](https://nodejs.org)
[](https://www.typescriptlang.org)
[](LICENSE)

**[→ Full Documentation](https://codeurali.github.io/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](https://modelcontextprotocol.io).

- **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

```bash
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](https://codeurali.github.io/mcp-dataverse/multi-client-setup).

---

## 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](https://codeurali.github.io/mcp-dataverse/authentication).

---

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

[→ Full Capabilities Reference](https://codeurali.github.io/mcp-dataverse/capabilities)

---

## HTTP Transport

Run as an HTTP server for multi-client use:

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

Connect using VS Code / Copilot with:

```json
{
  "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) |

[→ Full Roadmap](https://codeurali.github.io/mcp-dataverse/roadmap)

---

## License

[MIT](LICENSE) © [Ali Taggaz](https://www.linkedin.com/in/alitaggaz/)

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [codeurali](https://github.com/codeurali)
- **Source:** [codeurali/mcp-dataverse](https://github.com/codeurali/mcp-dataverse)
- **License:** MIT
- **Homepage:** https://codeurali.github.io/mcp-dataverse/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-codeurali-mcp-dataverse
- Seller: https://agentstack.voostack.com/s/codeurali
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
