name: notion description: Read Notion pages and databases using MCP tools. Use when looking up Notion content, reading pages, or querying databases.
Notion (Read-Only)
Read Notion pages and databases via MCP tools. This skill covers reading operations only.
Quick Reference: MCP Tools
| Tool | Use For |
|---|---|
mcp__notion__notion-fetch | Read page content as Notion-flavored markdown |
ReadMcpResourceTool with notion://docs/enhanced-markdown-spec | Get the full markdown spec (useful for understanding page structure) |
Fallback: Keystone MCP Tools
If mcp__notion__notion-fetch is not available (e.g., in environments using Keystone), use these tools instead:
| Tool | Use For |
|---|---|
mcp__plugin_thanx_keystone__notion_get_page | Read page metadata (title, properties, dates) |
mcp__plugin_thanx_keystone__notion_get_page_content | Read page blocks (raw Notion API JSON) |
mcp__plugin_thanx_keystone__notion_search | Search for pages by title |
mcp__plugin_thanx_keystone__notion_query_database | Query a database with filters |
mcp__plugin_thanx_keystone__notion_get_database | Get database schema and metadata |
The blocks API returns raw JSON. To extract readable text, parse each block's rich_text[].plain_text fields. Use ToolSearch to discover and load these tools before calling them.
Instructions
You are helping read Notion data. Use the MCP tools above for all operations.
Reading a Page
mcp__notion__notion-fetch with the page URL or ID
The tool returns Notion-flavored markdown. Key things to know about the format:
- Code blocks have language tags (e.g.,
```ruby) - Toggle headings use
{toggle="true"}attribute - Toggle children are tab-indented
- Tables use HTML
<table>syntax - Dot-notation in text may appear auto-linked (e.g.,
[d.date](http://d.date))
Common Tasks
Read a specific page
Use mcp__notion__notion-fetch with the page URL.
Browse database contents
Use mcp__notion__notion-fetch on the database URL to see its schema and entries.
Diagnosing Page Issues
If a page has mangled content in the markdown output:
- Code blocks whose content starts with heading markers (
#,##) - Code blocks containing
<tableor---dividers - Wrong language tags on code blocks
These indicate sections that were absorbed into code blocks during a bad edit.
Capabilities
- Page reading: Full page content as structured markdown
- Database browsing: View database schemas and entries
Large Page Handling
Notion pages can return very large responses (100K+ characters) that exceed token limits. When this happens:
- The content may be saved to a temp file automatically
- Use
python3 -corjqto extract block text rather than reading raw JSON directly - For Keystone blocks JSON, extract text with:
jq -r '.. | .rich_text? // empty | .[].plain_text' < temp_file.json - Consider requesting specific sections rather than the full page when possible
Limitations
- Read-only — Cannot create, update, or delete pages
- Page content is returned as Notion-flavored markdown, not raw JSON (except Keystone fallback which returns raw blocks)