npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-dataverse

v0.7.5

Published

The most complete MCP server for Microsoft Dataverse. 79 production-ready tools for AI agents: OData & FetchXML queries, CRUD, metadata, solutions, audit, batch operations, schema write, record access and more. Device code, client credentials, and managed

Readme

MCP Dataverse

The most complete MCP server for Microsoft Dataverse.

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

npm npm downloads CI Node 20+ TypeScript License: MIT

→ 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.

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

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 |

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


License

MIT © Ali Taggaz