Notion MCP Tool Failures: validation_error on Property Keys & API-patch-page Schema Mismatch

Subject: Notion MCP Tool Failures: validation_error on Property Keys & API-patch-page Schema Mismatch

Environment:

  • Model: Gemini (via IDE extension/MCP Client)

  • MCP Server: notionMCP / notion_bSSp

  • Integration: Notion API

Description

I am encountering persistent failures when attempting to create or update pages within a Notion Database using the Gemini API via the Notion MCP server.

The model appears to struggle with the JSON schema required for Notion database properties, specifically regarding key formatting and tool definition rigidity. Despite multiple attempts and workarounds (creating a private page then moving it), the model could not successfully populate the database properties.

Key Issues Identified

1. Model Hallucinating Quotes in JSON Keys (Property Name Mismatch)

When using notion-create-pages, the model repeatedly formatted JSON keys with embedded single quotes for properties containing spaces. The Notion API interpreted these quotes literally as part of the property name, resulting in validation_error.

  • Model Attempt: "'Content Stage'": "Planning"

  • Expected Format: "Content Stage": "Planning"

  • API Error: Property "'Content Stage'" not found (The API looked for a column literally named 'Content Stage' including the single quotes).

2. API-patch-page Tool Schema is Too Strict

When attempting a workaround (updating a page after creation), the API-patch-page tool failed because the underlying MCP tool definition appears to mark title as a required field, even for update (PATCH) operations where only custom properties (like status or priority) are being modified.

  • Error: params/properties must have required property 'title'

Logs & Reproduction

Attempt 1: Create Page in Database

Function Call:

{
  "name": "notion-create-pages",
  "args": {
    "pages": [
      {
        "properties": {
          "'Content Stage'": "Planning",  
          "'Market Focus'": "Spanish Market",
          "Priority": "High"
        },
        "parent": { "database_id": "[REDACTED_DB_UUID]" }
      }
    ]
  }
}


API Response:

{
  "code": "validation_error",
  "status": 400,
  "message": "Property \"'Content Stage'\" not found"
}


Attempt 2: Update Properties (Workaround)

Function Call:

{
  "name": "API-patch-page",
  "args": {
    "page_id": "[REDACTED_PAGE_UUID]",
    "properties": {
      "Priority": { "select": { "name": "High" } }
    }
  }
}


Tool Error:

params/properties must have required property 'title'


Request

  1. Model Tuning: Can the model be tuned to handle Notion property keys with spaces correctly (i.e., not wrapping the key string in single quotes inside the JSON object)?

  2. MCP Server Definition: Please review the API-patch-page (and notion-update-page) schemas in the MCP server. The title property should likely be optional for PATCH requests to allow for updating metadata/status columns without restating the document title.