Skip to content

Commit 1ebf775

Browse files
author
Dev Agent Amelia
committed
feat: complete v0.4 remaining items — camelCase params, errorCategory, search error detection + audit fixes
- Rename annotation input params to camelCase (noteText/fileName/mimeType/documentBody) - formatPrerequisiteError now includes errorCategory inferred from prerequisite.type - delete_attribute and update_entity error catches include errorCategory: SCHEMA_MISMATCH - dataverse_search: comprehensive regex for disabled-search detection (7 patterns) - Fix search error code: 0x87300005 (incorrect) -> 0x80048D0B (documented Dataverse code) - Upgrade search endpoint from /api/search/v1.0/query to v2.0 (current API) - Roadmap: mark all 3 v0.4 Schema Consistency items as Done - Bump version to 0.4.2
1 parent 086e97a commit 1ebf775

10 files changed

Lines changed: 353 additions & 64 deletions

CAPABILITIES.md

Lines changed: 264 additions & 9 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) — [Semantic V
55

66
---
77

8+
## [0.4.2] — 2026-03-07
9+
10+
### Changed
11+
12+
- **Uniform camelCase parameter names in `dataverse_create_annotation`**: `notetext``noteText`, `filename``fileName`, `mimetype``mimeType`, `documentbody``documentBody`. Dataverse wire field names in the POST body are unchanged.
13+
- **`errorCategory` in all structured error responses**: `formatPrerequisiteError` now automatically infers and includes `errorCategory` (`ENV_LIMITATION` for `feature_disabled`, `PERMISSIONS` for `permission_required`, `SCHEMA_MISMATCH` for `schema_missing`). `dataverse_delete_attribute` (error codes `0x80048405`, `HAS_DEPENDENCIES`) and `dataverse_update_entity` (`0x80060888`) also include `errorCategory: "SCHEMA_MISMATCH"` in their error payloads.
14+
- **`dataverse_search` expanded error detection**: The Relevance Search disabled check now uses a comprehensive regex covering HTTP 403/404/400, `0x80048D0B` (official Dataverse error code for disabled search), `search disabled`, `search not configured`, and `search unavailable` messages — up from 2 patterns to 7.
15+
- **Search API upgraded to v2.0**: The Dataverse search endpoint is now `/api/search/v2.0/query` (was `v1.0`, which is legacy/deprecated).
16+
17+
---
18+
819
## [0.4.1] — 2026-03-06
920

1021
### Fixed
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dataverse-client-advanced-H5AJR2BO.js

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import{b as a}from"./chunk-MPWVUZBX.js";export{a as DataverseAdvancedClient};

dist/doctor.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/server.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/capabilities.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ permalink: /capabilities
77

88
# Full Capabilities Reference
99

10-
> **Version**: 0.3.8 | **API Version**: Dataverse Web API v9.2 | **Transport**: stdio · HTTP/SSE
10+
> **Version**: 0.4.0 | **API Version**: Dataverse Web API v9.2 | **Transport**: stdio · HTTP/SSE
1111
12-
63 tools across 24 categories for full Dataverse lifecycle management.
12+
67 tools across 25 categories for full Dataverse lifecycle management.
1313

1414
For detailed input/output examples, see the [Use Cases]({{ site.baseurl }}/use-cases) section.
1515

@@ -43,7 +43,8 @@ For detailed input/output examples, see the [Use Cases]({{ site.baseurl }}/use-c
4343
| 22 | **Org** | 2 | `list_business_units`, `list_teams` |
4444
| 23 | **Workflows** | 2 | `list_workflows`, `get_workflow` |
4545
| 24 | **Assistance** | 4 | `suggest_tools`, `list_guides`, `get_guide`, `list_connection_references` |
46-
| | **Total** | **63** | |
46+
| 25 | **Attributes** | 4 | `create_attribute`, `update_attribute`, `delete_attribute`, `create_lookup_attribute` |
47+
| | **Total** | **67** | |
4748

4849
All tool names are prefixed with `dataverse_` (e.g., `dataverse_query`, `dataverse_create`).
4950

@@ -52,7 +53,7 @@ All tool names are prefixed with `dataverse_` (e.g., `dataverse_query`, `dataver
5253
## Architecture Overview
5354

5455
```
55-
MCP Dataverse Server (63 tools · 24 categories)
56+
MCP Dataverse Server (67 tools · 25 categories)
5657
├── 🔑 Auth (1)
5758
├── 📋 Metadata (8)
5859
├── 🔍 Query (3)
@@ -76,7 +77,8 @@ MCP Dataverse Server (63 tools · 24 categories)
7677
├── 📁 Files (2)
7778
├── 🏢 Org (2)
7879
├── ⚙️ Workflows (2)
79-
└── 🤖 Assistance (4)
80+
├── 🤖 Assistance (4)
81+
└── 🏗️ Attributes (4)
8082
```
8183

8284
All tool handlers validate inputs with **Zod** before calling the Dataverse Web API. Auth tokens are cached and refreshed proactively; transient errors (429, 503, 504) are retried with exponential backoff.

0 commit comments

Comments
 (0)