Notion MCP Server
Token-auth Notion MCP: pages, databases, blocks, comments, files.
Connector by awkoy · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/awkoy-notion-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: note-taking
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 10 read · 11 write · 2 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 24
Read from the source code; the running server may list different tools.
Read 10 · Look things up without changing anything.
get_blockget_block_childrenget_file_uploadget_file_urlget_imageget_pageget_page_markdownlist_file_uploadsnotion_describesearch_pages
Write 11 · Create, change, send or run things.
append_blocksarchive_pagecreate_pagemove_pagerestore_pageset_page_propertiesset_page_propertyset_page_titleupdate_blockupdate_page_markdownupload_file
Delete 2 · Delete, drop, revoke or wipe things.
batch_mixed_blocksdelete_block
Not yet classified 1 · We could not tell from the name and description.
trash_page
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
NOTION_TOKEN
Other settings (environment variables or headers).
NOTION_PAGE_ID
Tools (24)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
append_blocksAppend children to a page or block. Use markdown for prose content.
archive_pageMove a page to trash. Reversible via restore_page. Alias: trash_page.
batch_mixed_blocksRun a sequence of mixed block operations (append/update/delete) in order. Uses a non-standard envelope: { operations: [{ op: "append"|"update"|"delete", ... }] } — NOT the universal { items: [...] } batch envelope. For pure single-op batches, prefer the items[] form on append_blocks / update_block / delete_block.
create_pageCreate a page under a page or as a row of a data source. Body can be markdown (recommended) or structured blocks; row properties take plain values.
delete_blockArchive (soft-delete) a block.
get_blockRetrieve a single block by ID (metadata + type-specific body). For its children, use get_block_children.
get_block_childrenList child blocks under a page or block, paginated.
get_file_uploadRetrieve a single file upload by ID.
get_file_urlTurn a notion-file: ref into a fresh signed URL. Nothing is cached: the ref names its source object, so this re-reads it. The URL expires in about an hour.
get_imageFetch a Notion-hosted image and return it as image content, so the model can see it. Takes a notion-file: ref or a block id — never a URL: the server fetches only the signed URL Notion returns for that object. Refuses non-image files and images over 5 MB. Every other operation returns text only.
get_pageRetrieve a page's metadata and (optionally) properties. No body blocks — use get_block_children for those. Pass `include_properties: true` to also return a flattened properties map.
get_page_markdownReturn a page's body as Notion-rendered markdown. Server-side conversion; round-trips with update_page_markdown.
list_file_uploadsList file uploads, optionally filtered by status.
move_pageMove a page to a new parent without recreating it. Preserves the page's blocks, properties, and comments. The destination uses `parent` — same field name as create_page.
notion_describeNotion Describeread-onlyReturn the JSON Schema and a working example for one operation, plus which tool runs it (notion_read or notion_write). Use this BEFORE calling the operation when the payload shape is non-trivial (query filters, structured block trees, database property definitions). For simple ops, just call it — errors carry the schema.
Show 9 more tools
restore_pageRestore a page previously moved to trash.
search_pagesSearch pages and databases by title. Title-only; does NOT search page body content. Each result carries `object` (page | database | data_source). Default ordering is Notion's native search order. Pass ranking:'title_relevance' to re-rank up to 100 candidates by normalized title relevance. Pass paginate:true to auto-walk all pages.
set_page_propertiesSet several properties on one page in one API call, with plain values typed from the data source schema. Use set_page_property for a single property.
set_page_propertySet one property on one page. A plain value is typed from the data source schema ("Done", 42, true, "2026-01-01", ["a", "b"], null to clear). For several properties use set_page_properties.
set_page_titleRename a page. Updates the page's title property.
trash_pageAlias of archive_page (2025-09-03 surface naming). Moves a page to trash.
update_blockUpdate one block. Pass `markdown` for its content (one block; `- [x] text` for a done to_do), or `data` for a partial field update such as { to_do: { checked: true } } or { code: { language: "python" } }.
update_page_markdownReplace (or insert into) a page's body using Notion's server-side markdown renderer. Skip the local remark pipeline.
upload_fileUpload a file via Notion's file_uploads API. Handles single-part (one create + one send) and multi-part (create + N sends + complete) transparently. Source shapes: • Local path: `source: { type: "path", path: "/abs/or/~/file.pdf" }` (server reads the file directly — preferred for local files; filename is derived from the path if omitted). • Base64 bytes: `source: { type: "base64", data: "<b64 string>" }` • Public URL: `source: { type: "url", url: "https://example.com/file.pdf" }` (the server fetches it server-side). `mode` defaults to "single"; only pass "multi" for files larger th…
Compare and alternatives
Featured in
Signals
- Stars
- 179
- Forks
- 41
- Open issues
- 0
- Last commit
- Oct 19, 2026 (9 days ago)
- Last release
- Oct 25, 2026 (3 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.awkoy/notion-mcp-server- Version
- 3.3.0
- Auth
- API key
- Packages
- npm notion-mcp-serveroci
ghcr.io/awkoy/notion-mcp-server:3.3.0 - License
- MIT
- Repository
- github.com/awkoy/notion-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
Cite this page
Notion MCP Server. Agent Mart. https://agentmart.dev/connectors/awkoy-notion-mcp-server (last updated 2026-10-26)