Step-by-step guide to provisioning the 4-database academic research workspace using Notion MCP.
- Notion workspace with a parent page (e.g., "Academic Research")
- Notion MCP connection (OAuth via Cowork or Claude Desktop)
Create all 4 databases under the parent page. The provisioning config (configs/research-workspace.json) defines all properties.
// For each database in config:
notion-create-database({
parent: { page_id: parent_page_id },
title: [{ text: { content: db.name } }],
icon: { emoji: db.icon },
properties: {
Title: { title: {} },
Authors: { rich_text: {} },
Stage: { select: { options: [
{ name: "discovered" }, { name: "screened" },
{ name: "analyzed" }, { name: "promoted" }, { name: "rejected" }
]}},
// ... remaining properties from config
}
})
Idempotent check: Before creating, search for existing database:
notion-search({ query: "Research Papers", filter: { property: "object", value: "database" } })
Create dual relations between databases:
// DB1 <-> DB2 (Research Papers <-> Research Findings)
notion-update-data-source({
database_id: db1_id,
properties: {
"Related Findings": { relation: { database_id: db2_id, type: "dual_property" } }
}
})
// DB1 <-> DB4 (Research Papers <-> Reading Lists)
// DB3 <-> DB4 (Essay Projects <-> Reading Lists)
// DB2 -> DB3 (Research Findings -> Essay Projects, single direction)
// DB2 -> DB2 (Research Findings self-relation: Contradiction With)
Create template pages inside databases with default property values:
// New Paper template
notion-create-pages({
database: db1_id,
pages: [{
properties: {
Title: { title: [{ text: { content: "" } }] },
Stage: { select: { name: "discovered" } },
"Read Progress": { select: { name: "not-started" } },
"Zotero Status": { select: { name: "none" } }
}
}]
})
Create rich pages with embedded linked databases:
notion-create-pages({
parent: { page_id: parent_page_id },
pages: [{
properties: {
title: { title: [{ text: { content: "Research Dashboard" } }] }
},
children: [
{ type: "callout", callout: { rich_text: [{ text: { content: "Research hub — papers, findings, and essay progress at a glance." } }] } },
{ type: "heading_2", heading_2: { rich_text: [{ text: { content: "High-Relevance Papers" } }] } },
// Linked database embed (filtered view of DB1)
{ type: "heading_2", heading_2: { rich_text: [{ text: { content: "Active Essays" } }] } },
// Linked database embed (filtered view of DB3)
]
}]
})
Generate:
- View setup guide — instructions for creating database views (views can't be created via API)
- Custom Agent templates — instruction sets for 4 Notion Custom Agents
- Database ID summary — all IDs for reference
After provisioning:
- Open each database and verify all properties exist
- Check relations are bidirectional (dual)
- Open the Research Dashboard page and verify linked databases
- Follow the view setup guide to create views
- Deploy Custom Agents following the deployment guide