You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CAPABILITIES.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
# MCP Dataverse Server — Complete Capabilities Reference
2
2
3
-
> **Version**: 0.5.0 | **API Version**: Dataverse Web API v9.2 | **Transport**: stdio · HTTP/SSE
3
+
> **Version**: 0.7.5 | **API Version**: Dataverse Web API v9.2 | **Transport**: stdio · HTTP/SSE
4
4
5
-
73 tools across 25 categories for full Dataverse lifecycle: schema, CRUD, FetchXML, solutions, plugins, audit, files, users, teams, RBAC, attribute management, environment variables, workflows, and more.
5
+
79 tools across 27 categories for full Dataverse lifecycle: schema, CRUD, FetchXML, solutions, plugins, audit, files, users, teams, RBAC, attribute management, environment variables, workflows, schema write, record access, and more.
All tool handlers validate inputs with **Zod** before calling the `DataverseAdvancedClient`. Auth tokens are cached and refreshed proactively; transient errors (429, 503, 504) are retried with exponential backoff.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+55Lines changed: 55 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,61 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) — [Semantic V
5
5
6
6
---
7
7
8
+
## [0.7.5] — 2026-04-14
9
+
10
+
### Fixed
11
+
12
+
-**BUG-041 — `dataverse_check_record_access` bound-function regression**: `RetrievePrincipalAccess` is a **bound** OData function on the principal entity (system user or team), not a standalone function. The previous implementation called it as an unbound function, causing runtime failures. Fixed: `executeBoundFunction(principalEntitySet, principalId, "RetrievePrincipalAccess", { Target })`. All 10 access-check tests now pass.
13
+
-**BUG-A — `dataverse_merge_records` missing `@odata.type`**: The `updateContent` payload was missing the mandatory `@odata.type` annotation (`application/json;type=entry`), causing the Merge action to reject non-empty update bodies. `@odata.type` is now injected automatically before the OData POST.
14
+
-**BUG-024 — `dataverse_create_relationship` lookup prefix**: The auto-generated lookup column name (`referencingEntity + "id"`) incorrectly reused the referencing entity schema name without deriving its publisher prefix. The prefix is now extracted directly from `referencingEntity` (first segment before `_`). Example: `account → new_testcr01` now correctly produces `new_accountid`.
15
+
-**BUG-B — `dataverse_merge_records` custom entity error**: Merging custom entities returned an opaque OData stack trace. The tool now catches the unsupported-entity error and returns a clear, actionable message explaining that `Merge` is restricted to OOB entity types (Account, Contact, Lead, Incident).
16
+
17
+
---
18
+
19
+
## [0.7.0] — 2026-04-12
20
+
21
+
### Added
22
+
23
+
-**`dataverse_create_table`** — Create a new custom entity (table) in Dataverse by POSTing to `/EntityDefinitions`. Accepts schema name, display names, ownership type (`UserOwned` / `OrganizationOwned`), notes, activities, audit flags, and primary name column config. Returns the new `metadataId`.
24
+
-**`dataverse_create_relationship`** — Create a One-to-Many or Many-to-Many relationship via `/RelationshipDefinitions`. Supports cascade delete configuration (1:N) and custom intersect entity names (N:N). Returns the new `metadataId`.
25
+
-**`dataverse_check_record_access`** — Check which access rights a user or team holds on a specific record using the `RetrievePrincipalAccess` OData function. Returns parsed rights list (`ReadAccess`, `WriteAccess`, etc.).
26
+
-**`dataverse_grant_access`** — Grant record-level sharing to a user or team via the `GrantAccess` Dataverse action. Supports all standard AccessMask rights.
27
+
-**`dataverse_revoke_access`** — Revoke all shared access from a user or team via the `RevokeAccess` Dataverse action.
28
+
-**`dataverse_merge_records`** — Merge two records of the same type via the `Merge` Dataverse action. The subordinate is deactivated and its data carried over to the target. Requires `confirm: true` to prevent accidental execution.
29
+
30
+
### Internal
31
+
32
+
-**`src/tools/schema.tools.ts`** — New module with `schemaTools` array and `handleSchemaTool` dispatcher.
33
+
-**`src/tools/record-access.tools.ts`** — New module with `recordAccessTools` array and `handleRecordAccessTool` dispatcher.
-**MCP Prompts** — 5 pre-built workflow prompts exposed via the MCP `prompts/list` + `prompts/get` protocol endpoints. Clients that support MCP Prompts (Claude, Copilot) can invoke them as slash commands or one-click workflow starters:
-`data-quality-check` — Data quality analysis for a table (required arg: `tableName`, optional: `sampleSize`): null rates, duplicates, stale records, referential integrity.
51
+
-`schema-review` — Expert schema review for a table (required arg: `tableName`): columns, naming conventions, relationships, alternate keys, views.
52
+
-`security-audit` — Security model audit: users, roles, over-privileged accounts, teams, business unit hierarchy.
-**`prompts: {}` capability** — `server.ts` now advertises prompt support in the MCP server capabilities block.
55
+
56
+
### Internal
57
+
58
+
-**`src/prompts/prompt-provider.ts`** — Prompt catalogue (`PROMPTS` array) + `listPrompts()` / `getPrompt(name, args)` public API. Each builder function renders the step-by-step prompt text with the exact tool names the AI should call.
59
+
-**`tests/unit/prompt-provider.test.ts`** — 28 unit tests covering: prompt count, argument definitions, error handling (unknown name, missing required arg), tool name references per prompt, and argument interpolation.
0 commit comments