notion

A connector for Notion, a workspace app for notes, documents, and databases. It reads and changes Notion pages, database records, and content blocks through Notion's web API.

In plain words
What is it for?
Use it to find, read, create, and update Notion pages and database records, or manage the smaller content blocks inside pages.
Why use it?
It removes the need to manually copy information between a coding agent and Notion. It also provides rules for making each web request separately so the runtime accepts it.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/atomicbot-ai/atomic-agent/notion
Any agent
npx skills add AtomicBot-ai/atomic-agent --skill notion
Clone the repo
git clone --depth 1 https://github.com/AtomicBot-ai/atomic-agent

Made for: Claude Code, Codex.

Per session 24 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,246 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00024 $0.04246
Opus 5 $0.00012 $0.02123
Sonnet 5 $0.00005 $0.00849
Haiku 4.5 $0.00002 $0.00425

Measured 3d ago against content hash 409dc6ab4751, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

notion scanned grade C with 2 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 3d ago.

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.

Harvests environment variableshighData exfiltration

Enumerating or grepping the environment for keys collects credentials unrelated to what the mod says it does.

this conversation (`printenv NOTION_API_KEY`), then reuse the value in

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

`os.http.request` only supports `GET` and `POST`. For `PATCH` (update page, append blocks) and `DELETE`, fall back to `os.shell.run` with `curl`:
starter-skills/notion/SKILL.md · 375 lines

How it starts

The opening of the file, as written. The whole thing — 375 lines — stays where its author put it; the contents beside it link to each section on GitHub.

notion

Talk to the Notion API (api.notion.com) directly over HTTP. No SDK required.

Calling convention (critical)

os.http.request is approval-gated in atomic-agent. Every call MUST be emitted as a solo step — a length-1 array, never combined with another tool in the same step:

DO — solo step, GET shape (use for /v1/pages/{id}, /v1/blocks/{id}/children, /v1/users):

[
  {
    "tool": "os.http.request",
    "args": {
      "method": "GET",
      "url": "https://api.notion.com/v1/pages/{page_id}",
      "headers": { "Authorization": "Bearer <key>", "Notion-Version": "2025-09-03" }
    }
  }
]

DO — solo step, POST shape (use for /v1/search, /v1/pages create, /v1/data_sources/{id}/query):

[
  {
    "tool": "os.http.request",
    "args": {
      "method": "POST",
      "url": "https://api.notion.com/v1/search",
      "headers": {
        "Authorization": "Bearer <key>",
        "Notion-Version": "2025-09-03",
        "Content-Type": "application/json"
      },
      "body": { "query": "page title" }
    }
  }
]

DON'T — these are rejected by the runtime with GrammarError: approval-gated tool 'os.http.request' is forbidden inside a batch:

[ { "tool": "os.http.request", ... }, { "tool": "os.http.request", ... } ]   // two HTTP calls in one step
[ { "tool": "reply", ... },           { "tool": "os.http.request", ... } ]   // reply + HTTP in one step
[ { "tool": "os.http.request", ... }, { "tool": "os.shell.run",   ... } ]   // any other approval-gated peer

To fetch N pages, emit N consecutive solo steps, each as [{...}]. Wait for each tool_result before issuing the next call. Do not try to parallelise reads of the Notion API.

args.body for POST must be a JSON object (the runtime serialises it). Do not wrap it in quotes and escape the braces — passing body: "{\"key\":\"val\"}" works but is fragile and is the #1 cause of 400 invalid_json from Notion.

Setup check (lazy — read the key once, don't re-probe)

Read the full file on GitHub · 375 lines

Changes

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.

  1. 3d ago First seen · 375 lines · 24 tokens per session scan C 409dc6ab4751

Subscribe to this mod's changes

notion is a skill published in the GitHub repository AtomicBot-ai/atomic-agent (2,438 stars, last pushed yesterday), licensed MIT. It adds 24 tokens to every session and 4,246 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 2 findings (harvests environment variables, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

notion

Search, read, create, and update Notion pages and databases. Supports knowledge capture, meeting prep, research documentation, and spec-to-task workflows.

aws-samples/sample-strands-agent-with-agentcore · 33 tokens

google-workspace

Use Google Workspace CLI (gws) for Drive, Docs, Sheets, Gmail, Calendar, Chat, and related Workspace API tasks.

swarmclawai/swarmclaw · 31 tokens

google-workspace

Operate across Docs, Sheets, Drive, Gmail, and Calendar with a bias toward clean cross-tool handoffs.

aaronnat23/disp8ch · 0 tokens

notion

Notion API for creating and managing pages, databases, and blocks.

SafeAI-Lab-X/ClawKeeper · 17 tokens

lark-drive

飞书云空间:管理云空间中的文件和文件夹。上传和下载文件、创建文件夹、复制/移动/删除文件、查看文件元数据、管理文档评论、管理文档权限、订阅用户评论变更事件、修改文件标题(docx、sheet、bitable、file、folder、wiki);也负责把本地 Word/Markdown/Excel/CSV 以及 Base 快照(.base)导入为飞书在线云文档(docx、sheet、bitable)。当用户需要上传或下载文件、整理云空间目录、查看文件详情、管理评论、管理文档权限、修改文件标题、订阅用户评论变更事件,或要把本地文件导入成新版文档、电子表格、多维表格/Base 时使用。.

yokingma/weclaws · 175 tokens

lark-minutes

飞书妙记:妙记相关基本功能。1.查询妙记列表(按关键词/所有者/参与者/时间范围);2.获取妙记基础信息(标题、封面、时长 等);3.下载妙记音视频文件;4.获取妙记相关 AI 产物(总结、待办、章节);5.上传音视频生成妙记,也支持将本地音视频文件转成纪要、逐字稿、文字稿、撰写文字等产物。遇到这类请求时,应优先使用本 skill,而不是尝试 ffmpeg、whisper 等本地转写命令。飞书妙记 URL 格式: http(s):// /minutes/.

yokingma/weclaws · 168 tokens