Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Private Journal

БесплатноНе проверен

Stores journal entries locally with semantic search using multilingual embeddings, and optionally syncs to a Git remote.

GitHubEmbed

Описание

Stores journal entries locally with semantic search using multilingual embeddings, and optionally syncs to a Git remote.

README

An MCP server that stores journal entries in local files and searches them semantically with multilingual embeddings. Search and embedding inference run locally; the embedding model is downloaded and cached once on first use. Optionally, entries can be auto-synced to a Git remote.

Tools

  • write_journal
    • Stores an entry from content.
    • Optional arg: section (reflections, observations, project_notes, user_context, technical_insights, world_knowledge)
    • section defaults to observations.
  • search_journal
    • Performs semantic search over stored entries.
    • Required arg: query
    • Optional args: limit, section
  • read_journal
    • Reads a full individual Markdown entry by path.
  • list_journal
    • Lists recent entries.
    • Optional args: limit, days

Storage Locations

Journal data

Priority order:

  1. PRIVATE_JOURNAL_PATH
  2. $XDG_DATA_HOME/private-journal
  3. ~/.local/share/private-journal

Model cache

Priority order:

  1. $XDG_CACHE_HOME/private-journal/models
  2. ~/.cache/private-journal/models

The default embedding model is Xenova/multilingual-e5-small.

Install / Build

npm install
npm run build

Run locally:

node dist/index.js

The sync subcommand exits as a no-op when no Git remote is configured.

node dist/index.js sync

Install as a Plugin (recommended)

This repo is a plugin for both Claude Code (.claude-plugin/plugin.json) and Codex (.codex-plugin/plugin.json). Installing it registers the MCP server and the SessionStart sync hook in one step — no manual settings.json/config.toml edits. The MCP server is declared inline in each manifest's mcpServers field (not a root .mcp.json, which would auto-load as a project-scope server). It resolves the plugin's own install path via ${CLAUDE_PLUGIN_ROOT} (Claude Code) / a ./bin relative path with cwd (Codex). The bundled hooks/hooks.json resolves paths the same way.

Build first so dist/ exists, then install:

npm install && npm run build

Claude Code:

/plugin install /absolute/path/to/private-journal-mcp

Codex:

codex plugin install /absolute/path/to/private-journal-mcp

Manual MCP registration (without the plugin)

claude mcp add private-journal -- node /absolute/path/to/private-journal-mcp/dist/index.js

Git Sync (optional)

Git sync is enabled only when PRIVATE_JOURNAL_GIT_REMOTE is set.

export PRIVATE_JOURNAL_GIT_REMOTE="[email protected]:youruser/my-journal.git"

Recommended prerequisites:

  • You must already be authenticated for that remote via gh auth login or equivalent Git credentials.

Behavior:

  • Right after a write_journal save, it attempts commit + pull --rebase + push on a best-effort basis.
  • node dist/index.js sync handles pull and pushing any pending commits before a session starts.

SessionStart sync hook

When installed as a plugin, the SessionStart sync hook is registered automatically (see hooks/hooks.json) — nothing to configure. It exits as a no-op unless PRIVATE_JOURNAL_GIT_REMOTE is set.

To wire it up manually instead, add to ~/.claude/settings.json:

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node /absolute/path/to/private-journal-mcp/dist/index.js sync"
          }
        ]
      }
    ]
  }
}

Conflict Handling

  • Distinct entries mostly coexist automatically because filenames include a microsecond suffix.
  • When two entries share a filename, the one with the larger frontmatter timestamp wins.
  • If the timestamp is identical, the local version takes precedence.
  • The .embedding file may be regenerated based on the adopted Markdown.

from github.com/baleen37/private-journal-mcp

Установка Private Journal

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/baleen37/private-journal-mcp

FAQ

Private Journal MCP бесплатный?

Да, Private Journal MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Private Journal?

Нет, Private Journal работает без API-ключей и переменных окружения.

Private Journal — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Private Journal в Claude Desktop, Claude Code или Cursor?

Открой Private Journal на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Private Journal with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development