[BUG] Claude Desktop 1.1.3189 (Cowork) serializes MCP object parameters as strings, breaking Notion MCP writes
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?
After updating Claude Desktop to 1.1.3189, all Notion MCP tools that accept JSON object parameters fail with ZodError "Expected object, received string". Tools with only flat string/array parameters continue to work fine.
Affected tools:
notion-create-pages—parentparameter failsnotion-move-pages—new_parentparameter failsnotion-update-page—dataparameter fails
Working tools (flat parameters only):notion-fetch, notion-search, notion-get-comments, notion-create-comment, notion-get-users, notion-get-teams, notion-query-database-view
What Should Happen?
Object parameters should be passed as parsed JSON objects to MCP tools, not as serialized JSON strings. All three tools worked correctly in a Cowork session approximately 24 hours before the update.
Error Messages/Logs
MCP error -32602: Invalid arguments for tool notion-create-pages: [
{
"code": "invalid_union",
"unionErrors": [
{
"issues": [
{
"code": "invalid_type",
"expected": "object",
"received": "string",
"path": ["parent"],
"message": "Expected object, received string"
}
]
}
],
"path": ["parent"],
"message": "Invalid input"
}
]
Steps to Reproduce
- Open Cowork mode in Claude Desktop 1.1.3189
- Connect the built-in Notion MCP connector (remote MCP)
- Ask Claude to create a page in a Notion database — this triggers
notion-create-pageswith aparentobject parameter like{"data_source_id": "some-uuid"} - Observe ZodError: "Expected object, received string" on the
parentparameter - Repeat with
notion-update-page(data parameter) ornotion-move-pages(new_parent parameter) — same error - Verify that read-only tools (
notion-fetch,notion-search) still work — they do, because they use flat string parameters
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown exact version — writes were working in a Cowork session on Feb 15, 2026 (one day before updating to 1.1.3189)
Claude Code Version
Claude Desktop 1.1.3189 (1b7b58), build 2026-02-14T00:09:46.000Z (Cowork mode, not CLI)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Related Notion MCP issue: https://github.com/makenotion/notion-mcp-server/issues/208
Multiple users report the same symptoms there, including with non-Claude MCP clients.
The pattern is consistent: every MCP tool parameter typed as a JSON object gets serialized as a string before reaching the MCP server. Parameters typed as plain strings or arrays work fine. This suggests the serialization issue is in the MCP client layer, not the server.
This issue has 13 comments on GitHub. Read the full discussion on GitHub ↗