Vibeleaderboard
Index / tool
Visit github.com
Category
AI Agents
Rank
No. 1001Tools index
Pricing
Open Source
Type
TOOL
Builder
obra
GitHub
442 stars
Latest release
v2.0.1
Date

About

Lightweight MCP server that gives Claude a private journal for processing thoughts and feelings between turns.

What it does

Private Journal MCP gives an agent persistent, structured notes with semantic retrieval. It separates project-specific material from global reflections, observations, collaborator context, engineering lessons, and general knowledge. Entries become timestamped Markdown with metadata, while locally generated embeddings support natural-language search, section filtering, recent-entry browsing, and full-entry reading.

Why it's ranked here

This is a focused memory system with unusually practical retrieval. Plain Markdown keeps the source material inspectable, while semantic search makes accumulated notes useful beyond exact keyword matches. Project and global storage scopes fit real engineering work. The main reservation is maturity at the edges: older design documents describe a much smaller tool, and runtime diagnostics expose more environment detail than this privacy-sensitive category warrants.

What's good

Writes remain useful without the server because entries use readable Markdown and YAML metadata. Project notes stay near their codebase, while broader knowledge follows the user across projects. Search runs with local embeddings and supports scope, section, date, and result-count controls. Full-entry reads reject non-Markdown targets, enforce journal roots, resolve symbolic links, and validate the resolved location again before reading.

Tradeoffs

Semantic retrieval adds a transformer dependency, model-loading latency, and separate embedding files beside every entry. Model initialization has a thirty-second timeout, and failed embedding generation leaves the journal entry written but not searchable. Startup diagnostics print home, profile, temporary-directory, user, and journal-location environment values to standard error. Storage relies on normal filesystem permissions, not application-level encryption or access control. Some design documents still describe the earlier write-only interface.

How to use it well

Use it for an agent that repeatedly works with the same person or codebases and should recall decisions, failed approaches, preferences, and technical lessons. Search before complex work, then record concise observations and outcomes afterward. Keep sensitive material within a trusted local account. It does not replace encrypted secrets storage, backups, synchronization, collaborative documentation, or a general project database.

Technical notes+

src/index.ts parses --journal-path, emits extensive diagnostics to stderr, and starts the stdio server. src/server.ts registers five MCP tools, although the README documents four, and its embedded server metadata disagrees with package.json. src/journal.ts splits project_notes from user-global sections, writes YAML-frontmatter Markdown, and attempts embedding generation without rolling back successful writes. src/embeddings.ts uses Xenova/all-MiniLM-L6-v2, mean pooling, normalized vectors, JSON .embedding sidecars, and cosine similarity. src/search.ts scans date-named directories, filters stored embeddings, and protects entry reads with extension, root, realpath, and post-symlink containment checks. src/paths.ts supports PRIVATE_JOURNAL_PATH, current-directory and home-directory resolution, then temporary-directory fallbacks. docs/spec.md and docs/implementation-plan.md describe the earlier write-only design, while docs/superpowers/plans/2026-04-11-journal-reflections-observations.md tracks the newer section model. Jest coverage is visible in tests/journal.test.ts, tests/paths.test.ts, and tests/setup.ts, but no server-level test file was provided.

Observed

License
MIT
Primary language
TypeScript targeting Node.js
Packaging and install
npm package with a command-line binary; documented direct execution from GitHub through npx
Interface
stdio-based MCP server with journal writing, semantic search, recent-entry listing, and entry reading tools
Storage
Timestamped Markdown entries with YAML frontmatter and JSON embedding sidecars in project-local or user-global directories
Tests
Repository contains Jest tests for journal writing and path resolution, with the transformer dependency mocked

Read from README.md, package.json, src/index.ts, src/server.ts, src/paths.ts, src/types.ts, src/search.ts, src/journal.ts, src/embeddings.ts, docs/spec.md, docs/implementation-plan.md, docs/superpowers/plans/2026-04-11-journal-reflections-observations.md, tests/setup.ts, tests/paths.test.ts, tests/journal.test.ts.

What it can do

  • Store thoughts and reflections

    Text containing thoughts, feelings, or observationsSaved journal entry

  • Retrieve previous journal entries

    Request for specific entries or time periodsPreviously saved journal content

  • Process emotional context between conversations

    Emotional state or feeling descriptionsPersistent emotional context for future interactions

  • Maintain conversation continuity

    Information about ongoing topics or concernsContextual awareness across multiple chat sessions

  • Track thought patterns over time

    Series of journal entriesAnalysis of recurring themes or emotional patterns

Tags

mcpclaudejournalmemory

Tech Stack

Node.jsTypeScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.