mrkeyoor.com_
Tue 01 Sept 16:16 UTC
ProductivityMCP servermeasured 19 Aug 2026

Notion

Notion MCP is the stdio server published by Notion as @notionhq/notion-mcp-server. It exposes the public Notion REST API to an agent as 24 tools: search, page read and write in markdown, block children, data source query and update, comments, and users. You bring your own integration token, and the agent can only touch pages that token has been shared with.

BootBOOTS ✓We started it and initialize came back in 8.9s.
Tools24tools/list payload 76,215 bytes
Context tax~19,054estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts / counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

npx -y @notionhq/notion-mcp-server
Verdict

Use it, but not with every tool switched on. It started cleanly under a clean environment and answered initialize and tools/list without a token, then handed back a tools payload of 76,215 bytes, roughly 19,054 tokens by the chars/4 estimate. That is the heaviest bill in this batch, and it is charged on every single request, whether the agent touches Notion or not. If your workflow is really just search plus retrieve page markdown, prune the list and you keep the useful part.

Use it if

Your team's specs and meeting notes live in Notion and you want the agent reading them instead of you pasting page dumps into chat
You want writes, not just reads: API-post-page and API-update-page-markdown let an agent file its own notes back into a database
You can prune the tool list at the client, so you pay for the handful of endpoints you actually call
You already run a token-heavy agent on a long-context model and one large server is an acceptable line item
You want the vendor's own package rather than a third-party wrapper around the same REST API

Skip it if

You run a small context window; 19,054 estimated tokens of schema is a large slice of it before the user speaks
Your client cannot disable individual tools, because you will be carrying all 24 whether you use them or not
You only ever need to read one or two known pages, in which case a curl call against the REST API is cheaper and more boring
You need Notion search to behave like real full-text search across a large workspace; the API's search is coarser than the in-app one
You cannot get an internal integration created and pages shared with it, which is an admin action in many workspaces
You want resources or prompts as well as tools; the harness got no resource or prompt list back from this one

The bill for your context window

ToolEst. tokensDescribed?Required params
API-update-page-markdown~1,466yes (280 chars)2
API-post-search~1,201yes (58 chars)0
API-patch-page~973yes (65 chars)1
API-post-page~892yes (56 chars)2
API-query-data-source~829yes (62 chars)1
API-create-a-comment~792yes (57 chars)2
API-update-a-block~777yes (57 chars)1
API-retrieve-page-markdown~777yes (231 chars)1

24 tools costing about 19,054 tokens works out to a fat schema per endpoint, and the reason is that the tools are generated from the Notion OpenAPI spec rather than hand-written for agents. API-update-page-markdown alone is about 1,466 tokens and API-post-search about 1,201, both far more schema than their short descriptions suggest; even API-get-self, which takes no arguments and returns who you are, costs around 640. Nothing here is padding you can shame the vendor about, it is just what a faithful REST mirror weighs. Trim to search, retrieve page markdown, update page markdown and query data source, and most of the bill goes away.

Setup reality

npx -y @notionhq/notion-mcp-server over stdio, no Docker, no daemon. Boot printed nothing but an npm deprecation warning about node-domexception and scraped no required env vars, because the server starts happily unauthenticated and only fails once a tool is called. Real use needs an internal integration token from notion.so/profile/integrations, passed as an auth header in your client config, plus the manual step everyone forgets: open each page or database, Connections, add the integration. Pages that are not connected are invisible to it, and the error message when that happens is not obvious.

Questions people ask

Does the Notion MCP server need a token to start?

No. We started it with a clean environment and no credentials, and it completed initialize and returned all 24 tools. Authentication only matters at call time, so a green boot in your client tells you nothing about whether your token works.

Why is the Notion MCP server so expensive in context?

Its tool schemas are generated from Notion's REST API spec, so each one carries full request-body typing. The whole list measured 76,215 bytes, about 19,054 tokens at four characters per token, on 2026-08-19.

Why can't the agent see my page?

The integration has to be added to that page or its parent through the Connections menu inside Notion. Sharing with a human teammate does not do it, and the resulting API error reads like the page does not exist rather than like a permission problem.

Can I run it with only a few tools?

Yes, if your client supports per-tool filtering. That is the single highest-value change you can make here, because the cost is almost entirely schema you never call, not runtime overhead.

Other productivity servers we started

ServerVendorBootsContext tax
Airtablecommunity (domdomegg)~0 tokens
Obsidiancommunity~0 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers