Skip to content
Agentmart
Submit a tool

Notion MCP Server

Token-auth Notion MCP: pages, databases, blocks, comments, files.

Connector by awkoy · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 179
Write a review

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.

We use your email only for this newsletter. Privacy

About

Token-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.

Use cases: note-taking

No 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_block
  • get_block_children
  • get_file_upload
  • get_file_url
  • get_image
  • get_page
  • get_page_markdown
  • list_file_uploads
  • notion_describe
  • search_pages

Write 11 · Create, change, send or run things.

  • append_blocks
  • archive_page
  • create_page
  • move_page
  • restore_page
  • set_page_properties
  • set_page_property
  • set_page_title
  • update_block
  • update_page_markdown
  • upload_file

Delete 2 · Delete, drop, revoke or wipe things.

  • batch_mixed_blocks
  • delete_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_blocks

    Append children to a page or block. Use markdown for prose content.

  • archive_page

    Move a page to trash. Reversible via restore_page. Alias: trash_page.

  • batch_mixed_blocks

    Run 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_page

    Create 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_block

    Archive (soft-delete) a block.

  • get_block

    Retrieve a single block by ID (metadata + type-specific body). For its children, use get_block_children.

  • get_block_children

    List child blocks under a page or block, paginated.

  • get_file_upload

    Retrieve a single file upload by ID.

  • get_file_url

    Turn 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_image

    Fetch 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_page

    Retrieve 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_markdown

    Return a page's body as Notion-rendered markdown. Server-side conversion; round-trips with update_page_markdown.

  • list_file_uploads

    List file uploads, optionally filtered by status.

  • move_page

    Move 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-only

    Return 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_page

    Restore a page previously moved to trash.

  • search_pages

    Search 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_properties

    Set 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_property

    Set 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_title

    Rename a page. Updates the page's title property.

  • trash_page

    Alias of archive_page (2025-09-03 surface naming). Moves a page to trash.

  • update_block

    Update 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_markdown

    Replace (or insert into) a page's body using Notion's server-side markdown renderer. Skip the local remark pipeline.

  • upload_file

    Upload 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
    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)