Model Context Protocol (MCP) server for Notion API integration
Notion MCP has critical definition gaps. All 5 tools lack parameter descriptions, the rubric requires every parameter to have a description explaining what it controls. Tool descriptions exist but are minimal (10-30 chars), below the 50-200 char baseline for LLM-optimized descriptions. No output schemas are documented. Input schemas are present with types but lack the descriptive context LLMs need. Error handling is absent, tools return generic dicts without recovery guidance. The server exposes a hardcoded API token in source code (ARTICLE_COLLATION_TOKEN), violating secret-injection patterns. No tool annotations (readOnlyHint, destructiveHint) despite having both read and write operations.
对数据库中所有页面执行URL字段填充
将页面中其他 URL 字段填入目标字段
列出数据库中的所有页面ID
查询页面中所有子数据库的标题和ID
更新页面标题(Name字段)
All parameters lack descriptions. Rubric requires every parameter to have a description explaining what it controls. LLMs cannot infer parameter meaning from names alone.
Hardcoded API token (ARTICLE_COLLATION_TOKEN) exposed in source code. Credentials must never appear in code or tool parameters; use server-side secret injection via environment variables.
No output schemas documented. Tools return dicts without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract data reliably.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Tool descriptions are 10-30 characters (below 50-200 char baseline). Descriptions lack WHAT the tool does, WHEN to use it, and prerequisites. Example: 'update_page_title' description is only 18 chars.
No error handling or recovery guidance. Tools return generic error dicts without actionable next steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.