[BUG] Claude Desktop 1.1.3189 (Cowork) serializes MCP object parameters as strings, breaking Notion MCP writes

Open 💬 13 comments Opened Feb 16, 2026 by iNNPL

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-pagesparent parameter fails
  • notion-move-pagesnew_parent parameter fails
  • notion-update-pagedata parameter 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

  1. Open Cowork mode in Claude Desktop 1.1.3189
  2. Connect the built-in Notion MCP connector (remote MCP)
  3. Ask Claude to create a page in a Notion database — this triggers notion-create-pages with a parent object parameter like {"data_source_id": "some-uuid"}
  4. Observe ZodError: "Expected object, received string" on the parent parameter
  5. Repeat with notion-update-page (data parameter) or notion-move-pages (new_parent parameter) — same error
  6. 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.

View original on GitHub ↗

This issue has 13 comments on GitHub. Read the full discussion on GitHub ↗