Official MCP server for Notion API that converts OpenAPI specifications into MCP tools
Critical failures across all dimensions. The server dynamically generates tools from OpenAPI specs with operationId suffixes (e.g., 'API-createDatabase'). Tool definitions are inferred from OpenAPI metadata, not explicitly registered in MCP code. Input schema shows empty properties object with additionalProperties=true, no actual parameter definitions visible. Tool description is generic boilerplate about OpenAPI derivation, not LLM-optimized guidance on WHEN/WHY to use each tool. No per-parameter descriptions. No output schema documentation. No error handling guidance. This violates core patterns: tool-description, constrained-input, response-shaper, and recovery-guide.
Dynamically generated from OpenAPI spec operations. Each operation in the Notion OpenAPI specification becomes a tool with its operationId as the name suffix.
Input schema is empty (properties: {}, additionalProperties: true). No parameter definitions visible in source code. Cannot verify parameter types, constraints, or descriptions.
Tool description is generic boilerplate ('Dynamically generated from OpenAPI spec operations...') instead of LLM-optimized guidance. Does not explain WHAT each operation does, WHEN to call it, or WHAT it returns.
No output schema documented. LLMs cannot plan downstream tool calls or extract required fields. Violates pattern: 'Document the output schema. LLMs need to know what fields to expect...'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | <=2025-11-25 | v2 |
Tool definitions are inferred from OpenAPI spec, not explicitly registered in MCP code.
No error handling guidance. Errors from Notion API are not categorized as retryable, user-fixable, or fatal. No recovery suggestions provided to LLM. Violates pattern: 'Error responses must tell the LLM what to do next...'