Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add awkoy/notion-mcp-server --skill notion-workflowgit clone --depth 1 https://github.com/awkoy/notion-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/awkoy/notion-mcp-server/notion-workflow)<a href="https://agentmods.dev/skills/awkoy/notion-mcp-server/notion-workflow"><img src="https://agentmods.dev/badge/skills/awkoy/notion-mcp-server/notion-workflow/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/awkoy/notion-mcp-server/notion-workflow"><img src="https://agentmods.dev/badge/skills/awkoy/notion-mcp-server/notion-workflow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.01722 |
| Opus 5.5 | $0.00035 | $0.00689 |
| Sonnet 5.5 | $0.00017 | $0.00344 |
| Haiku 4.5 | $0.00009 | $0.00172 |
Grade A, and why
notion-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Working with Notion through notion-mcp-server
The server exposes three tools. notion_read runs read operations, notion_write runs write operations, and notion_describe returns one operation's JSON Schema with a working example. Each call is { operation, payload }. The operation enum on each tool is the full menu of what is enabled. In read-only mode notion_write isn't listed at all; say that edits are turned off rather than offering them.
Most tasks follow the same path: find the thing, read it, then change it in as few calls as possible.
1. Find it
- The user pasted a link: skip the search. Every id field (
page_id,database_id,block_id,view_id, …) accepts a Notion URL as it is. - The user named something:
notion_read→search_pageswith{ query: "<words from the title>" }. The search matches titles only, never body text. Each result carriesobject(page,databaseordata_source),id,titleandurl. A database id is not a valid parent forcreate_page; a row's parent is a data source. - A loose match (accents, word order): add
ranking: "title_relevance"to re-rank by title similarity. - Nothing found: with an Internal Integration token, the page may not be shared with the integration. Say so instead of guessing.
2. Read it
| Need | Operation | Payload |
|---|---|---|
| A page's prose, to summarise or edit | get_page_markdown |
{ page_id } |
| A database row's fields | get_page |
{ page_id, include_properties: true } |
| Block ids, to edit one block | get_block_children |
{ block_id } |
| A database's columns and options | get_data_source |
{ data_source_id } |
Prefer get_page_markdown to walking blocks. One call returns the whole body, and it round-trips with update_page_markdown.
3. Query a database with where
notion_read → query_database. Pass database_id (a single-source database resolves itself) or data_source_id. Filter with where instead of raw Notion filter JSON:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 103 lines · 87 tokens per session scan A c0a83c15ce3c
notion-workflow is a skill published in the GitHub repository awkoy/notion-mcp-server (177 stars, last pushed today), licensed MIT. It adds 87 tokens to every session and 1,722 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-19.
Other skills, from other repositories
google-workspace
Gmail, Calendar, Drive, Docs, Sheets via gws CLI or Python.
box
Box manages cloud files, sharing, search, and metadata.
form-filling
Fill out online forms (Google Forms, Typeform and similar) or PDF, Word and DocuSign forms; prepare a reviewable draft and get approval before submitting or sending.
c-notion
Manage Notion pages and databases from the CLI using notion-cli. Create, read, search, and update pages. Query databases, add entries, and manage blocks and properties.
notion-weekly-report
Produce weekly progress summaries from Notion sources.
dcf-model
Build discounted cash flow valuation workbooks in Excel.