arbling-brain-reader
A read-only MCP (Model Context Protocol) server that exposes any Arbling-schema
markdown vault — a "Second Brain" — to Claude Code, Cowork, and any other MCP
client. The server has zero Arbling-specific data hardcoded: it reads whatever
path ARBLING_BRAIN_PATH points to. The vault data stays in its own private
repository; this package is the generic plumbing.
Any team can adapt this for their own markdown vault as long as it follows the
Arbling Brain schema conventions (CLAUDE.md + wiki/ + per-folder INDEX.md
- YAML frontmatter on every page).
For team members joining an existing vault (5-step onboarding)
# 1. Make sure you have GitHub access to the private vault repo as a collaborator.
# (CEO / owner adds you in repo Settings → Collaborators)
# 2. Clone the vault locally — this is the data the MCP will serve.
git clone https://github.com/<owner>/<vault-repo>.git ~/<vault-folder>
# 3. Install the MCP server (public, no auth required).
pip install arbling-brain-reader
# or for ephemeral use (no install):
# uvx arbling-brain-reader
# 4. Add to your Claude Code config — see "Claude Code config" below.
# 5. (Optional but recommended) Set up a background refresh so the local
# clone stays in sync with what the team commits — see "Keeping fresh" below.
Claude Code config
Add to ~/.claude.json under mcpServers:
{
"mcpServers": {
"arbling-brain": {
"command": "uvx",
"args": ["arbling-brain-reader"],
"env": {
"ARBLING_BRAIN_PATH": "/absolute/path/to/Arbling-Brain"
}
}
}
}
Or using the CLI:
claude mcp add arbling-brain -s user \
-e ARBLING_BRAIN_PATH=/absolute/path/to/Arbling-Brain \
-- uvx arbling-brain-reader
Windows path example:
"ARBLING_BRAIN_PATH": "C:\\Users\\you\\Downloads\\Arbling-Brain"
Cowork / desktop app config
In the Anthropic desktop app (Claude for Desktop), open Settings → MCP Servers and add:
{
"arbling-brain": {
"command": "uvx",
"args": ["arbling-brain-reader"],
"env": {
"ARBLING_BRAIN_PATH": "/absolute/path/to/Arbling-Brain"
}
}
}
Tool reference
| Tool | What it does | When to call it |
|---|---|---|
brain_status() |
Returns path, page count, last git commit SHA + date | First thing in a session — verifies Brain is reachable and shows how stale it is |
read_brain_page(relative_path) |
Returns full markdown of any Brain page | When you need the complete content of a specific page |
search_brain(query, scope, max_results) |
Full-text search; returns file + line + snippet | When you know what you're looking for but not which page it's in |
list_pages(folder) |
Lists all .md files under a folder | To enumerate a domain before deciding which pages to read |
read_index(folder) |
Returns INDEX.md or README.md for a folder | Fast domain orientation — read the index, then pick which pages to follow |
list_feedback_rules() |
Returns all CEO feedback rules with one-line summaries | Load all behavioral rules at session start |
list_active_plans() |
Returns active plans with title/status/owner/updated | See what initiatives are in flight before starting work |
latest_retrospective() |
Returns the most recent retrospective | Pick up pending items from the last session |
refresh_brain() |
Runs git pull --ff-only on the local clone |
When you suspect the local clone is stale — say "refresh the brain" or "git pull the brain first" |
Keeping the local clone fresh — 3 options
Option A: Manual
cd ~/arbling-brain && git pull
Run before important sessions. No setup required.
Option B: In-session refresh
Ask Claude to call the refresh_brain() MCP tool. Works from any agent session
without leaving the chat. Say:
"refresh the brain" "git pull the brain first" "check the latest feedback"
Option C: Background auto-pull
One-time setup, then forget. Pulls the vault on a schedule.
macOS (launchd) — create ~/Library/LaunchAgents/com.arbling.brain-sync.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.arbling.brain-sync</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/git</string>
<string>-C</string>
<string>/Users/<your-username>/arbling-brain</string>
<string>pull</string>
<string>--ff-only</string>
</array>
<key>StartInterval</key><integer>3600</integer>
<key>StandardOutPath</key><string>/tmp/arbling-brain-sync.log</string>
<key>StandardErrorPath</key><string>/tmp/arbling-brain-sync.log</string>
</dict>
</plist>
Then load it:
launchctl load ~/Library/LaunchAgents/com.arbling.brain-sync.plist
Pulls every hour. Tail /tmp/arbling-brain-sync.log to verify.
Linux (cron) — add to crontab -e:
0 * * * * cd ~/arbling-brain && git pull --ff-only >> /tmp/arbling-brain-sync.log 2>&1
Windows (Task Scheduler) — create C:\Users\<you>\arbling-brain-sync.bat:
@echo off
cd /d "C:\Users\<you>\arbling-brain"
git pull --ff-only >> "%TEMP%\arbling-brain-sync.log" 2>&1
Then in Task Scheduler: Create Basic Task → Trigger: Daily, Repeat every 1 hour
→ Action: Start a program → C:\Users\<you>\arbling-brain-sync.bat.
Privacy
Pages under wiki/ceo/ may contain investor data, runway figures, and
CEO-private strategic information. The MCP server is read-only — it cannot
write or delete any Brain pages. Access to the underlying vault content is
controlled at the GitHub repository level (collaborator list on the private vault
repo), not by this MCP server. Anyone with read access to the vault repo can use
this server to query it.
Development
git clone https://github.com/yev-arbling/arbling-brain-mcp.git
cd arbling-brain-mcp
pip install -e ".[dev]"
pytest
Set ARBLING_BRAIN_PATH to point at a real (or fake) Brain before running the
server:
ARBLING_BRAIN_PATH=/path/to/brain arbling-brain-reader
License
Apache 2.0 — see LICENSE.
Metadata
Release files for arbling-brain-reader 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| arbling_brain_reader-0.1.1.tar.gz | 16.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arbling_brain_reader-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.2 kB
Release files / arbling_brain_reader-0.1.1.tar.gz
| Download URL | arbling_brain_reader-0.1.1.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3da81d3944d8934066445f5b81db49697ffd4dfb96c29793aefa38390461c6d9
|
|
BLAKE2b-256 checksum How to use checksums |
1d21e3426f79a59e3a08bdb92b55ba40caffe00889e9843ff848100dac075954
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / arbling_brain_reader-0.1.1-py3-none-any.whl
| Download URL | arbling_brain_reader-0.1.1-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2c4c83c8602cd63d7cba64f83cc51068c8edd77c16e2598c46d9f0d0537c952
|
|
BLAKE2b-256 checksum How to use checksums |
7a9877990bf126b55af668259b717d2254b5d7248ef747e4e3d3b827039b18ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Security for arbling-brain-reader 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.