
Notion Mcp
Connects to Notion's internal web API using browser credentials (token_v2, user ID, space ID) instead of the official integration flow. Exposes full-text search across your workspace, bidirectional markdown conversion (export pages to markdown with clean formatting, import or append markdown back into pages), page creation, image uploads, and comment management. Skips the OAuth dance and admin approval process by using the same endpoints the web app calls. Trade-off is token expiry and reliance on an undocumented API. Useful when you want programmatic Notion access without workspace admin permissions or need markdown-based workflows that the official blocks API doesn't support. Includes a one-command setup that extracts credentials from a cURL command copied from DevTools.
- GitHub stars
- 2
- tools
- 14
- auth
- Secret needed
- transport
- STDIO
- env vars
- 3
- last updated
- Jun 23, 2026
Tools
14 toolsPublic tool metadata for what this MCP can expose to an agent.
notion-searchPerform 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. Au...9 params
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. Au...
content_search_modestringworkspace_search · ai_searchdata_source_urlstringfiltersobjectmax_highlight_lengthintegerpage_sizeintegerpage_urlstringquerystringquery_typestringinternal · userteamspace_idstringnotion-fetchRetrieves details about a Notion entity (page, database, or data source) 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://d...3 params
Retrieves details about a Notion entity (page, database, or data source) 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://d...
idstringinclude_discussionsbooleaninclude_transcriptbooleannotion-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 omitt...2 params
## 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 omitt...
pagesarrayparentvaluenotion-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...11 params
## 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...
allow_deleting_contentbooleancommandstringupdate_properties · update_content · replace_content · apply_template · update_verificationcontent_updatesarraycoverstringiconstringnew_strstringpage_idstringpropertiesobjecttemplate_idstringverification_expiry_daysintegerverification_statusstringverified · unverifiednotion-move-pagesMove one or more Notion pages or databases to a new parent.2 params
Move one or more Notion pages or databases to a new parent.
new_parentvaluepage_or_database_idsarraynotion-duplicate-pageDuplicate 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...1 params
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...
page_idstringnotion-create-databaseCreates a new Notion database using SQL DDL syntax. 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. The schema param acce...4 params
Creates a new Notion database using SQL DDL syntax. 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. The schema param acce...
descriptionstringparentobjectschemastringtitlestringnotion-update-data-sourceUpdate a Notion data source's schema, title, or attributes using SQL DDL statements. 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 r...6 params
Update a Notion data source's schema, title, or attributes using SQL DDL statements. 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 r...
data_source_idstringdescriptionstringin_trashbooleanis_inlinebooleanstatementsstringtitlestringnotion-create-commentAdd 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 - `di...4 params
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 - `di...
discussion_idstringpage_idstringrich_textarrayselection_with_ellipsisstringnotion-get-commentsGet 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 con...4 params
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 con...
discussion_idstringinclude_all_blocksbooleaninclude_resolvedbooleanpage_idstringnotion-get-teamsRetrieves 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...1 params
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...
querystringnotion-get-usersRetrieves 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 p...4 params
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 p...
page_sizeintegerquerystringstart_cursorstringuser_idstringnotion-create-viewCreate a new view on a Notion database. Exactly one of "database_id" or "parent_page_id" must be provided: - "database_id": add a new view tab to an existing database. - "parent_page_id": create an inline linked database view on a page that references the existing "data_source...6 params
Create a new view on a Notion database. Exactly one of "database_id" or "parent_page_id" must be provided: - "database_id": add a new view tab to an existing database. - "parent_page_id": create an inline linked database view on a page that references the existing "data_source...
configurestringdata_source_idstringdatabase_idstringnamestringparent_page_idstringtypestringtable · board · list · calendar · timeline · gallerynotion-update-viewUpdate a view's name, filters, sorts, or display configuration. Use "fetch" to get view IDs from database responses. Only include fields you want to change. The "configure" param uses the same DSL as create_view. Use CLEAR to remove settings: - CLEAR FILTER — remove all filter...3 params
Update a view's name, filters, sorts, or display configuration. Use "fetch" to get view IDs from database responses. Only include fields you want to change. The "configure" param uses the same DSL as create_view. Use CLEAR to remove settings: - CLEAR FILTER — remove all filter...
configurestringnamestringview_idstringSponsors
Configuration
NOTION_TOKEN*secretNotion token_v2 cookie value from browser DevTools
NOTION_USER_ID*Notion user ID from x-notion-active-user-header
NOTION_SPACE_ID*Notion workspace ID from API request body
Readme
@shck-dev/notion-mcp
Notion MCP Server — search, export, and import pages as markdown
No workspace admin. No OAuth. No page sharing.
Just paste 3 values from your browser and go.
Features
Details
- Repository
- github.com/shck-dev/notion-mcp
- Categories
- Documents & Knowledge, Search & Web Crawling
- Package
@shck-dev/notion-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active