Skip to content

[BUG] MCP array parameters still double-stringified in Notion tool calls (regression from #3023) #25475

@RMANOV

Description

@RMANOV

Description

Issue #3023 (closed July 2025, fixed in v1.0.53) addressed double-stringification of parent object parameters in Notion-MCP tool calls. However, the same serialization bug persists for array parameters, specifically the children parameter in API-patch-block-children.

Steps to Reproduce

  1. Configure @notionhq/notion-mcp-server v2.1.0 in Claude Code (local stdio)
  2. Create a Notion page (via curl or any method)
  3. Use Claude Code to call mcp__notion__API-patch-block-children with:
{
  "block_id": "<page_id>",
  "children": [
    {"type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "Hello"}}]}}
  ]
}

Expected Behavior

Notion API receives children as a JSON array and creates the blocks.

Actual Behavior

Notion API receives children as a string (JSON-stringified array):

body.children should be an array, instead was "[{\"type\":\"paragraph\",...".

Environment

  • Claude Code: v2.1.34
  • OS: Windows 11 Pro (10.0.26200)
  • @notionhq/notion-mcp-server: v2.1.0
  • Notion API version: 2025-09-03
  • Transport: stdio (local, not remote/web connector)

Analysis

The fix from #3023 appears to have addressed object-type parameters (like parent) but not array-type parameters (like children). The MCP transport layer still stringifies arrays before passing them to the server.

Pattern observed:

  • Simple objects (filter: {property: "object", value: "data_source"}) → WORKS
  • Flat nested objects (properties: {Status: {status: {name: "Done"}}}) → WORKS
  • Deep nested objects (parent: {database_id: "..."}) → Previously BROKEN, supposedly fixed
  • Arrays of objects (children: [{type: "paragraph", ...}]) → STILL BROKEN

Workaround

Bypass MCP and call the Notion API directly via HTTP (Python urllib.request, curl, etc.).

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingplatform:windowsIssue specifically occurs on Windows

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions