PLUR

by plur-ai

Recommended
226 stars
9.9k downloads
Not rated
GitHub Website

About

AI agents start every session with amnesia — you re-explain the project, repeat your preferences, and correct the same mistakes over and over. PLUR gives them a memory that persists. Your agent's corrections, preference

Details

Author
plur-ai
GitHub stars
226
Downloads
9,854
Categories
Knowledge Base, AI

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name PLUR
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

One line sets up storage, MCP config, and hooks:

npx @plur-ai/mcp init

Then ask your agent "What's my PLUR status?" to confirm it works. See the README for Cursor, OpenClaw, Hermes, and Python setup.

plur_learn

Create an engram — record a reusable learning, preference, or correction. A write is never suppressed by similarity: exact content-hash duplicates NOOP, and anything merely SIMILAR is written and reported back in `dedup.near_duplicates` (closest existing engrams and their cosine scores) so you can supersede or merge deliberately. High similarity is a reason to look, not a decision — cosine cannot tell a duplicate from a correction of it. Multi-agent note: in an orchestration that spawns subagents, have the PARENT session own plur_learn writes — spawned subagents should return their findings as text for the parent to persist, rather than each calling plur_learn (tool availability is not guaranteed in every subagent context). See plur-ai/plur#281.

plur_recall

Search engrams by topic. Default mode is hybrid (BM25 + local embeddings via RRF) — set mode:"keyword" for BM25-only. Local search plus, when a configured enterprise store is part of the current project/work, one live timeout-bounded recall per remote host merged in (a `remote_stores` block + warning appears when a host is degraded; no host configured or implicated = fully local). Note: a project-scope filter also returns personal-family engrams (local, global, user:*, agent:*); an explicit scope=global recall returns ALL personal-family engrams — wider than scope=global INJECT, which is targeted to the global namespace only.

plur_feedback

Rate an engram's usefulness — trains injection relevance over time. Supports single or batch mode.

plur_forget

Retire an engram by ID or search term — marks it as no longer active without deleting history

plur_packs_uninstall

Uninstall an engram pack by name — removes the pack and all its engrams

plur_status

Return system health — running version, engram count, episode count, pack count, storage root. Optionally filter engram counts by domain prefix and/or creation date.

plur_receipt

Counted report of what your memory retrieved for you: engrams stored, how many were retrieved and how often, which are most relied on, and how much of the store is dormant. Local and read-only; every figure is directly counted, never estimated. IMPORTANT when relaying to the user: `activation_rate` is COVERAGE over the logging window (≈ how much of the store was surfaced), NOT a quality or effectiveness score — it is naturally low and FALLS as more engrams are added, so never present it as "memory is N% effective". A `summary` line is included; prefer relaying that.

plur_doctor

Diagnose the PLUR ENGINE (embedder, hybrid search, remote-store auth) — not hook/MCP wiring. Reports whether the embedding model loaded, whether hybrid search is fully operational, and — for any configured enterprise/remote store — whether its auth is valid (probes /api/v1/me and decodes token expiry), so a dead or soon-to-expire token surfaces instead of hiding behind a "healthy" report. Run this first when recall feels off or team engrams stop syncing. Does NOT check .cursor/mcp.json, .cursor/hooks.json, or the live MCP tool count — for that, run the `plur doctor` CLI command in a terminal (a different, more thorough check with the same name).

plur_session_start

Start a session — inject relevant engrams for your task. Call at the beginning of every session.

plur_session_end

End a session. BEFORE calling this tool, review the conversation and extract learnings: 1. Corrections the user made ("no, use X not Y") → type: behavioral 2. Preferences stated ("always X", "never Y") → type: behavioral 3. Codebase patterns discovered (naming, structure, conventions) → type: architectural 4. Technical facts learned (API quirks, config, gotchas) → type: procedural 5. Terminology defined or clarified → type: terminological Include at least one engram_suggestion if ANYTHING was learned. An empty suggestions array means nothing worth remembering happened — this should be rare.

plur_tensions_purge

Purge all conflict relations from local engrams — removes accumulated false positives from the legacy tension-detection system

plur_admin

Gateway to the 32 PLUR operations that are not top-level tools under the current profile (collapsed into one dispatch tool so Cursor's ~40-tool-per-workspace limit is not exhausted by PLUR alone). A plur_* name missing from tools/list means it moved HERE — not that the MCP is unavailable. Calling convention: { action: "<tool name>", args: { ...that tool's normal arguments } } — same arguments, same validation, same result as a direct call. Example: { action: "plur_recall_hybrid", args: { query: "deploy checklist" } }. Send { action: "help" } for every action's one-line description and argument schema. Actions, grouped — inject: plur_inject, plur_inject_hybrid · packs: plur_packs_discover, plur_packs_export, plur_packs_install, plur_packs_list, plur_packs_preview · stores: plur_stores_add, plur_stores_list · sync: plur_sync, plur_sync_status · other: plur_capture, plur_episode_to_engram, plur_extract_meta, plur_history, plur_ingest, plur_learn_batch, plur_meta_engrams, plur_outbox, plur_pin, plur_profile, plur_promote, plur_recall_hybrid, plur_report_failure, plur_rescope, plur_scopes_discover, plur_session_scope, plur_similarity_search, plur_suggest_scope, plur_tensions, plur_timeline, plur_validate_meta.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "plur": {
            "plur": {
                "command": "npx",
                "args": [
                    "-y",
                    "@plur-ai/mcp"
                ]
            }
        }
    }
}

McpServers

{
    "plur": {
        "command": "npx",
        "args": [
            "-y",
            "@plur-ai/mcp"
        ]
    }
}

AI agents start every session with amnesia — you re-explain the project, repeat your preferences, and correct the same mistakes over and over. PLUR gives them a memory that persists.

Your agent's corrections, preferences, and conventions are stored as plain-text engrams on your own machine — memory you can read, correct, and delete, not weights baked into a model you can't inspect. One store works across Claude Code, Cursor, Windsurf, OpenClaw, and Hermes, so what your agent learns in one tool carries over to the next.

It's local-first and open by design: hybrid search runs fully offline at zero API cost and reaches 98% R@5 on the full LongMemEval benchmark, and the entire engram format is Apache-2.0. Rent the model — own the memory.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.