{"_id":"@dkatsiros/notion-brain","_rev":"8-9a8c6e5d7aaa2861609ca9070f7359ca","name":"@dkatsiros/notion-brain","dist-tags":{"latest":"1.6.2"},"versions":{"1.0.0":{"name":"@dkatsiros/notion-brain","version":"1.0.0","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"license":"MIT","_id":"@dkatsiros/notion-brain@1.0.0","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"df36508e27b18a15f6383494fcc8b2257b1fd867","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.0.0.tgz","fileCount":3,"integrity":"sha512-wBWbMaJvLwXo3t35l+RYZVH2b7zJVA58XukGEVa14RENhLVglgoQFWK5FpHy0Qh1INZMI13qzDVeIuPRy811Kg==","signatures":[{"sig":"MEYCIQCFbwlM7OkwyYg1HwBIOHg8uVYBPXQZei1jgjNMk0jZbQIhAOJQlTED0eGIBokhjccGk4kX+C6eeKpvSVTYz4z++W6V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41794},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"87cbf7149695aa5e2622b927ed0ebb598dbd54e0","scripts":{"dev":"tsup --watch","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.0.0_1776084067529_0.8873858635554106","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dkatsiros/notion-brain","version":"1.3.0","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"author":{"name":"Dimitris Katsiros"},"license":"MIT","_id":"@dkatsiros/notion-brain@1.3.0","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"19b570627d685c9423ed0758feb25f13c4238885","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.3.0.tgz","fileCount":4,"integrity":"sha512-TzORMgo7cs9xOeAqwH6Xw7VF90zHXmNgWfV4O2klHRcScrg8AgykpsRhAtOLo9AMLuXjn0pfrPjkDTmpAALyjQ==","signatures":[{"sig":"MEUCIQD/+VEIWnZte6rgQLOLsMYCi0rrIs4j5c3ALTeCjhePqQIga3f81UkMrU2Vhl1yMMRVdDwbxrENZu8GnpcHfRQj28Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56296},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"eb087de576536a867360cda666b298ecf19d4a6b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"repository":{"url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git","type":"git"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.3.0_1776595575177_0.17022499843529926","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@dkatsiros/notion-brain","version":"1.4.0","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"author":{"name":"Dimitris Katsiros"},"license":"MIT","_id":"@dkatsiros/notion-brain@1.4.0","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"5add7951dda882a72af216fb3dcca44f58ee5047","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.4.0.tgz","fileCount":4,"integrity":"sha512-+h70X3RSOsRwAFa+BRR1qJmKg/2GFczGP/sMyur76rYHbPHvoUoqPAKl32hIT74QdwOpX0M5hPP5ew0FSk3PlQ==","signatures":[{"sig":"MEUCIQDgIZxGFYxqFelEIRw6uFog5Yp6ypKpqGXVmRMzVFBFUwIgN52PT+3MaoqIZeanMrQ21FwJHGHSumSw22Jsf1DV0FM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421753},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e6acb278114168fe7fc0fb008167aeec3aac2e2f","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"deprecated":"Missing dep — use 1.4.1+ (or 1.5.0)","repository":{"url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git","type":"git"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.4.0_1776598540284_0.9221113998119621","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@dkatsiros/notion-brain","version":"1.4.1","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"author":{"name":"Dimitris Katsiros"},"license":"MIT","_id":"@dkatsiros/notion-brain@1.4.1","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"a0e07e1de25afcda3cf18078c7043b0f8d34bb2b","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.4.1.tgz","fileCount":4,"integrity":"sha512-BGW2fQ2sNfxvtEJkY2AUtIc3H/hyYWIm+s+R8xQNJ3lybXB0qVHvbw6rX5B5Opc5qDmv3rmxDKvSQXIv1Z/qHA==","signatures":[{"sig":"MEYCIQDccw0HiNUYCpdhwQ6yjRUqAesPufKlWO86KFwJXy7zAQIhAKmXVQd4At2p2hjHdyGZoMOD0zGF72hEaBSDT/GgNLzO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57103},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"1c4644e8c1f6abb7662c57d495ecdad63caa4377","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"repository":{"url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git","type":"git"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@tryfabric/martian":"^1.2.4","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.4.1_1776599886439_0.42260119144927977","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@dkatsiros/notion-brain","version":"1.5.0","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"author":{"name":"Dimitris Katsiros"},"license":"MIT","_id":"@dkatsiros/notion-brain@1.5.0","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"f745b80717e328a98b1566280a2b218a75fc30e2","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.5.0.tgz","fileCount":5,"integrity":"sha512-wzQt246T9nUT31B6ez/oVO/9j22RO9NBnwsi8rPoABrpBPXkpjbRxNJij0tOO4Rkft6mu8xOavPeVxEUcZhHNQ==","signatures":[{"sig":"MEUCIHd9jVWW8QRlzyPt8Q6ixO726MwYyEo29mHHkuY7Vt3mAiEA7v8v+rjF+AslksdfZt964xK/FPhoiHQV0OjX4V2hS/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67471},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f13d93b2d318c6064597af9f158c27497f5dff3a","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"repository":{"url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git","type":"git"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@inquirer/prompts":"^8.4.1","@tryfabric/martian":"^1.2.4","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.5.0_1776605153133_0.3350777232987241","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@dkatsiros/notion-brain","version":"1.6.1","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"author":{"name":"Dimitris Katsiros"},"license":"MIT","_id":"@dkatsiros/notion-brain@1.6.1","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"bin":{"notion-brain":"dist/index.js"},"dist":{"shasum":"41f98739a4fbe7ee82ed2e6843b861100f733295","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.6.1.tgz","fileCount":7,"integrity":"sha512-7GNXjqX6iei5EY+zcBixts9QosUIYhxGkrfT+CrDuvyr7vwQiOVbQwZ2yLXFEL5ruSC4K/MlnPaMgDOpxMK7Eg==","signatures":[{"sig":"MEQCIB3Nyxjh5jjWQy5TF+fz/OaxEysrrsgWpmne0SPpivuFAiBcCV+GybaEY7a2XmyLerznLdPOIgC4LzCTZ6Dg+vnQ0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81860},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"1bec689feb5f65b58688a42f5f30e6bf6ccf2471","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"repository":{"url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git","type":"git"},"_npmVersion":"10.9.1","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","directories":{},"_nodeVersion":"20.13.0","dependencies":{"zod":"^3.24.0","@notionhq/client":"^2.2.0","@inquirer/prompts":"^8.4.1","@tryfabric/martian":"^1.2.4","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-brain_1.6.1_1776609384774_0.9682558789363795","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@dkatsiros/notion-brain","version":"1.6.2","description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","type":"module","bin":{"notion-brain":"dist/index.js"},"main":"./dist/index.js","repository":{"type":"git","url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git"},"bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","author":{"name":"Dimitris Katsiros"},"scripts":{"build":"tsup","dev":"tsup --watch","start":"node dist/index.js","test":"vitest run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"@inquirer/prompts":"^8.4.1","@modelcontextprotocol/sdk":"^1.12.0","@notionhq/client":"^2.2.0","@tryfabric/martian":"^1.2.4","zod":"^3.24.0"},"devDependencies":{"@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.5.0","vitest":"^2.0.0"},"_id":"@dkatsiros/notion-brain@1.6.2","gitHead":"18fa65ecfd59aefab59e7eb32e57fd69a31368a3","_nodeVersion":"20.13.0","_npmVersion":"10.9.1","dist":{"integrity":"sha512-n1fqCOdbyrrRxf8Rm5pOcKB3Vbcx0occZlL/FOijht+AldgagM3qeTrqad879XqnbqeJbX3USAtfx3lEKAXKeg==","shasum":"ebb8c59fe536b41e334d4470e4910bacd83a48cc","tarball":"https://registry.npmjs.org/@dkatsiros/notion-brain/-/notion-brain-1.6.2.tgz","fileCount":7,"unpackedSize":82702,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGt3XaYjJemGUypGSPNiM3Zd0pkbSr3X13RNLxGH3889AiAyUMsvn3H8OI7cogdEMhWTiDHzEQ/bmw9kKFQ72yMpRA=="}]},"_npmUser":{"name":"dkatsiros","email":"dkatsiros@gmail.com"},"directories":{},"maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notion-brain_1.6.2_1776611976194_0.7365468486459232"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-13T12:41:07.386Z","modified":"2026-04-19T15:19:36.454Z","1.0.0":"2026-04-13T12:41:07.662Z","1.3.0":"2026-04-19T10:46:15.303Z","1.4.0":"2026-04-19T11:35:40.434Z","1.4.1":"2026-04-19T11:58:06.592Z","1.5.0":"2026-04-19T13:25:53.283Z","1.6.1":"2026-04-19T14:36:24.928Z","1.6.2":"2026-04-19T15:19:36.353Z"},"bugs":{"url":"https://github.com/dkatsiros-dev/maxbrain-mcp/issues"},"author":{"name":"Dimitris Katsiros"},"license":"MIT","homepage":"https://github.com/dkatsiros-dev/maxbrain-mcp#readme","keywords":["mcp","notion","claude","ai","second-brain","para","productivity"],"repository":{"type":"git","url":"git+https://github.com/dkatsiros-dev/maxbrain-mcp.git"},"description":"MCP server connecting Claude Code, Gemini CLI, and other MCP clients to your Notion second brain (PARA method)","maintainers":[{"name":"dkatsiros","email":"dkatsiros@gmail.com"}],"readme":"# Max Brain MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@dkatsiros/notion-brain.svg)](https://www.npmjs.com/package/@dkatsiros/notion-brain)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE)\n\nConnect your LLM — **Claude Code**, **Gemini CLI**, **Cursor**, or any MCP-compatible client — to your Notion second brain (PARA method). Manage Projects, Tasks, Notes, Goals, and Areas through natural conversation.\n\n## What It Does\n\n- **Search** across all your Notion databases at once\n- **Get & create projects** — filter by status, exclude archived, \"active\" shorthand\n- **Get & create tasks** — filter by project, completion, priority, due dates\n- **Complete tasks** — mark them done from the chat\n- **Get & create notes** — filter by project, area, or tags\n- **Get goals** — list high-level objectives linked to projects\n- **Daily summary** — overdue tasks, upcoming 7 days, recent notes (3 days)\n- **Auto-discovery** — finds your databases automatically from your Notion page structure\n- **Dynamic schema** — reads your actual property names and valid values on startup\n- **Flexible status matching** — your LLM maps \"in progress\", \"wip\", \"active\" to the right values\n\n## Prerequisites\n\n- Node.js 18+ (`node --version`)\n- An MCP-compatible client (Claude Code, Gemini CLI, Cursor, Cline, Continue, Claude Desktop, …)\n- A Notion account with the Max Brain template installed\n- A Notion integration (API key) with access to the template\n\n---\n\n## Quick install (recommended)\n\nOne command:\n\n```bash\nnpx -y @dkatsiros/notion-brain setup\n```\n\nThe interactive setup walks you through:\n1. Pasting your Notion API key\n2. Verifying the integration is connected to your Max Brain page\n3. Picking which LLM client(s) to configure (Claude Desktop / Claude Code / Cursor / Gemini CLI)\n4. Writing the right config to the right file — no manual JSON editing\n\nBefore running, make sure you've duplicated the template into your Notion (see Part 0 below) and created a Notion integration with access to it.\n\n---\n\n## Setup (manual, step-by-step)\n\nIf you'd rather configure things by hand, follow these three parts.\n\n### Part 0 — Duplicate the Notion template\n\n**Public template:** https://dkatsiros.notion.site/Max-Brain-9977fa4ee5e683768e3b816d8fd81466\n\nClick **\"Duplicate\"** (top-right) to clone it into your own Notion workspace. See [`template/README.md`](./template/README.md) for what's inside and [`template/structure-spec.md`](./template/structure-spec.md) for the exact schema.\n\n> **Coming soon (v2):** `notion-brain init` CLI to scaffold the template programmatically — no duplication required.\n\n### Part 1 — Notion API setup (shared)\n\n#### 1.1 Get Your Notion API Key\n\n1. Go to [https://www.notion.so/my-integrations](https://www.notion.so/my-integrations)\n2. Click **\"+ New integration\"**\n3. Name it \"Max Brain\" or similar\n4. Copy the **Internal Integration Secret** (starts with `secret_` or `ntn_`)\n\n#### 1.2 Connect the Integration to Your Template\n\nIn Notion, open your Max Brain top-level page:\n1. Click **\"...\"** menu → **\"Connections\"** → add your integration\n2. When prompted, grant access — this covers all sub-pages and databases\n\n---\n\n### Part 2 — Connect Your LLM Client\n\nPick the section matching your client. The config shape is the same everywhere — only the settings-file location differs.\n\n#### Option A — Claude Code\n\nAdd to your `.mcp.json` (project-level) or `~/.claude/claude_desktop_config.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"notion-brain\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dkatsiros/notion-brain\"],\n      \"env\": {\n        \"NOTION_API_KEY\": \"secret_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n**Auto-approve permissions (recommended)** — avoid a prompt every time a tool runs. Add to `.claude/settings.json` (project) or `~/.claude/settings.json` (global):\n\n```json\n{\n  \"permissions\": {\n    \"allow\": [\n      \"mcp__notion-brain__*\"\n    ]\n  }\n}\n```\n\nRestart Claude Code. You should see `notion-brain` tools available.\n\n---\n\n#### Option B — Gemini CLI\n\nRequires a Gemini Pro / Google account.\n\n1. Install & authenticate:\n   ```bash\n   npm install -g @google/gemini-cli\n   gemini          # runs auth flow on first launch\n   ```\n2. Edit `~/.gemini/settings.json` (create if missing):\n   ```json\n   {\n     \"mcpServers\": {\n       \"notion-brain\": {\n         \"command\": \"npx\",\n         \"args\": [\"-y\", \"@dkatsiros/notion-brain\"],\n         \"env\": {\n           \"NOTION_API_KEY\": \"secret_your_key_here\"\n         }\n       }\n     }\n   }\n   ```\n3. Run `gemini`, then inside the REPL type `/mcp` — you should see `notion-brain` with 10 tools.\n\n> **Note:** Gemini **web** (gemini.google.com) does NOT support MCP. CLI only.\n\n---\n\n#### Option C — Other MCP Clients\n\nSame config shape, different settings-file paths:\n\n| Client | Settings file |\n|---|---|\n| Cursor | `~/.cursor/mcp.json` |\n| Cline (VS Code) | Cline extension settings → MCP Servers |\n| Continue | `~/.continue/config.json` (under `mcpServers`) |\n| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Claude Desktop (Windows) | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n\nDrop the same `mcpServers.notion-brain` block from Option A into the chosen file. Restart the client.\n\n---\n\n## Usage Examples\n\nTalk to your LLM naturally:\n\n```\n\"Show me all my active projects\"\n\"What tasks are due this week?\"\n\"Create a task: Review Q2 OKRs, due Friday, High priority\"\n\"Mark task [id] as done\"\n\"Save a note titled 'Meeting notes' in the Sporty project\"\n\"Give me my daily summary\"\n\"Search for everything related to marketing\"\n\"What are my goals?\"\n\"List notes tagged 'idea'\"\n```\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `search` | Full-text search across all databases |\n| `get_projects` | List projects, filter by status. Supports \"active\" shorthand |\n| `create_project` | Create a new project with status and area |\n| `update_project` | Update project fields (name, status, area, archive) |\n| `get_tasks` | List tasks, filter by project, completion, or status |\n| `create_task` | Create a task with due date, priority, project link, tags |\n| `update_task` | Update task fields (title, status, priority, due, project, tags, assignee) |\n| `complete_task` | Mark a task as done |\n| `snooze_task` | Defer a task until a given date (sets Snooze) |\n| `get_blocked_tasks` | List tasks with a non-empty Blocked by relation |\n| `get_reminders` | List notes with a Remind Me Date (defaults to today/past) |\n| `get_notes` | List notes, filter by project, area, or tag |\n| `create_note` | Create a note with project/area link and tags |\n| `update_note` | Update note fields (title, content, project, area, tags, favorite, archive) |\n| `get_goals` | List goals, filter by status, exclude archived |\n| `get_daily_summary` | Overdue + upcoming tasks + recent notes |\n\n## How Auto-Discovery Works\n\nOn startup, the server:\n1. Searches for your root page (default: \"Max Brain\", configurable via `ROOT_PAGE_NAME`)\n2. Finds the \"Databases\" sub-page within the template structure\n3. Matches databases by title: Projects, Tasks, Notes, Areas/Resources, Goals\n4. Fetches each database's schema to validate properties and extract valid status values\n5. Generates a dynamic description so your LLM always knows the real property names\n\nIf auto-discovery fails (e.g., different template structure), set database IDs manually:\n\n```json\n{\n  \"env\": {\n    \"NOTION_API_KEY\": \"secret_...\",\n    \"PROJECTS_DB_ID\": \"your_id\",\n    \"TASKS_DB_ID\": \"your_id\",\n    \"NOTES_DB_ID\": \"your_id\",\n    \"AREAS_DB_ID\": \"your_id\",\n    \"GOALS_DB_ID\": \"your_id\"\n  }\n}\n```\n\n## Configuration\n\nAll env vars except `NOTION_API_KEY` are optional:\n\n| Env Var | Default | Description |\n|---------|---------|-------------|\n| `NOTION_API_KEY` | (required) | Notion integration secret |\n| `ROOT_PAGE_NAME` | `Max Brain` | Top-level page title to search for |\n| `DATABASES_PAGE_NAME` | `Databases` | Sub-page containing the databases |\n| `MAX_BRAIN_PAGE_ID` | (auto) | Skip search, use this page ID directly |\n| `*_DB_ID` | (auto) | Override auto-discovered database IDs |\n| `PROP_*` | (auto) | Override property names (e.g. `PROP_TASKS_DUE=Deadline`) |\n\n## Troubleshooting\n\n**Run the health check first.** Before digging into any of the issues below, run:\n\n```bash\nnpx -y @dkatsiros/notion-brain doctor\n```\n\nIt validates your API key, auto-discovers your template, and reports every property/option mismatch with concrete fix instructions. Most \"an MCP tool isn't working\" issues are diagnosed in 10 seconds this way.\n\n---\n\n**Server takes a few seconds to start**\n- Normal — auto-discovery makes ~8 API calls on startup (search + schema fetch)\n\n**\"Could not find root page\" error**\n- Make sure the Notion integration is connected to your root page\n- Check `ROOT_PAGE_NAME` matches your page title exactly\n- Set `MAX_BRAIN_PAGE_ID` to skip search\n\n**\"Could not discover database\" error**\n- The database title may not match expected names\n- Set individual `*_DB_ID` env vars as fallback\n\n**\"Unauthorized\" error**\n- Check your `NOTION_API_KEY` starts with `secret_` or `ntn_`\n- Regenerate at https://www.notion.so/my-integrations\n\n**Tools not showing in your client**\n- Restart the client after adding MCP config\n- Validate JSON syntax in the settings file (no trailing commas)\n- Check the client's MCP logs / stderr for startup errors\n- Server may still be connecting (auto-discovery takes a few seconds)\n- Claude Code: run `/mcp` to list loaded servers; Gemini CLI: same command\n\n**Property mismatch warnings on startup**\n- The server validates properties against expected defaults\n- If you renamed properties in Notion, set `PROP_*` env var overrides\n\n## Install from npm\n\nPublished: [`@dkatsiros/notion-brain`](https://www.npmjs.com/package/@dkatsiros/notion-brain) on npm (public).\n\nThe config snippets above use `npx -y @dkatsiros/notion-brain`, which downloads and runs the latest version on demand — no manual install required.\n\nIf you prefer a global install:\n```bash\nnpm install -g @dkatsiros/notion-brain\n```\nThen replace `\"command\": \"npx\"` and `\"args\": [\"-y\", \"@dkatsiros/notion-brain\"]` with:\n```json\n\"command\": \"notion-brain\",\n\"args\": []\n```\n\n## Development\n\n```bash\ngit clone https://github.com/dkatsiros-dev/maxbrain-mcp.git\ncd maxbrain-mcp\nnpm install\nnpm run build\nnpm run typecheck\nnpm test          # smoke tests\nnpm run dev       # watch mode\n```\n\n### Publishing\n\n```bash\nnpm run build\nnpm pack --dry-run   # verify payload: only dist/index.js + README + package.json\nnpm publish --access public --auth-type=web\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}