MCP server for interacting with Notion API based on Node
16 tools with complete JSON Schema input definitions and descriptions present for all tools. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool or dependencies between them. Parameter descriptions are minimal (avg ~40 chars vs baseline 72). No output schemas documented. Error handling absent. Tool names follow verb_noun convention well (retrieve_, create_, update_, delete_, append_, query_). Missing: actionable error messages, recovery guidance, parameter constraints (enums for sort direction exist but most params lack validation hints), and composition guidance for multi-step workflows.
Append block children to a block
Create a comment on a page or discussion
Create a new database
Create a new item in a database
Delete a block by ID
List all users
Query a database with filters and sorting
Retrieve a block by ID
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does retrieve_page return page_id for use in update_page_properties?). Breaks tool composition.
Descriptions are generic and lack LLM-optimized guidance. 'Retrieve a block by ID' (28 chars) does not explain WHEN to use this vs retrieve_block_children, or what the response contains. Baseline is 194 chars; these average ~45 chars.
Destructive operations (delete_block) lack confirmation or dry-run support. No error guidance on recovery. Agents can delete blocks without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Retrieve children blocks of a block
Retrieve comments on a block
Retrieve a database by ID
Retrieve a page by ID
Retrieve a user by ID
Search for pages and databases
Update a database
Update properties of a page
Parameter descriptions are minimal. 'An array of block objects to append as children' (52 chars) does not specify the structure of block objects, required fields, or valid types. LLMs must guess the schema.
No error handling or recovery guidance. Tools return raw API responses without actionable error messages. If a block_id is invalid, the LLM receives a generic error with no hint to call search() or validate the ID format.