Same door for humans and AI. No gatekeeper.Register →
Explorer/MCP/smithery/notion

Notion

REMOTE
smithery/notion

Search across your Notion workspace and connected sources to quickly find pages, databases, and users. View full page and database details for deeper context. Create and update pages, manage databases, move or duplicate content, and add comments to keep work organized.

○ Remote (HTTP) Server
This server runs on the internet and communicates over HTTP. It does not have direct access to your local filesystem or environment variables.
Tools
12
Indexed
236d ago
Transport
Remote / HTTP
Liveness
● Live
Uptime
100%based on 24 checks
Avg response
217ms
← older · newer →
Security Scan
Security scan pending — this server has not yet been analyzed.
Risk Surface
Risk surface analysis pending — tool annotation scanning is coming soon.
Publisher Verification
Not yet verified by the Official MCP Registry.
Endpoint
https://notion.run.tools
Tools (12)
notion-search
Perform a search over: - "internal": Semantic search over Notion workspace and connected sources (Slack, Google Drive, Github, Jira, Microsoft Teams, Sharepoint, OneDrive, Linear). Supports filtering by creation date and creator. - "user": Search for users by name or email. Auto-selects AI search (with connected sources) or workspace search (workspace-only, faster) based on user's access to Notion AI. Use content_search_mode to override. Use "fetch" tool for full page/database contents after getting search results. To search within a database: First fetch the database to get the data source URL (collection://...) from <data-source url="..."> tags, then use that as data_source_url. For multi-source databases, match by view ID (?v=...) in URL or search all sources separately. Don't combine database URL/ID with collection:// prefix for data_source_url. Don't use database URL as page_url. <example description="Search with date range filter (only documents created in 2024)"> { "query": "quarterly revenue report", "query_type": "internal", "filters": { "created_date_range": { "start_date": "2024-01-01", "end_date": "2025-01-01" } } } </example> <example description="Teamspace + creator filter"> {"query": "project updates", "query_type": "internal", "teamspace_id": "f336d0bc-b841-465b-8045-024475c079dd", "filters": {"created_by_user_ids": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}} </example> <example description="Database with date + creator filters"> {"query": "design review", "data_source_url": "collection://f336d0bc-b841-465b-8045-024475c079dd", "filters": {"created_date_range": {"start_date": "2024-10-01"}, "created_by_user_ids": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901"]}} </example> <example description="User search"> {"query": "[email protected]", "query_type": "user"} </example>
notion-fetch
Retrieves details about a Notion entity (page or database) by URL or ID. Provide URL or ID in `id` parameter. Make multiple calls to fetch multiple entities. Pages use enhanced Markdown format. For the complete specification, fetch the MCP resource at `notion://docs/enhanced-markdown-spec`. Databases return all data sources (collections). Each data source has a unique ID shown in `<data-source url="collection://...">` tags. Use this data source ID with update_data_source and query_data_sources tools. Multi-source databases (e.g., with linked sources) will show multiple data sources. Set `include_discussions` to true to see discussion counts and inline discussion markers that correlate with the `get_comments` tool. The page output will include a `<page-discussions>` summary tag with discussion count, preview snippets, and `discussion://` URLs that match the discussion IDs returned by `get_comments`. <example>{"id": "https://notion.so/workspace/Page-a1b2c3d4e5f67890"}</example> <example>{"id": "12345678-90ab-cdef-1234-567890abcdef"}</example> <example>{"id": "https://myspace.notion.site/Page-Title-abc123def456"}</example> <example>{"id": "page-uuid", "include_discussions": true}</example>
notion-create-pages
## Overview Creates one or more Notion pages, with the specified properties and content. ## Parent All pages created with a single call to this tool will have the same parent. The parent can be a Notion page ("page_id") or data source ("data_source_id"). If the parent is omitted, the pages are created as standalone, workspace-level private pages, and the person that created them can organize them later as they see fit. If you have a database URL, ALWAYS pass it to the "fetch" tool first to get the schema and URLs of each data source under the database. You can't use the "database_id" parent type if the database has more than one data source, so you'll need to identify which "data_source_id" to use based on the situation and the results from the fetch tool (data source URLs look like collection://<data_source_id>). If you know the pages should be created under a data source, do NOT use the database ID or URL under the "page_id" parameter; "page_id" is only for regular, non-database pages. ## Content Notion page content is a string in Notion-flavored Markdown format. Don't include the page title at the top of the page's content. Only include it under "properties". **IMPORTANT**: For the complete Markdown specification, always first fetch the MCP resource at `notion://docs/enhanced-markdown-spec`. Do NOT guess or hallucinate Markdown syntax. This spec is also applicable to other tools like update-page and fetch. ## Properties Notion page properties are a JSON map of property names to SQLite values. When creating pages in a database: - Use the correct property names from the data source schema shown in the fetch tool results. - Always include a title property. Data sources always have exactly one title property, but it may not be named "title", so, again, rely on the fetched data source schema. For pages outside of a database: - The only allowed property is "title", which is the title of the page in inline markdown format. Always include a "title" property. **IMPORTANT**: Some property types require expanded formats: - Date properties: Split into "date:{property}:start", "date:{property}:end" (optional), and "date:{property}:is_datetime" (0 or 1) - Place properties: Split into "place:{property}:name", "place:{property}:address", "place:{property}:latitude", "place:{property}:longitude", and "place:{property}:google_place_id" (optional) - Number properties: Use JavaScript numbers (not strings) - Checkbox properties: Use "__YES__" for checked, "__NO__" for unchecked **Special property naming**: Properties named "id" or "url" (case insensitive) must be prefixed with "userDefined:" (e.g., "userDefined:URL", "userDefined:id") ## Examples <example description="Create a standalone page with a title and content"> { "pages": [ { "properties": {"title": "Page title"}, "content": "# Section 1 {color="blue"} Section 1 content ▶ Toggle block Hidden content inside toggle" } ] } </example> <example description="Create a page under a database's data source"> { "parent": {"data_source_id": "f336d0bc-b841-465b-8045-024475c079dd"}, "pages": [ { "properties": { "Task Name": "Task 123", "Status": "In Progress", "Priority": 5, "Is Complete": "__YES__", "date:Due Date:start": "2024-12-25", "date:Due Date:is_datetime": 0 } } ] } </example> <example description="Create a page with an existing page as a parent"> { "parent": {"page_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "pages": [ { "properties": {"title": "Page title"}, "content": "# Section 1 Section 1 content # Section 2 Section 2 content" } ] } </example>
notion-update-page
## Overview Update a Notion page's properties or content. ## Properties Notion page properties are a JSON map of property names to SQLite values. For pages in a database: - ALWAYS use the "fetch" tool first to get the data source schema and the exact property names. - Provide a non-null value to update a property's value. - Omitted properties are left unchanged. **IMPORTANT**: Some property types require expanded formats: - Date properties: Split into "date:{property}:start", "date:{property}:end" (optional), and "date:{property}:is_datetime" (0 or 1) - Place properties: Split into "place:{property}:name", "place:{property}:address", "place:{property}:latitude", "place:{property}:longitude", and "place:{property}:google_place_id" (optional) - Number properties: Use JavaScript numbers (not strings) - Checkbox properties: Use "__YES__" for checked, "__NO__" for unchecked **Special property naming**: Properties named "id" or "url" (case insensitive) must be prefixed with "userDefined:" (e.g., "userDefined:URL", "userDefined:id") For pages outside of a database: - The only allowed property is "title", which is the title of the page in inline markdown format. ## Content Notion page content is a string in Notion-flavored Markdown format. **IMPORTANT**: For the complete Markdown specification, first fetch the MCP resource at `notion://docs/enhanced-markdown-spec`. Do NOT guess or hallucinate Markdown syntax. Before updating a page's content with this tool, use the "fetch" tool first to get the existing content to find out the Markdown snippets to use in the "replace_content_range" or "insert_content_after" commands. ### Preserving Child Pages and Databases When using "replace_content" or "replace_content_range", the operation will check if any child pages or databases would be deleted. If so, it will fail with an error listing the affected items. To preserve child pages/databases, include them in new_str using `<page url="...">` or `<database url="...">` tags. Get the exact URLs from the "fetch" tool output. **CRITICAL**: To intentionally delete child content: if the call failed with validation and requires `allow_deleting_content` to be true, DO NOT automatically assume the content should be deleted. ALWAYS show the list of pages to be deleted and ask for user confirmation before proceeding. ## Examples <example description="Update page properties"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "update_properties", "properties": { "title": "New Page Title", "status": "In Progress", "priority": 5, "checkbox": "__YES__", "date:deadline:start": "2024-12-25", "date:deadline:is_datetime": 0, "place:office:name": "HQ", "place:office:latitude": 37.7749, "place:office:longitude": -122.4194 } } </example> <example description="Replace the entire content of a page"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "replace_content", "new_str": "# New Section Updated content goes here" } </example> <example description="Replace specific content in a page"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "replace_content_range", "selection_with_ellipsis": "# Old Section...end of section", "new_str": "# New Section Updated content goes here" } </example> <example description="Insert content after specific text"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "insert_content_after", "selection_with_ellipsis": "## Previous section...", "new_str": " ## New Section Content to insert goes here" } </example> **Note**: For selection_with_ellipsis, provide only the first ~10 characters, an ellipsis, and the last ~10 characters. Ensure the selection is unique; use longer snippets if needed to avoid ambiguity.
notion-move-pages
Move one or more Notion pages or databases to a new parent.
notion-duplicate-page
Duplicate a Notion page. The page must be within the current workspace, and you must have permission to access it. The duplication completes asynchronously, so do not rely on the new page identified by the returned ID or URL to be populated immediately. Let the user know that the duplication is in progress and that they can check back later using the 'fetch' tool or by clicking the returned URL and viewing it in the Notion app.
notion-create-database
Creates a new Notion database with the specified properties schema. If no title property provided, "Name" is auto-added. Returns Markdown with schema, SQLite definition, and data source ID in <data-source> tag for use with update_data_source and query_data_sources tools. Property types: title (required), rich_text, number, select, multi_select, date, people, checkbox, url, email, phone_number, formula, relation, rollup. <example description="Minimal">{"properties": {}}</example> <example description="Task DB">{"parent": {"page_id": "f336d0bc-b841-465b-8045-024475c079dd"}, "title": [{"text": {"content": "Tasks"}}], "properties": {"Status": {"type": "select", "select": {"options": [{"name": "To Do", "color": "red"}, {"name": "Done", "color": "green"}]}}, "Due Date": {"type": "date", "date": {}}}}</example>
notion-update-data-source
Update a Notion data source's properties, name, or other attributes. Returns Markdown showing updated structure and schema. Accepts a data source ID (collection ID from fetch response's <data-source> tag) or a single-source database ID. Multi-source databases require the specific data source ID. Property types: title (required), rich_text, number, select, multi_select, date, people, checkbox, url, email, phone_number, formula, relation, rollup, unique_id. Examples: (1) Update data source title: { "data_source_id": "f336d0bc-b841-465b-8045-024475c079dd", "title": [{"type": "text", "text": {"content": "Project Tracker 2024"}}] } (2) Add new properties: { "data_source_id": "f336d0bc-b841-465b-8045-024475c079dd", "properties": { "Priority": { "select": { "options": [ {"name": "High", "color": "red"}, {"name": "Medium", "color": "yellow"}, {"name": "Low", "color": "green"} ] } }, "Due Date": {"date": {}}, "Assigned To": {"people": {}} } } (3) Rename property (use property ID or current name): { "data_source_id": "f336d0bc-b841-465b-8045-024475c079dd", "properties": {"Status": {"name": "Project Status"}} } (4) Remove property (set to null): { "data_source_id": "f336d0bc-b841-465b-8045-024475c079dd", "properties": {"Old Property": null} } (5) Trash data source (confirm with user, requires Notion UI to undo): {"data_source_id": "f336d0bc-b841-465b-8045-024475c079dd", "in_trash": true} Notes: Cannot delete/create title properties. Max one unique_id property. Cannot update synced databases. Use "fetch" first to see current schema and get the data source ID from <data-source url="collection://..."> tags.
notion-create-comment
Add a comment to a page or specific content. Creates a new comment. Provide `page_id` to identify the page, then choose ONE targeting mode: - `page_id` alone: Page-level comment on the entire page - `page_id` + `selection_with_ellipsis`: Comment on specific block content - `discussion_id`: Reply to an existing discussion thread (page_id is still required) For content targeting, use `selection_with_ellipsis` with ~10 chars from start and end: "# Section Ti...tle content" <example description="Page-level comment"> {"page_id": "uuid", "rich_text": [{"text": {"content": "Comment"}}]} </example> <example description="Comment on specific content"> {"page_id": "uuid", "selection_with_ellipsis": "# Meeting No...es heading", "rich_text": [{"text": {"content": "Comment on this section"}}]} </example> <example description="Reply to discussion"> {"page_id": "uuid", "discussion_id": "discussion://pageId/blockId/discussionId", "rich_text": [{"text": {"content": "Reply"}}]} </example>
notion-get-comments
Get comments and discussions from a Notion page. Returns discussions with full comment content in XML format. By default, returns page-level discussions only. Tip: Use the `fetch` tool with `include_discussions: true` first to see where discussions are anchored in the page content, then use this tool to retrieve full discussion threads. The `discussion://` URLs in the fetch output match the discussion IDs returned here. Parameters: - `include_all_blocks`: Include discussions on child blocks (default: false) - `include_resolved`: Include resolved discussions (default: false) - `discussion_id`: Fetch a specific discussion by ID or URL <example>{"page_id": "page-uuid"}</example> <example>{"page_id": "page-uuid", "include_all_blocks": true}</example> <example>{"page_id": "page-uuid", "discussion_id": "discussion://pageId/blockId/discussionId"}</example>
notion-get-teams
Retrieves a list of teams (teamspaces) in the current workspace. Shows which teams exist, user membership status, IDs, names, and roles. Teams are returned split by membership status and limited to a maximum of 10 results. <examples> 1. List all teams (up to the limit of each type): {} 2. Search for teams by name: {"query": "engineering"} 3. Find a specific team: {"query": "Product Design"} </examples>
notion-get-users
Retrieves a list of users in the current workspace. Shows workspace members and guests with their IDs, names, emails (if available), and types (person or bot). Supports cursor-based pagination to iterate through all users in the workspace. <examples> 1. List all users (first page): {} 2. Search for users by name or email: {"query": "john"} 3. Get next page of results: {"start_cursor": "abc123"} 4. Set custom page size: {"page_size": 20} 5. Fetch a specific user by ID: {"user_id": "00000000-0000-4000-8000-000000000000"} 6. Fetch the current user: {"user_id": "self"} </examples>
Is this your server?
Create a free RNWY account to connect your on-chain identity to this server. MCP server claiming is coming — register now and you'll be first in line.
Create your account →
More from smithery
Octagon
AI agents for financial research. Query SEC filings, analyze company data, and retrieve market intelligence.
Jam
Capture and report bugs with automatic screen recordings and environment details. Create, view, and manage bug reports with full context.
Harvest
Log billable hours, manage projects, and send invoices. Track time across tasks, review team capacity, and generate expense reports.
X(Twitter) MCP Server
A server to create drafts of X(Twitter) posts, threads using LLMs and post directly from the chat.
Aiwyn Tax
Automate tax workflow tasks and manage client engagements. Track deadlines, organize documents, and handle billing for accounting firms.
Zoho mail
Zoho Mail is a secure and ad-free email hosting platform with collaboration tools, calendar integration, and extensive administrative controls
Similar servers
lanonasis-mcp
Manage long-term memory across projects with fast semantic search and retrieval. Create, update, and organize memories, then query them to ground your workflows with relevant context. Control API keys and configuration, monitor system status, and instantly search the LanOnasis docs when you need guidance.
suguvisa-mcp
日本の特定技能ビザ申請を自動化するMCPサーバー。申請種別判定、必要書類リスト、期限計算、データ検証に対応。 **日本の特定技能(SSW)ビザ申請業務を、AIチャットだけで完結させる業界唯一のMCPサーバー。** 行政書士・登録支援機関・受入れ機関が日常的に行うビザ申請業務——申請種別の判定、必要書類の洗い出し、期限管理、書類生成——を **18種のAIツール** で自動化。Claude、ChatGPT、Cursor、Windsurf 等のAIアシスタントに直接組み込んで使えます。 ### ✨ できること - 🔍 **申請パターンの自動判定** — 「技能実習2号→特定技能1号」のように現在と申請先のビザを伝えるだけで、正式な申請種別・使用様式・標準処理期間・試験免除条件を瞬時に特定 - 📋 **必要書類リストの自動生成** — 130以上の申請パターンに対応。「2年以内の同一機関申請で省略可」「登録支援機関への委託で不要」等の省略条件を自動適用 - ⏰ **期限計算** — 随時届出の14日ルール、更新申請の3ヶ月前開始日、通算在留5年上限チェック、認定証明書の有効期限を自動算出し、リスクレベルを色分け警告 - 📸 **在留カードOCR** — Google Vertex AI Document AIによる高精度読み取り。氏名・国籍・在留資格・期限・カード番号を構造化データに変換(画像は保存しません) - 📄 **オンライン申請CSV/Excel生成** — 入管オンライン申請システムに直接アップロード可能な形式で一括出力。公式.xlsmテンプレートへのマクロ非破壊データ注入にも対応 - 📝 **紙申請PDFマッピング** — 紙申請書の全フィールドにデータを自動マッピングし、完成度をパーセント表示 - 📊 **年次定期届出の自動生成** — 受入れ状況・活動状況・支援実施状況をCSV(オンライン用)とExcel(紙提出用)で同時出力 - 🤖 **自律型ワークフロー** — AIが対話で不足データを収集し、判定→検証→書類生成まで自動実行。途中で人間の確認を挟むHITLパターン対応 - ⚖️ **法改正の自動追跡** — 制度変更・運用要領の改定を自動的に把握し、申請への影響を通知 - 🔎 **法務文書のAI検索** — Vertex AI Searchで法務マニュアル・チェックリスト・テンプレートを自然言語検索 - 📈 **申請結果の統計分析** — 補正率・通過率を申請パターンごとに集計し、次回申請の改善提案を自動生成 - 🔒 **監査ログ** — 全操作をSupabaseに記録し、コンプライアンスとトレーサビリティを確保
query-test-mcp
SQLite Explorer
Explore, query, and inspect SQLite databases with ease. List tables, preview results, and view detailed schema metadata to understand structure quickly. Verify connectivity and readiness with a quick health check.
MCP-PostgreSQL-Ops
Monitor and analyze PostgreSQL databases with natural-language queries. Diagnose slow queries, locks, bloat, replication lag, and WAL health across single or multiple databases. Get safe, read-only insights with schema discovery and clear maintenance recommendations.
Gmail Manager
Gmail Manager MCP gives Claude Desktop direct access to your Gmail inbox, allowing you to: 🔍 Search & Filter - Find emails by sender, subject, date, or any Gmail query 🏷️ Smart Organization - Create and apply labels to categorize emails automatically 🗑️ Bulk Operations - Delete multiple emails at once based on your criteria 📊 Inbox Analytics - Get insights about your email patterns and volume 🧹 Smart Cleanup - Remove old newsletters, notifications, and spam efficiently Perfect for inbox zero enthusiasts and anyone drowning in email overload!
Indexed from Smithery · Updates nightly
View on Smithery →