One journal file per project that your AI reads at session start and updates as it works.
Runs on your machine from its package; the steps are below.
Not assessed yet.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Distributed as an MCP bundle (`https://github.com/marstudio360/vibedna-journal-mcp/releases/download/v1.0.3/vibedna-journal-mcp-1.0.3.mcpb`) — download it and import the bundle in your MCP client.
One journal file per project that your AI reads at session start and updates as it works.
Journal gives every project one plain markdown file (*_JOURNAL.md). Your AI reads it when a session starts and appends to it as work ships: decisions with their reasons, bugs with root cause and fix, current state, roadmap, and a handoff note for the next session. Ranked full-text search finds an entry across every project's journal at once. One optional tool adds a rule to your CLAUDE.md so Claude Code keeps the habit without being asked.
mcp package.Homepage: https://vibedna.ai/store/journal
Catch up on a project
| Tool | What it does |
|---|---|
journal_handoff_brief(name) | Short catch-up: header plus the latest entries |
journal_read(name, max_kb) | Full journal contents |
journal_read_section(name, section) | One section, e.g. Current state or Handoff for next session |
journal_list_sections(name) | The H2 sections of a journal |
journal_list(project, last_days) | List the journals in the index |
Log work as it ships
| Tool | What it does |
|---|---|
journal_append(name, entry, tag) | Timestamped entry |
journal_update_section(name, section, new_content, mode) | Replace, append or prepend a section |
journal_create(name, project_dir, body) | New journal with the standard sections |
Search
| Tool | What it does |
|---|---|
journal_search(query, project) | Ranked full-text search (SQLite FTS5) across all journals, with snippets |
journal_recent_changes(last_hours) | Journals updated lately |
journal_stats() | Totals, biggest and freshest journals |
journal_browse(domain, tier, kind, tag) | Browse the local library by metadata |
journal_market_index(kind) | Local feed of journals of one kind, with metadata |
journal_overlap_check(name) | Find journals that overlap with this one |
Setup
| Tool | What it does |
|---|---|
journal_index_refresh() | Rescan the roots for journal files |
journal_config_add_root(path) | Add a folder to scan |
journal_get_claude_rule() | The recommended CLAUDE.md rule text |
journal_install_rule(scope, confirm) | Install that rule (preview unless confirm=True) |
journal_backup_to_drive(name, remote, remote_folder) | Copy journals to your own rclone remote (optional) |
check_for_update() | Compare this copy with the published version |
vibedna_info() | Product metadata |
Marketplace (optional, reaches vibedna.ai)
| Tool | What it does |
|---|---|
journal_market(query, domain) | Browse the VibeDNA journal shelf |
journal_pair(token) | Link this install to a vibedna.ai account |
journal_get(slug) | Download a journal you own, or get a checkout link for one you don't |
journal_library() | List the journals you own |
git clone https://github.com/marstudio360/vibedna-journal-mcp
cd vibedna-journal-mcp
pip install -r requirements.txt
JOURNAL_ROOTS is the list of folders to scan for journal files, separated by ;. Without it, Journal scans ~/Desktop and ~/Documents.
claude mcp add journal --scope user -e JOURNAL_ROOTS="/path/to/your/projects" -- python /absolute/path/to/vibedna-journal-mcp/server.py
Or in a project's .mcp.json:
{
"mcpServers": {
"journal": {
"command": "python",
"args": ["/absolute/path/to/vibedna-journal-mcp/server.py"],
"env": { "JOURNAL_ROOTS": "/path/to/your/projects" }
}
}
}
Then ask Claude: "Install the journal CLAUDE.md rule globally." That is the step that makes it read and write the journals on its own.
Add the same mcpServers block to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).
Add the same mcpServers block to claude_desktop_config.json (Settings > Developer > Edit Config), then restart Claude Desktop.
INSTALL.md is a step-by-step guide written so you can paste it into an AI chat and let the AI do the install.
| Variable | Default | What it does |
|---|---|---|
JOURNAL_ROOTS | ~/Desktop;~/Documents | Folders to scan for *JOURNAL*.md files |
JOURNAL_HOME | ~/.journal | Where the search index and optional config live |
JOURNAL_TRANSPORT | stdio | http serves streamable HTTP on PORT, for cloud hosting only |
journal_create starts every journal with these sections:
## Vision / Why this exists
## Current state
## Roadmap
## Decisions log
## Incidents
## Handoff for next session
## Recent entries
See SECURITY.md for what the server reads, writes and sends.
MIT, see LICENSE. Copyright (c) 2026 VibeDNA.
Support: admin@vibedna.ai