[BUG] Dataverse MCP connector — all write operations fail with JObject does not match expected type 'String' for item parameter
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
All write operations through the Dataverse Tracking MCP connector (create_record, update_record) fail with the same error on every attempt, regardless of payload. Read operations (read_query, describe_table, list_tables) work normally. The failure happens before the request reaches Dataverse — confirmed by an empty plugin trace log — which points to a payload-serialization defect in the connector's write path: the "item" parameter is being sent as a JObject when the Dataverse API expects a String. Content, length, and formatting of the data were all ruled out as causes (plain strings, braces, base64, and full JSON all failed identically). Notably, a couple of writes succeeded early in the session, then all subsequent writes failed with no configuration change, suggesting a connector/session-state or platform-side issue.
What Should Happen?
The "item" parameter should be serialized correctly and accepted by the Dataverse Web API, creating or updating the row. A create_record on cr9bb_dailyreport with valid field values should return the new record's GUID, the same way read operations succeed against the same environment and tables.
Error Messages/Logs
Error returned on every write attempt:
Input field type 'JObject' does not match expected type 'String' for field 'item'
Plugin Trace Log: enabled and set to "All," then a fresh failing write was attempted. No Create/Update trace entry appeared for the target table (only unrelated msdyn_FormPredictAgent Microsoft AI plugin entries), confirming the request never reached Dataverse server-side processing.
Dataverse correlation IDs (for Microsoft cross-reference):
8247d6dc-bfd4-4b00-a814-e6473df8374d
2f3c87b8-4edd-4b7b-805c-46c1beefa9f7
b18e5d3d-cfbc-45bc-8118-1bbcb40f03ad
ffd287f6-fc1f-4362-967e-7514d13ba2f8
Anthropic request IDs (for connector-side investigation):
req_011Cbr72LA5mSNyhLTDaGxfT
req_011Cbr5ykBznEmHxyrgtpA9i
req_011Cbr4uf6vsLvKtwMWrXund
Steps to Reproduce
Steps to reproduce
- Connect the Dataverse MCP connector (https://tracking-srct.crm.dynamics.com/api/mcp) to the environment.
- Confirm reads work: run a read_query (e.g. SELECT TOP 1 cr9bb_reportname FROM cr9bb_dailyreport) — succeeds.
- Attempt a write: create_record on cr9bb_dailyreport with {"cr9bb_reportname": "TEST_nameonly_create"}.
- Observe the error: Input field type 'JObject' does not match expected type 'String' for field 'item'.
- Retry with different payloads (plain string, braces, base64, full JSON) and with update_record — all fail identically.
- (Optional confirmation) Enable Plugin Trace Log = All, repeat step 3, check the trace log table — no entry for the attempted write appears.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.146
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗