Second Brain Setup
/install notion-second-brain-setup
Second Brain Setup
STRICT RULES — read first
You will execute a fixed sequence of Notion MCP tool calls. You are NOT to invent pages, write markdown content, or call any tool not listed in the sequence below.
✅ The only output of this skill:
- One page titled exactly
Second Brain(no body content, no icon, no cover) - One database titled exactly
Reading Listas a child of that page - One database titled exactly
Inboxas a child of that page
❌ Forbidden — even if your training suggests them:
- ❌ PARA pages (Projects / Areas / Resources / Archives)
- ❌ "Building a Second Brain" overview, methodology, or wiki content
- ❌ "Book Notes", "Meeting Notes", "Daily Notes", "Quick Links"
- ❌ Any markdown body content on the
Second Brainparent page - ❌ Calling
notion-create-pagesto create something that should be a database - ❌ Adding emojis, covers, or decorative properties anywhere
If you find yourself about to call notion-create-pages with a content field longer than 0 characters, STOP — you are about to do the wrong thing.
Tool sequence
Execute in order. Stop and report on first hard failure.
Step 0 — Find an accessible parent page (PREREQUISITE)
The Notion integration can only create pages under a page it has been shared with. There is no "workspace root" creation path.
Call notion-search with:
{"query": "", "query_type": "internal"}
This returns every page the integration can see. From the results:
- If you see a page already titled exactly
Second Brain, save itspage_idasSECOND_BRAIN_IDand skip to Step 2. - Otherwise, pick any visible page as
INTEGRATION_PARENT_ID. Prefer one that looks like a top-level workspace page (no parent, or named likeHome,Workspace,IronClaw, etc.). - If the search returns zero results, STOP and reply to the user with exactly:
No pages accessible to the integration. In Notion, create a page (e.g. "IronClaw") and share it with the integration (... → Connections → IronClaw), then run setup again.
Step 1 — Create the Second Brain parent page
Only run this step if SECOND_BRAIN_ID was not found in Step 0.
Call notion-create-pages with exactly this payload — no other fields:
{
"pages": [
{
"parent": {"type": "page_id", "page_id": "\x3CINTEGRATION_PARENT_ID>"},
"properties": {"title": "Second Brain"}
}
]
}
Do NOT include any of these fields, even as empty values: content, icon, cover, template_id, children, tags, description. The pages[0] object must contain exactly two keys: parent and properties. If you write any other key, you are violating this skill.
Save the returned page_id as SECOND_BRAIN_ID.
Step 2 — Find or adopt Reading List
Call notion-search with:
{"query": "Reading List", "query_type": "internal"}
If a database (not a page) named exactly Reading List exists:
- If its parent is already
SECOND_BRAIN_ID, do nothing — recordREADING_LIST_IDand skip to Step 3. - If its parent is something else, call
notion-move-pagesto move it underSECOND_BRAIN_ID. RecordREADING_LIST_ID. - Do NOT modify its existing schema, even if it differs from the spec below. Adopt as-is.
If not found, call notion-create-database with:
{
"parent": {"type": "page_id", "page_id": "\x3CSECOND_BRAIN_ID>"},
"title": [{"type": "text", "text": {"content": "Reading List"}}],
"properties": {
"Name": {"title": {}},
"Type": {"select": {"options": [
{"name": "Book"}, {"name": "Article"}, {"name": "Podcast"}, {"name": "Video"}
]}},
"Status": {"select": {"options": [
{"name": "Not started"}, {"name": "In progress"}, {"name": "Done"}
]}},
"Score": {"number": {"format": "number"}},
"Author": {"rich_text": {}},
"Link": {"url": {}},
"Review(Sum up)": {"rich_text": {}},
"Tags": {"multi_select": {"options": []}}
}
}
Record READING_LIST_ID from the response.
Step 3 — Find or adopt Inbox
Same pattern as Step 2. Search → adopt-and-move if exists → otherwise create with:
{
"parent": {"type": "page_id", "page_id": "\x3CSECOND_BRAIN_ID>"},
"title": [{"type": "text", "text": {"content": "Inbox"}}],
"properties": {
"Note": {"title": {}},
"Type": {"select": {"options": [
{"name": "Thought"}, {"name": "Task"}, {"name": "Resource"}, {"name": "Reference"}
]}},
"Processed": {"checkbox": {}},
"Date": {"date": {}}
}
}
Step 4 — Report
Reply to the user with exactly this format (filling URLs from tool responses):
Second Brain ready ✓
• Second Brain page: \x3Curl>
• Reading List (created|adopted|moved): \x3Curl>
• Inbox (created|adopted|moved): \x3Curl>
If captures don't work, make sure the IronClaw integration is connected to the Second Brain page (… → Connections → IronClaw). Sharing the parent cascades to children.
MCP call rules
- Never pass
nullfor any field. Omit the field. Empty string is also wrong for most fields — omit instead. - Never include
template_idorcoverunless you have real values. These are the most common null-pass mistakes. - Date fields are
YYYY-MM-DDstrings only. notion-searchrate limit is 30/min — do not search more than necessary. One search per database name in this skill is enough.- If a tool call fails with
-32602, strip every field that is not strictly required by the tool's documented schema and retry once. Do not retry the same payload. - Database vs data source:
notion-create-databasereturns adatabase_id. The correspondingdata_source_id(for queries later) appears in the response under the data sources array. Save both if returned.
What not to do
- Do not call
notion-create-pagesto createReading ListorInbox— they are databases, not pages. Usenotion-create-database. - Do not write any explanatory or methodological content into Notion. The user already knows what a second brain is.
- Do not search for
Reading ListorInboxmore than once each. - Do not delete, rename, or restructure existing data. Only add what's missing.
- Do not run any captures during setup. Stop after Step 4's report.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install notion-second-brain-setup - After installation, invoke the skill by name or use
/notion-second-brain-setup - Provide required inputs per the skill's parameter spec and get structured output
What is Second Brain Setup?
One-shot Notion workspace scaffolder for the second-brain skill. Creates or adopts the "Second Brain" parent page and its child databases (Reading List, Inbo... It is an AI Agent Skill for Claude Code / OpenClaw, with 44 downloads so far.
How do I install Second Brain Setup?
Run "/install notion-second-brain-setup" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Second Brain Setup free?
Yes, Second Brain Setup is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Second Brain Setup support?
Second Brain Setup is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Second Brain Setup?
It is built and maintained by Prakhar Ojha (@prakhar728); the current version is v0.4.0.