MCP server for Cursor and Claude that enables interaction with Notion API for reading, writing, and querying pages and databases
Notion MCP server has significant definition quality gaps. Tool descriptions are present but minimal (10-50 chars, well below the 50-200 char LLM-optimized baseline). Input schemas are visible in code but lack formal JSON Schema structure with explicit type declarations and constraints. Parameters have descriptions but many are generic ('선택사항' = optional, no guidance on format/range). No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. YouTube script tools are domain-misaligned (not Notion-related). Composition issues: create_page and update_page both modify content but lack idempotency guarantees or confirmation patterns for destructive operations.
데이터베이스에 새로운 항목을 생성합니다
새로운 Notion 페이지를 생성합니다
키워드와 대본 내용을 받아서 유튜브 쇼츠 대본 파일을 생성합니다
특정 유튜브 쇼츠 대본 파일을 삭제합니다
Notion 페이지의 정보를 가져옵니다
Notion 페이지의 블록 내용을 가져옵니다
특정 유튜브 쇼츠 대본 파일의 내용을 반환합니다
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing unstructured parsing and breaking downstream tool chaining.
Descriptions are too short (10-50 chars vs 50-200 char baseline). Lack WHEN to use, prerequisites, and state-modification warnings. E.g., 'Notion 페이지의 정보를 가져옵니다' (22 chars) does not explain what 'information' includes or how it differs from get_page_content.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
생성된 유튜브 쇼츠 대본 파일 목록을 반환합니다
Notion 데이터베이스를 쿼리합니다
Notion에서 페이지나 데이터베이스를 검색합니다
기존 Notion 페이지를 업데이트합니다
No error handling or recovery guidance. Tools return strings (likely JSON) but no documentation of error format, retryability, or what the LLM should do on failure. E.g., delete_youtube_script is destructive but has no confirmation pattern or rollback guidance.
Parameter constraints missing. filter_type in search_notion should be an enum (page|database), not a free-form string. properties in create_database_entry is a dict with no schema, LLM cannot know what keys/types are valid.
YouTube script tools (create_youtube_script, list_youtube_scripts, get_youtube_script, delete_youtube_script) are out of domain, they manage local files, not Notion. This violates single-responsibility principle and confuses the tool's purpose.