13 tools with complete schemas and descriptions, but quality is uneven. All tools have input schemas with proper types and required fields. Descriptions are present but often generic (avg ~80 chars, below the 194-char baseline). Parameter descriptions are minimal, many lack context on format, constraints, or when to use them. No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Missing idempotency hints for reversible operations (archive/restore). No tool annotations (readOnlyHint, destructiveHint). Composition is good: tools are single-responsibility and chainable (e.g., get_page → update_page). Security: no secrets exposed as params (good). Overall: functional but below production baseline.
Append new content blocks to a page or block. Use this to add paragraphs, headings, lists, code blocks, and more.
Archive (soft-delete) a Notion page. The page can be restored later.
Create a new Notion database as a child of an existing page. Define the property schema (columns) at creation time.
Create a new Notion page inside a database or as a sub-page of another page. For database pages, properties must match the database schema.
Delete a block from a Notion page.
Retrieve a specific block by its ID.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., page_id from create_page response). Baseline: 100% of A+ tools document return types.
Parameter descriptions lack format/constraint details. E.g., 'page_id' says 'Page UUID (with or without dashes)' but doesn't explain UUID format or validation. 'page_size' lacks min/max bounds. LLMs cannot infer valid ranges.
No error handling guidance. Tools like delete_block and archive_page have no recovery hints. LLMs cannot distinguish retryable errors from fatal ones or know what to do on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
List the direct children of a block or page. Use this to read the content of a Notion page.
Retrieve a Notion database schema and metadata by its ID.
Retrieve a Notion page by its ID, including all properties.
Retrieve a specific property value from a Notion page.
Restore a previously archived Notion page.
Update the content of an existing block.
Update a Notion page's properties, icon, or cover image.
Missing tool annotations. No readOnlyHint, destructiveHint, or idempotentHint. Clients cannot infer which tools are safe to retry (archive_page is reversible; delete_block is not).
Descriptions are generic and brief (avg ~80 chars vs 194-char baseline). E.g., 'Archive (soft-delete) a Notion page' lacks context on when to use it vs delete_block, or what happens to child blocks.