Skip to content

Latest commit

 

History

History
113 lines (91 loc) · 3.38 KB

File metadata and controls

113 lines (91 loc) · 3.38 KB

Provisioning Walkthrough

Step-by-step guide to provisioning the 4-database academic research workspace using Notion MCP.

Prerequisites

  • Notion workspace with a parent page (e.g., "Academic Research")
  • Notion MCP connection (OAuth via Cowork or Claude Desktop)

5-Pass Provisioning

Pass 1: Create Databases

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" } })

Pass 2: Wire Relations

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)

Pass 3: Create Page Templates

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" } }
    }
  }]
})

Pass 4: Create Dashboard Pages

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)
    ]
  }]
})

Pass 5: Output Configuration

Generate:

  1. View setup guide — instructions for creating database views (views can't be created via API)
  2. Custom Agent templates — instruction sets for 4 Notion Custom Agents
  3. Database ID summary — all IDs for reference

Verification

After provisioning:

  1. Open each database and verify all properties exist
  2. Check relations are bidirectional (dual)
  3. Open the Research Dashboard page and verify linked databases
  4. Follow the view setup guide to create views
  5. Deploy Custom Agents following the deployment guide