MCP server for Thomas Frank's Ultimate Brain Notion system
Project description
MCP Server for Ultimate Brain
An MCP server for managing Thomas Frank's Ultimate Brain Notion system. Provides 30 workflow-oriented tools for Tasks, Projects, Notes, Tags, and Goals using the PARA methodology, plus a daily_review_snapshot consolidator that returns everything a daily review needs in one call.
Setup
-
Create a Notion integration and share your Ultimate Brain databases with it.
-
Run the setup command for your client. It will auto-discover your data sources from Notion and write the config file.
Claude Code
# Project scope (writes .mcp.json in current directory)
uvx --from ultimate-brain-mcp ultimate-brain-setup --client claude-code --scope project
# User scope (writes ~/.claude.json)
uvx --from ultimate-brain-mcp ultimate-brain-setup --client claude-code --scope user
Claude Desktop
uvx --from ultimate-brain-mcp ultimate-brain-setup --client claude-desktop
You can also pass your Notion secret via environment variable to skip the prompt:
NOTION_INTEGRATION_SECRET=secret_... uvx --from ultimate-brain-mcp ultimate-brain-setup --client claude-code --scope project
Tools
Tasks (6)
search_tasks— Filter by name, status, project, priority, due date (due_onfor a single day), My Day, labels, parent task, completion datecreate_task— Create with name, status, due, priority, project, labels, tag_ids, locationupdate_task— Patch any task properties (incl. tag_ids and location)complete_task— Mark done with recurrence handlingget_my_day— My Day tasks sorted by priorityget_inbox_tasks— Unprocessed tasks needing triage
Projects (4)
search_projects— Filter by status, tagget_project_detail— Properties + task breakdown + recent notescreate_project— Create with name, status, deadline, tag, goalupdate_project— Patch project properties
Notes (4)
search_notes— Filter by type, project, tag, favorite, dateget_note_content— Properties + page body as plain textcreate_note— Create with type, project, tags, URLupdate_note— Patch note properties
Tags (3)
search_tags— Filter by PARA typecreate_tag— Create with name, type, parentupdate_tag— Patch tag properties
Goals (4)
search_goals— Filter by statusget_goal_detail— Properties + linked projectscreate_goal— Create with name, status, deadlineupdate_goal— Patch goal properties
Cross-Cutting (3)
daily_summary— My Day, overdue, inbox, active projects/goals (counts only)archive_item— Archive any UB itemset_page_content— Replace or append page body content (markdown → blocks)
Workflow Consolidators (2)
daily_review_snapshot— One call returns current time + IANA timezone, all five daily-review buckets (completed today, overdue or due today, due tomorrow, on My Day, inbox), the deduplicated outstanding union, project + area-tag lookup tables, and the live Tasks schema (Location property type, valid options, Labels options). Replaces ~7 separate read calls.bulk_update_tasks— Apply multiple task patches concurrently with per-row results. Never raises on a single failure — surfaces each failed row through the results list so the caller can retry or skip.
Generic (4)
query_database— Query any secondary databaseget_page— Fetch any page by IDget_page_content— Page properties plus body as plain textupdate_page— Update any page properties
Configuration
Set these in .env (or pass via the MCP client config):
| Var | Required | Purpose |
|---|---|---|
NOTION_INTEGRATION_SECRET |
yes | Notion integration token |
UB_TASKS_DS_ID, UB_PROJECTS_DS_ID, UB_NOTES_DS_ID, UB_TAGS_DS_ID, UB_GOALS_DS_ID |
yes | Primary data source IDs |
UB_TIMEZONE |
optional | IANA name (e.g. Europe/London). Used by daily_review_snapshot to resolve now/today/tomorrow. Falls back to TZ, then UTC. |
UB_*_DS_ID (Work Sessions, Books, etc.) |
optional | Secondary data sources surfaced via query_database |
Development
uv run pytest tests/
uv run mcp dev src/ultimate_brain_mcp/server.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ultimate_brain_mcp-0.5.0.tar.gz.
File metadata
- Download URL: ultimate_brain_mcp-0.5.0.tar.gz
- Upload date:
- Size: 120.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1b25f2a57476c036792db27b18e23bd1a5c2b881fdbbe1968aadec4d634bbdb
|
|
| MD5 |
2a757e2761d52e904b2a1b3411e5b476
|
|
| BLAKE2b-256 |
c764a7e8621f7a091a8e8e50140e2cbd56641e11ef115bdba3a6c80da415b1b4
|
File details
Details for the file ultimate_brain_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: ultimate_brain_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a563385ace0c0bb6ba320fa6b6e87d351dbca7f89b3a9a7459ebb42ca949804
|
|
| MD5 |
6cb215c7eedfb975eb32f1d417870c54
|
|
| BLAKE2b-256 |
889fbf9079b4358732f59b66943d0c6551aabc1b6414ac36a1985b59c9152915
|