By nickmeron
Manage the full Dynamics 365 / Dataverse lifecycle: explore metadata, CRUD records, debug plugins, manage solutions and ALM, audit security, and configure web resources, webhooks, and service bus endpoints — all from Claude.
Manage plugin registrations in Dynamics 365 — browse assemblies, register/update/delete processing steps, manage pre/post images, enable/disable steps. Use when asked "register a step", "show me plugin steps", "disable step X", "add a pre-image".
Manage webhooks and Service Bus endpoints in Dynamics 365 — register webhooks, create Service Bus queue/topic/Event Hub integrations, view endpoints and their registered steps. Use when asked "register a webhook", "show webhooks", "set up Service Bus integration".
Manage web resources in Dynamics 365 — view, create, edit, and publish JavaScript, HTML, CSS, and other web resources. Use when asked "show me web resources", "edit this JS file", "create a new script", "download webresource".
Set up and manage Dataverse Managed Identities for plugin assemblies — create UAMIs, compute federated credentials, register managed identity records in Dataverse, associate assemblies, and configure CI/CD signing. Use when asked "set up managed identity", "configure plugin managed identity", "connect plugin to Key Vault", "federated credential", "sign plugin assembly".
Manage Power Platform CLI (pac) authentication profiles — create, list, switch, and delete auth connections to Dynamics 365 environments. Use when asked "connect pac to environment", "switch pac environment", "authenticate pac CLI".
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
MCP server that gives Claude (or any MCP client) full access to Microsoft Dynamics 365 / Dataverse APIs.
68 tools + 18 skills covering metadata exploration, CRUD operations, plugin registration, solution ALM, security auditing, web resources, audit logs, managed identity, and more.
| Category | Tools | Examples |
|---|---|---|
| Auth | 2 | Sign in as yourself via az login (delegated, no secret) |
| Environment | 3 | Switch between Dev / Test / Prod at runtime |
| Metadata | 8 | Entities, fields, relationships, option sets, keys |
| Data (CRUD) | 8 | Query, create, update, delete, FetchXML, batch |
| Security | 8 | Users, roles, teams, queues, privilege comparison |
| Plugins | 21 | Assemblies, steps, images, SDK messages, enable/disable |
| Solutions | 4 | List, inspect components, dependencies |
| ALM | 3 | Export, import, publish customizations |
| Web Resources | 4 | List, read, create, update JS/HTML/CSS |
| Audit | 4 | Audit history, entity/field/org audit status |
| Custom Actions | 4 | Discover and inspect Custom Actions & APIs |
| Env Variables | 3 | List, get, set environment variables |
| Managed Identity | 4 | UAMI setup for plugin Azure access |
| Org Settings | 2 | Organization metadata, trace log control |
| Batch | 1 | Execute multiple API calls atomically |
| PAC CLI | 4 skills | Auth, PCF component scaffolding, Plugin project scaffolding, Solution pack/unpack for CI/CD |
az) — used for delegated sign-in:
brew install azure-cli · Windows: winget install --id Microsoft.AzureCLI · Linux: curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bashgit clone https://github.com/your-username/dataverse-mcp-server.git
cd dataverse-mcp-server/mcp-server
npm install
npm run build
claude mcp add dynamics365 -t stdio \
-- node /full/path/to/dataverse-mcp-server/mcp-server/dist/index.js
macOS / Linux:
cp -r skills/* ~/.claude/skills/
Windows:
xcopy /E /I skills\* "%USERPROFILE%\.claude\skills\"
Run /mcp in Claude Code — you should see dynamics365 · ✓ connected.
Then say:
"Connect to Dataverse"
Claude calls authenticate, which uses your existing az login session — or runs az login for you (a browser opens; just pick your account). You sign in as yourself, so your creates/updates are attributed to the real you, not an app. No client secret.
Delegated — you sign in with your own Azure AD identity (via the Azure CLI), so Dataverse stamps createdby / modifiedby with the real human. No client secret, and access is governed by your own Dataverse security roles.
Say "Connect to Dataverse" and the server signs you in, in this order:
az login session — used silently if present.az login for you — opens a browser; just pick your account. This is the browser-based auth-code flow, which Conditional Access allows.authenticate returns one-line install instructions for your OS.Device-code sign-in is opt-in only (
authenticatewithmethod: "device_code") and is frequently blocked by Conditional Access — the "an authentication flow that is restricted by your admin" page. The browseraz loginflow above is the supported path.
Set D365_TENANT_ID to sign in against a specific tenant (otherwise your az default tenant is used):
claude mcp add dynamics365 -t stdio \
-e D365_TENANT_ID=your-tenant-id \
-- node /full/path/to/dataverse-mcp-server/mcp-server/dist/index.js
Assign your user a Dataverse security role in the target environment (Power Platform admin center → Environment → Users + permissions). No app registration or client secret is required.
Three ways to pre-configure your Dynamics 365 environments:
Option A — Single URL (auto-selected, simplest)
-e D365_ORG_URL=https://yourorg.crm.dynamics.com
Option B — Comma-separated URLs (names derived from hostname)
-e 'D365_ENVIRONMENTS=https://yourorg-dev.crm.dynamics.com,https://yourorg.crm.dynamics.com'
Option C — JSON array (full control over names)
-e 'D365_ENVIRONMENTS=[{"name":"Dev","url":"https://yourorg-dev.crm.dynamics.com"},{"name":"Prod","url":"https://yourorg.crm.dynamics.com"}]'
Option D — Runtime — no env vars needed. Just ask Claude:
"connect to https://myorg.crm.dynamics.com"
npx claudepluginhub nickmeron/dataverse-mcp-serverHarness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Persistent file-based planning for AI coding agents. Crash-proof markdown plans (task_plan.md, findings.md, progress.md) that survive context loss and /clear, with an opt-in completion gate and multi-agent shared state. Manus-style. Works with Claude Code, Codex CLI, Cursor, Kiro, OpenCode and 60+ agents via the SKILL.md standard. Includes Arabic, German, Spanish, and Chinese (Simplified and Traditional).
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques