Skip to content

Roadmap

The MCP Dataverse project follows semantic versioning and ships incremental improvements between milestones. Here's what's coming.


v0.4 — Streamable HTTP + Schema Consistency

Released Goal: First-class HTTP/SSE support for multi-client and remote deployment scenarios, attribute-level schema management (create/update/delete columns + lookup), and fixes surfaced by the Web API audit. Released 2026-03-05 as v0.4.0, updated through v0.4.6 (73 tools across 25 categories).

The foundation already exists — StreamableHTTPServerTransport is implemented and functional (npx mcp-dataverse --transport http). This milestone polishes it for production and resolves the schema inconsistencies identified during 8 live testing sessions.

HTTP Transport

ItemStatus
StreamableHTTPServerTransport integration✅ Done
enableJsonResponse toggle for non-streaming clients✅ Done
Authentication over HTTP (session tokens)✅ Done
Documentation & multi-client HTTP examples✅ Done

Attribute Management

ItemStatus
dataverse_create_attribute — create columns (String, Integer, Decimal, Boolean, DateTime, Money, Memo, Picklist, BigInt)✅ Done
dataverse_update_attribute — update column properties (display name, description, requirement level)✅ Done
dataverse_delete_attribute — remove custom columns with confirmation guardrail✅ Done
Lookup, MultiSelectPicklist, Image, AutoNumber attribute types✅ Done

Schema Consistency

ItemStatus
Uniform parameter naming across all tools (camelCase convention)✅ Done
confirm parameter documented consistently on all destructive tools✅ Done
suggest_tools no longer exposes non-callable tools✅ Done
errorCategory field in error responses (ENV_LIMITATION / PERMISSIONS / SCHEMA_MISMATCH)✅ Done
Preflight checks for environment prerequisites (HasNotes, Change Tracking, Alternate Keys)✅ Done
dataverse_search — actionable error when Relevance Search is disabled✅ Done

Audit Fixes

ItemStatus
Add MSCRM.MergeLabels: true header on metadata PUT/PATCH to preserve multi-language labels✅ Done
Fix batch request body to use CRLF (\r\n) per RFC 2046✅ Done
detect_duplicates — align description with actual implementation (FetchXML field-OR match)✅ Done
search — construct URL from environmentUrl instead of relative ../../ hack✅ Done
executeFunction — support aliased typed parameters (not just string)✅ Done

Why it matters: HTTP transport unlocks remote servers, shared team instances, and integration with orchestrators that can't spawn stdio processes. Schema consistency reduces AI agent confusion and improves first-call success rates. Attribute management brings column-level CRUD natively. Audit fixes harden Web API compliance.


v0.5 — Auth Methods & Completeness

Done Goal: Enterprise-grade authentication options so teams can deploy MCP Dataverse without PAC CLI, plus the remaining consistency fixes from v0.4.

Authentication Methods

ItemStatus
Azure AD app registration (Client Credentials) — service-to-service, CI/CD, unattended scenarios✅ Done
Managed Identity — zero-secret auth for Azure-hosted deployments (App Service, Container Apps, VM)✅ Done
authMethod config option ("pac" / "client-credentials" / "managed-identity")✅ Done

Schema & Error Consistency

ItemStatus
errorCategory field in error responses (ENV_LIMITATION / PERMISSIONS / SCHEMA_MISMATCH)✅ Done
dataverse_search — actionable error when Relevance Search is disabled✅ Done
Uniform camelCase parameter naming across all tools✅ Done

Why it matters: Client Credentials and Managed Identity unlock server-side deployments and CI/CD pipelines without any interactive login. Structured error categories let AI agents self-correct without human intervention.


v0.6 — MCP Resources + Prompts

Done Goal: Full MCP spec coverage — structured resource URIs for contextual data access and pre-built prompt templates for guided multi-step Dataverse workflows. Released 2026-04-12 as v0.6.0.

MCP Resources

Read-only resources that AI clients (Claude, Cursor) can load directly into context:

URITypeDescription
dataverse://tablesStaticFull catalog of all tables in the environment
dataverse://server/instructionsStaticAgent best practices and usage guidelines
dataverse://tables/{tableName}/schemaTemplateAll columns, types, and constraints for a table
dataverse://tables/{tableName}/relationshipsTemplateAll 1:N, N:1, N:N relationships for a table

MCP Prompts

Structured prompt templates that AI agents can invoke for guided, multi-step tasks:

PromptArgumentsDescription
analyze-org-health(none)Full org health check: table inventory, roles, workflows
data-quality-checktableName (required), sampleSize (opt, def 50)Nullity rates, duplicate detection, field completeness
schema-reviewtableName (required)Schema best practices: naming, types, relations, views
security-audit(none)Over-privileged users, empty teams, orphaned role assignments
analyze-workflowworkflowName (opt), statusFilter (opt: active/inactive/all)Workflow health, error rates, ownership gaps

Why it matters: Full MCP spec coverage (tools + resources + prompts) — a first for any Dataverse MCP server. Resources let AI agents load schema into context without extra tool calls. Prompts guide complex multi-step workflows with consistent patterns.


v0.7 — Schema & Record Management

Done Goal: Table-level schema management (create table, create relationship), record-level security (grant/revoke/check access), and deduplication via Merge. Released 2026-04-12 as v0.7.0; patch v0.7.5 released 2026-04-14 (4 regression fixes on check_record_access, merge_records, create_relationship).

Schema Tools

ItemStatus
dataverse_create_table — create custom entities via POST /EntityDefinitions✅ Done
dataverse_create_relationship — create standalone 1:N / N:N relationships✅ Done
Global OptionSet CRUD — create / update / delete shared option sets🔜 Planned
Alternate Key CRUD — define and manage entity keys for upsert scenarios🔜 Planned

Record Operations

ItemStatus
dataverse_check_record_accessRetrievePrincipalAccess to check who can read/write/delete a record✅ Done
dataverse_grant_access / dataverse_revoke_access — record-level sharing via GrantAccess / RevokeAccess✅ Done
dataverse_merge_recordsMerge action for deduplication workflows✅ Done
Solution import / export — ExportSolution / ImportSolution actions🔜 Planned
FetchXML auto-pagination — transparent cookie-based paging for large result sets🔜 Planned

Why it matters: Completes the entity lifecycle (create table → add columns → define relationships). Access control tools let AI agents manage sharing without dropping to raw API calls. Solution lifecycle tools support ALM workflows.


Feature Requests

Have an idea? Open an issue with the enhancement label.