一键导入
notion-manager
Read and manage your Notion workspace — databases, pages, to-dos, and notes — all through your agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read and manage your Notion workspace — databases, pages, to-dos, and notes — all through your agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI Agent Marketplace for OpenClaw. Browse and discover 60+ free & premium agents — developer tools, content, automation, video, research, and more.
Network-wide ad and tracker blocking at the DNS level. A Pi-hole alternative that runs directly on your machine as an OpenClaw skill. No separate h...
agentplace's autonomous marketing experiments. Use when agentplace wants to try new content, test hooks, track what works, and iterate independently. Covers X posting, TikTok experimentation, and growth tracking.
Generates clean API documentation from code, endpoints, or descriptions — OpenAPI, markdown, or README format
Generates mock API responses with realistic fake data from OpenAPI specs or plain descriptions
Generates professional system architecture diagrams (Mermaid flowcharts, sequence diagrams, C4 models, deployment views) and Architecture Decision Records from plain English descriptions
| name | notion-manager |
| description | Read and manage your Notion workspace — databases, pages, to-dos, and notes — all through your agent. |
Read and manage your Notion workspace — databases, pages, to-dos, and notes — all through your agent.
Category: productivity API Key Required: Yes (Notion Integration Token)
Full Notion integration: query databases, create pages, update properties, search across your workspace, manage to-do lists, and pull content. Your agent becomes a Notion power user.
In Notion, open any database or page you want the agent to access:
Important: The integration can ONLY see pages/databases explicitly shared with it.
Store the token:
NOTION_TOKEN=secret_xxx
curl -s -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" \
"https://api.notion.com/v1/users/me" | python3 -m json.tool
Base URL: https://api.notion.com/v1
Always include headers:
Authorization: Bearer $NOTION_TOKEN
Notion-Version: 2022-06-28
Content-Type: application/json
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/search" \
-d '{"query": "SEARCH_TERM", "page_size": 10}' | python3 -c "
import json,sys
d = json.load(sys.stdin)
for r in d['results']:
title = ''
if r['object'] == 'page':
props = r.get('properties',{})
for p in props.values():
if p['type'] == 'title' and p['title']:
title = p['title'][0]['plain_text']
break
elif r['object'] == 'database':
title = r.get('title',[{}])[0].get('plain_text','')
print(f\"{r['object']:10s} {title:40s} {r['id']}\")
"
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/databases/DATABASE_ID/query" \
-d '{"page_size": 20}'
With filters:
# Filter by status
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/databases/DATABASE_ID/query" \
-d '{
"filter": {
"property": "Status",
"status": {"equals": "In Progress"}
},
"sorts": [{"property": "Created", "direction": "descending"}]
}'
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/pages" \
-d '{
"parent": {"database_id": "DATABASE_ID"},
"properties": {
"Name": {"title": [{"text": {"content": "New task"}}]},
"Status": {"status": {"name": "To Do"}},
"Priority": {"select": {"name": "High"}}
}
}'
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/pages" \
-d '{
"parent": {"page_id": "PARENT_PAGE_ID"},
"properties": {
"title": {"title": [{"text": {"content": "Meeting Notes"}}]}
},
"children": [
{"object": "block", "type": "heading_2", "heading_2": {"rich_text": [{"text": {"content": "Summary"}}]}},
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Key points from today..."}}]}},
{"object": "block", "type": "to_do", "to_do": {"rich_text": [{"text": {"content": "Follow up with team"}}], "checked": false}}
]
}'
curl -s -X PATCH -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/pages/PAGE_ID" \
-d '{
"properties": {
"Status": {"status": {"name": "Done"}}
}
}'
curl -s -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" \
"https://api.notion.com/v1/blocks/PAGE_ID/children?page_size=100" | python3 -c "
import json,sys
d = json.load(sys.stdin)
for b in d['results']:
btype = b['type']
text = ''
if btype in b and 'rich_text' in b[btype]:
text = ''.join(t['plain_text'] for t in b[btype]['rich_text'])
elif btype == 'to_do':
checked = '✅' if b['to_do']['checked'] else '⬜'
text = checked + ' ' + ''.join(t['plain_text'] for t in b['to_do']['rich_text'])
print(f\"{btype:20s} {text}\")
"
curl -s -X PATCH -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/blocks/PAGE_ID/children" \
-d '{
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Added by your agent"}}]}}
]
}'
curl -s -X POST -H "Authorization: Bearer $NOTION_TOKEN" \
-H "Notion-Version: 2022-06-28" -H "Content-Type: application/json" \
"https://api.notion.com/v1/search" \
-d '{"filter": {"property": "object", "value": "database"}, "page_size": 20}' | python3 -c "
import json,sys
d = json.load(sys.stdin)
for r in d['results']:
title = r.get('title',[{}])[0].get('plain_text','Untitled')
print(f\"{title:40s} {r['id']}\")
"
User: "What's on my to-do list?" → Search for a database with "to-do" or "tasks", query it filtered by Status != Done
User: "Add a task: review marketing plan" → Create a page in the tasks database with title and Status: To Do
User: "Mark the design review as done" → Search for the page, update Status to Done
User: "Show me my meeting notes from yesterday" → Search for pages with "meeting" created yesterday
2022-06-28 or later