Skip to main content
Glama

Workbrain

Your personal operating layer for AI-assisted work.

Workbrain is a local Model Context Protocol (MCP) server for Claude Code. It gives Claude persistent context about how you work, what you're focused on this week, and what you've shipped — without sending that data to the cloud or sharing it with your team.


Overview

Most AI coding setups tell the model how to behave (rules, prompts). Workbrain tells it what you're doing — and lets it keep that picture up to date as you work.

Layer

What it stores

Example

Playbook

How you work

Bug-fix approach, communication style

Agenda

What you're focused on

This week's priorities and deliverables

Work log

What you shipped

Summaries linked to agenda items

Commits

Raw git activity

Auto-captured via optional hook

Everything lives on your machine in ~/.workbrain/. Nothing is committed to project repos unless you choose to.


Related MCP server: acheron-mcp-server

Features

  • Unified context — get_context returns playbook, agenda, work log, and commits in a single call

  • Living weekly board — Claude can add, update, and complete agenda items during a session

  • Automatic work logging — marking an agenda item done creates a linked work log entry

  • Local-first & private — SQLite + markdown on disk; no accounts, no cloud sync required

  • Cross-project — registered at user scope; follows you across every repo

  • Git integration — optional post-commit hook records commits automatically

  • CLI — check your week from the terminal without opening Claude


Requirements

  • Node.js 22+ (uses built-in node:sqlite — no native dependencies)

  • Claude Code CLI or extension (Cursor, VS Code, or terminal)


Quick start

git clone https://github.com/himanshu-sharma-55/work-brain.git
cd work-brain
npm install
node bin/install.js

Register the MCP server (server name is workbrain; repo folder is work-brain):

claude mcp add --scope user workbrain -- node /absolute/path/to/work-brain/src/index.js

Set WORKBRAIN_ROOT once per machine:

# macOS / Linux — add to ~/.zshrc or ~/.bashrc
export WORKBRAIN_ROOT=/absolute/path/to/work-brain
# Windows PowerShell (persists for new terminals)
setx WORKBRAIN_ROOT "C:\path\to\work-brain"

Verify in Claude Code: type /mcp and confirm workbrain is connected.

Edit your playbook: ~/.workbrain/playbook.md


How it works

┌─────────────────────────────────────────────────────────┐
│                     Claude Code                         │
│              (Cursor / VS Code / CLI)                   │
└────────────────────────┬────────────────────────────────┘
                         │ MCP (stdio)
                         ▼
┌─────────────────────────────────────────────────────────┐
│                  Workbrain Server                       │
│  get_context · get_agenda · log_work · get_commits …   │
└────────────────────────┬────────────────────────────────┘
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
   playbook.md       data.db      git hook (optional)
   (how you work)   (agenda,       (commit capture)
                     work log,
                     commits)
          └──────────────┴──────────────┘
                         │
                    ~/.workbrain/
                    (or WORKBRAIN_HOME)

Claude calls Workbrain tools on demand — your rules aren't loaded into every message, keeping context lean until it's needed.


MCP tools

Tool

Description

get_context

Recommended entry point. Playbook, current agenda, recent work log, and commits

get_playbook

Read your personal playbook

update_playbook

Replace or append to your playbook

get_agenda

Weekly board: focus, coming up, expected

add_agenda_item

Add an item to the board

update_agenda_item

Update status, title, estimate, etc. Auto-logs work when marked done

delete_agenda_item

Remove an agenda item

rollover_agenda

Move unfinished items from last week to the current week

get_weekly_summary

Agenda stats, work log, and commits for a given week

get_work_log

Recent work summaries

log_work

Log what you shipped (optionally linked to an agenda item)

get_commits

Recent commits captured by the git hook

Add this to your personal Cursor or Claude rules:

At the start of a work session, call get_context. When we finish a clear task, update the agenda and log work. Marking an agenda item done is enough — it auto-logs.

Example prompts

You say

Workbrain does

"What's my focus this week?"

Calls get_context

"Mark CSV export as in progress"

Calls update_agenda_item

"What did I ship this week?"

Calls get_weekly_summary

"Roll over unfinished items"

Calls rollover_agenda

"How do I usually fix bugs?"

Reads playbook


CLI

Check status without Claude:

node bin/workbrain.js status     # current week at a glance
node bin/workbrain.js summary    # full week recap
npm run status                   # shortcut via package script

Configuration

Environment variables

Variable

Default

Description

WORKBRAIN_HOME

~/.workbrain

Data directory (playbook, database)

WORKBRAIN_ROOT

—

Path to the work-brain repo; required for git hooks

Data directory layout

~/.workbrain/
├── playbook.md    # How you work (markdown)
├── data.db        # Agenda, work log, commits (SQLite)
└── git-template/  # Git hook template (created by install)

Custom data directory

export WORKBRAIN_HOME=/path/to/shared/workbrain-data
claude mcp add --scope user workbrain -- \
  env WORKBRAIN_HOME=/path/to/shared/workbrain-data \
  node ~/work-brain/src/index.js

Git integration

node bin/install.js configures a global git template so new repositories automatically include the post-commit hook.

For an existing repository:

export WORKBRAIN_ROOT=/path/to/work-brain   # macOS/Linux shell profile
# Windows: setx WORKBRAIN_ROOT "C:\path\to\work-brain"
node /path/to/work-brain/bin/setup-git-hook.js /path/to/repo

Each commit records hash, repo, branch, message, and files changed into ~/.workbrain/data.db.

Using husky?

setup-git-hook.js writes to .git/hooks/post-commit. Repos that use husky set core.hooksPath to .husky/, so Git ignores .git/hooks/ and commits will not be recorded (you'll see 0 commits in status).

Fix: add (or append) this line in .husky/post-commit:

node "$WORKBRAIN_ROOT/hooks/record-commit.js" || true

Confirm with git config core.hooksPath. If it points into .husky (husky v9 prints .husky/_), use the path above instead of setup-git-hook.js.

To keep it personal, add .husky/post-commit to .git/info/exclude so it's never committed.


Multi-machine setup

Clone and register on each machine:

git clone https://github.com/himanshu-sharma-55/work-brain.git ~/work-brain
cd ~/work-brain && npm install && node bin/install.js
claude mcp add --scope user workbrain -- node ~/work-brain/src/index.js

Each machine maintains its own ~/.workbrain/ by default. To sync data:

Method

Approach

Cloud folder

Symlink ~/.workbrain to iCloud, Dropbox, etc.

Dotfiles repo

Track playbook.md; copy data.db periodically

Shared path

Set WORKBRAIN_HOME to the same location on both machines


Connect Claude Code

Workbrain registers as a user-scoped MCP server via the Claude Code CLI. That works the same whether you run Claude Code in the terminal, VS Code, or Cursor.

  1. Install Claude Code (CLI and/or editor extension)

  2. Run claude mcp add from Quick start

  3. In Claude Code, type /mcp and enable workbrain

Workbrain does not use editor-specific MCP config files (for example Cursor's ~/.cursor/mcp.json). Keep registration on --scope user so it follows you across projects.


Privacy & scope

Workbrain is designed for individual use:

  • MCP is registered with --scope user — not tied to any project repo

  • Personal data never leaves your machine unless you sync it yourself

  • Do not commit .mcp.json to shared team repositories


Troubleshooting

Issue

Resolution

claude command not found

Install Claude Code CLI or use the extension terminal

Server missing from /mcp

Re-run claude mcp add --scope user workbrain -- node /path/to/work-brain/src/index.js

Broken path after moving the repo

claude mcp remove workbrain, then re-add with the updated path

Commits not recording / 0 commits

Verify WORKBRAIN_ROOT is set. If git config core.hooksPath points into .husky (v9: .husky/_), put the hook in .husky/post-commit — not .git/hooks/. Keep it personal with .git/info/exclude.

Server won't start

Run node src/index.js manually; check Node version (node -v ≥ 22)


Development

npm install
npm start              # run MCP server (stdio)
npm run install:local  # install + init data dir + git template
npm run status         # CLI status check

For local development with a global CLI alias:

cd work-brain && npm link
claude mcp add --scope user workbrain -- workbrain

Naming

Name

Used for

work-brain

GitHub repository and local clone directory

workbrain

MCP server name, npm package, data dir (~/.workbrain)

WORKBRAIN_*

Environment variable prefix


License

LICENSE

Available Tools

12 tools
add_agenda_itemC

Add an item to the weekly agenda board.

Inputs: title (required), type, week, notes, +2 more.

delete_agenda_itemB

Remove an item from the weekly agenda.

Inputs: id (required).

get_agendaA

Get the weekly agenda: focus items, coming up, and expected deliverables.

Inputs: type, week.

get_commitsC

Get recent git commits recorded by the post-commit hook.

Inputs: days.

get_contextA

Get full personal context in one call: playbook, this week's agenda, recent work log, and commits. Call at session start.

Inputs: days.

get_playbookA

Read how the user works: approach, bug-fix style, communication preferences.

Inputs: no named parameters.

get_weekly_summaryA

Summary for a week: agenda stats, work log entries, and commits for that week.

Inputs: week.

get_work_logB

Get recent work summaries logged by Claude or hooks.

Inputs: days, project.

log_workC

Log a work summary after completing something.

Inputs: summary (required), type, project, commit_hash, +1 more.

rollover_agendaA

Move unfinished items from a previous week into the current week (defaults: last week → this week).

Inputs: to_week, from_week.

update_agenda_itemB

Update an agenda item: status, estimate, title, etc. Marking done auto-logs work unless log_on_done=false.

Inputs: id (required), type, notes, title, +4 more.

update_playbookB

Update the personal playbook. Use append=true to add a section without replacing the whole file.

Inputs: content (required), append.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 12 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: agenda items have get/add/update/delete, playbook has get/update, work log has log/get, and get_context/get_weekly_summary are clearly composite views. No two tools appear to do the same thing.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., get_agenda, add_agenda_item, update_playbook, rollover_agenda). The verb 'rollover' is unconventional but still follows the same structure, and there is no mixing of naming styles.

    Tool Count5/5

    12 tools is well within the ideal 3-15 range and each tool covers a distinct function needed for personal work management: playbook, agenda, work log, commits, and summaries. No tool feels redundant or missing.

    Completeness4/5

    The agenda has full CRUD plus rollover, playbook has read/update, and work log has log/read with summaries and commit retrieval. The main gap is that work log entries cannot be updated or deleted, which could be an issue if a log entry contains errors.

    Maintenance

    ActivitySlowing
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      Provides a persistent "second brain" for Claude featuring zero-latency hot caching, semantic cold storage, and automatic pattern mining from activity logs. It enables users to store, search, and automatically extract project facts and code patterns for enhanced contextual recall.
      16
      195 PyPI
      15
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Persistent memory + intelligent context for Claude Code. Save and reuse solutions, decisions, and patterns across projects.
      43
      7
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Gives Claude Code persistent cross-session memory with semantic search over saved facts, decisions, and journals, alongside automatic detection and classification of user corrections as trackable behavioral patterns. It also extracts behavioral signals from sessions and evolves self-authored frameworks over time, so the assistant develops judgment that carries forward between conversations — all local, with no cloud or API key required.
      6 npm
      MIT