Skip to content
Agentmart
Submit a tool

Plur

Open, local-first engram memory for AI agents: read, correct, delete; shared.

Connector by plur-ai · GitHub account verified by the MCP Registry

IndexedApache-2.0Local (stdio)★ 308
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/plur-ai-plur

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Open, local-first engram memory for AI agents: read, correct, delete; shared over MCP.

Use cases: agent-memory

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Runs code on install

Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.

Tools
21 read · 14 write · 8 delete · 10 not yet classified
Secrets
None asked for
Install scripts
Runs code on install
Runs as
Node.js package

Tools by what they do 53

Read from the source code; the running server may list different tools.

Read 21 · Look things up without changing anything.

  • plur_extract_meta
  • plur_history
  • plur_ingest
  • plur_inject
  • plur_inject_hybrid
  • plur_meta_engrams
  • plur_packs_discover
  • plur_packs_list
  • plur_packs_preview
  • plur_profile
  • plur_provenance
  • plur_recall
Show 9 more tools
  • plur_recall_hybrid
  • plur_receipt
  • plur_similarity_search
  • plur_status
  • plur_stores_list
  • plur_suggest_scope
  • plur_sync_status
  • plur_timeline
  • recall

Write 14 · Create, change, send or run things.

  • learn
  • packs
  • plur_learn
  • plur_learn_batch
  • plur_outbox
  • plur_packs_install
  • plur_pin
  • plur_rescope
  • plur_scopes_discover
  • plur_session_start
  • plur_stores_add
  • plur_sync
Show 2 more tools
  • sync
  • sync-status

Delete 8 · Delete, drop, revoke or wipe things.

  • plur_admin
  • plur_doctor
  • plur_forget
  • plur_packs_uninstall
  • plur_report_failure
  • plur_tensions
  • plur_tensions_purge
  • plur_validate_meta

Not yet classified 10 · We could not tell from the name and description.

  • forget
  • plur
  • plur_capture
  • plur_episode_to_engram
  • plur_feedback
  • plur_packs_export
  • plur_promote
  • plur_session_end
  • plur_session_scope
  • plur-memory

Files it touches

  • Any path the agent passes to its tools

Tools (53)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • forget

    Retire a PLUR memory by ID

  • learn

    Save something to PLUR memory

  • packs

    Manage knowledge packs: list, install <path>, uninstall <name>

  • plur

    PLUR memory status and diagnostics.

  • plur_adminAdmin dispatch

    Description is built at runtime.

  • plur_captureCapture episode

    Append an episode to the episodic timeline — records what happened in a session

  • plur_doctorDoctor

    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 (…

  • plur_episode_to_engramEpisode to Engram

    Promote an episode to a persistent episodic engram — useful when a session event deserves long-term memory

  • plur_extract_metaExtract meta-engrams

    Extract meta-engrams from stored engrams using the 6-stage pipeline (structural analysis → clustering → alignment → formulation → hierarchy). Requires an LLM API endpoint.

  • plur_feedbackFeedback

    Rate whether a memory shown to you was useful. This trains what surfaces next time, so rate honestly when an injected memory helped or misled.

  • plur_forgetForgetcan change or delete data

    Retire an engram that is wrong or out of date, by its ID. Memory you can correct is the point; do not leave a known-wrong memory in place.

  • plur_historyHistoryread-only

    View the event-sourced history of an engram or all recent history — shows creation, updates, feedback, and evolution events

  • plur_ingestIngest

    Extract engram candidates from content using pattern matching — optionally auto-save them

  • plur_injectInject (BM25)read-only

    Get a scored context injection for a task — returns directives and considerations within token budget

  • plur_inject_hybridInject (hybrid)read-only

    Hybrid injection — BM25 + embeddings for better context selection. Falls back to BM25 if embeddings unavailable. Best default for injection.

Show 38 more tools
  • plur_learnLearn

    Store a correction, preference, or durable fact so it is remembered in later sessions. Use when the user corrects you or states how they want things done.

  • plur_learn_batchLearn (batch)

    Create many engrams in one call — the batch form of plur_learn. Accepts an array of engram objects and writes them sequentially through the SAME dedup + policy pipeline as plur_learn (content-hash NOOP → semantic recall → LLM duplicate check, or local cosine REPORTING when no LLM is configured). A batch NEVER overwrites an existing memory: when the duplicate checker says an item should replace or be merged into an existing memory, the item is saved as its own memory instead (decision ADD), linked to that memory, and its result carries `likely_duplicate_of` { id, checker_decision: UPDATE | MERG…

  • plur_meta_engramsList meta-engramsread-only

    List existing meta-engrams (engrams with META- prefix) with their structural templates and confidence scores

  • plur_outboxOutbox

    Inspect the remote-write outbox — team-scoped writes queued locally because their remote store was unreachable, plus any other queued remote operation core lists (e.g. a retirement still to be applied on the remote). Read-only by default; pass flush:true to retry them now. Entries never include the target URL or token.

  • plur_packs_discoverDiscover packsread-only

    Browse available engram packs from the registry — discover curated expertise packs to install

  • plur_packs_exportExport pack

    Export engrams as a shareable thematic pack with privacy scanning and integrity hash. Filters out private and secret-containing engrams automatically. Output goes to ~/plur-packs/<name> by default.

  • plur_packs_installInstall pack

    Install an engram pack from a local directory path or an https:// URL pointing to a .tar.gz archive. Runs a mandatory security scan (blocks if secrets found), detects conflicts with existing engrams, and records install metadata in the registry. Call plur_packs_preview first to show the user what the pack contains.

  • plur_packs_listList packsread-only

    List all installed engram packs with integrity hashes, install dates, and source paths

  • plur_packs_previewPreview packread-only

    Preview a pack before installing — shows manifest, engram list, security scan, and warnings. Always call this before plur_packs_install to let the user review what they are importing. Accepts a local directory path or an https:// URL pointing to a .tar.gz archive.

  • plur_packs_uninstallUninstall packcan change or delete data

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

  • plur_pinPin

    Toggle the always-load (pinned) flag on an engram. Pinned engrams bypass the keyword-relevance gate and load on every session regardless of overlap with the task. Use sparingly — meta-rules, safety conventions, core operating principles; a fact you need only sometimes should be recalled, not pinned. The pinned set has a QUOTA (injection_budget × injection.pinned_ratio): "always-load" only means anything if the set fits, so a pin that would exceed it is REFUSED with the current usage and unpin suggestions rather than silently dropping something already pinned. Resolve it by unpinning something …

  • plur_profileCognitive profileread-only

    Generate or retrieve a cognitive profile — a narrative summary synthesized from stored engrams. Cached for 24h.

  • plur_promotePromote

    Activate candidate engrams so they appear in injection results. Status change only — it does NOT move an engram to another scope; to promote an engram into a team/shared scope use plur_rescope (#676).

  • plur_provenanceWhere a memory came fromread-only

    Where a memory came from: who asserted it, whether a person stated it or a model worked it out, when, what it came from, and whether you may reuse it. Read-only. Accepts an engram id or a search term — nobody remembers ids. IMPORTANT when relaying to the user: report the `not_recorded` list as prominently as the rest. A memory written before provenance was captured genuinely cannot say who asserted it, and presenting the record as complete would make it look more authoritative than it is. Nothing here is guessed. Prefer relaying `summary`; ask for format "record" only when a machine-readable d…

  • plur_recallRecallread-only

    Search stored memory for engrams relevant to a query. The most relevant memories are already in your system prompt; use this for a targeted lookup beyond them.

  • plur_recall_hybridRecall (hybrid) [deprecated alias]read-only

    [Deprecated since 0.16 — use plur_recall (mode defaults to hybrid). Alias kept for backwards compatibility; removal earliest 0.18.] Hybrid search — BM25 + local embeddings merged via Reciprocal Rank Fusion, plus the live enterprise-store recall leg when one is configured and project-relevant, or when the scope is a personal user: scope matching the own scope of a configured remote store (exact, case-insensitive; adds only that store, while dial: always and a trusted project remote still apply).

  • plur_receiptMemory receiptread-only

    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. NOT plur_provenance: this c…

  • plur_report_failureReport Failurecan change or delete data

    Report a failure for a procedural engram — triggers procedure evolution via LLM if configured. Only works on procedural engrams. Max 3 revisions per procedure per 24h.

  • plur_rescopeRescope

    Move existing engram(s) to a different scope (#676) — e.g. promote a personal/local engram into a team scope so it reaches the shared store. Bypasses the content-hash dedup that makes a plur_learn re-emit a silent no-op: rescope matches by id and moves the engram. Remote targets (a configured writable store scope): a copy is pushed via the routed write path (the server assigns the id, provenance is kept in the copy's source field) and the local original is soft-retired with a superseded_by link — set keep_local:true to keep it active. Local targets (local, global, project:*): the scope is rewr…

  • plur_scopes_discoverDiscover scopes

    Discover which scopes your remote token is authorized for via the enterprise server (GET /api/v1/me), and which of those are not yet registered locally. Read-only by default; pass register:true to register all authorized-but-unregistered scopes in one step. Only shared-family scopes (group:/project:/space:/team:/org:/public) are auto-registered — personal-family scopes (global/local/user:*/agent:*) advertised by /me are skipped and surfaced in the result, and scopes the user has dismissed are respected (NOT registered by the batch path; register one individually via the CLI `plur scopes regist…

  • plur_session_endSession 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_session_scopeSession scope

    Adjust or inspect the session default write scope MID-session — narrow, expand, or switch context without restarting the session (#243). op:"set" replaces the default scope used by unscoped plur_learn calls for the rest of the session AND the org context that decides which enterprise hosts plur_recall dials (it needs an open session: with none open it refuses, since no id-less call reads a session-less slot); op:"show" reports the effective scope and how it was derived (project config, session_start default, or a mid-session set); op:"clear" reverts to the scope the session started with. Use w…

  • plur_session_startSession Start

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

  • plur_similarity_searchSimilarity searchread-only

    Search engrams by cosine similarity, returning scores. Used for dedup classification — scores > 0.9 indicate duplicates, 0.7-0.9 related, < 0.7 new.

  • plur_statusStatusread-only

    Report memory-system health and this session's memory activity counters. Use when asked why something was or was not remembered.

  • plur_stores_addAdd store

    Register an additional engram store. Either filesystem (path) or remote (url+token, e.g. PLUR Enterprise). One remote URL can host multiple scopes — call once per team scope you are authorized for; each registers independently. Returns status: "added" or "already_registered".

  • plur_stores_listList storesread-only

    List all configured engram stores with their scope, path, and engram count. When a store declares self-describing scope metadata, its description and covers (topics the scope is the home for) are included so you can pick the right scope.

  • plur_suggest_scopeSuggest scoperead-only

    Suggest which registered scope(s) an engram belongs in, ranked by fit. Deterministic — no LLM, no network. Scores the statement keywords, optional domain (a dotted namespace like "plur.core.security"), and tags against the covers[] each scope declares. ADVISORY ONLY: this does not route or store anything; pass the chosen scope to plur_learn yourself. Returns candidates sorted by confidence (empty when nothing matches). Candidates below min_confidence (default: scope_routing.min_confidence config, else 0.15) are suppressed — a lone coincidental keyword scores ≈0.12 and is noise, not signal (#67…

  • plur_syncSync

    Sync engrams via git AND refresh the derived index from YAML. Initializes repo on first call, commits and pushes/pulls on subsequent calls. Provide a remote URL on first call to enable cross-device sync. Pass full=true to drop-and-rebuild the index from YAML (recovery path; YAML stays untouched). Also flushes the remote-write outbox — retries team-scoped writes that were queued while their remote store was unreachable; use plur_outbox to inspect what is queued.

  • plur_sync_statusSync statusread-only

    Check git sync status — whether repo is initialized, has remote, is dirty, ahead/behind counts

  • plur_tensionsTensionscan change or delete data

    Tension lifecycle (#181). Default: list persisted tension records (unresolved first). scan:true runs an LLM contradiction scan, persists NEW detections as records, and skips already-recorded pairs. Lifecycle actions: action:"confirm" (real conflict), action:"dismiss" (false positive — pair suppressed from future scans), action:"resolve" + winner:<engram_id> (loser engram retired). Scan requires OPENAI_API_KEY or OPENROUTER_API_KEY env var, or explicit llm_base_url + llm_api_key args.

  • plur_tensions_purgePurge Tensionscan change or delete data

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

  • plur_timelineTimelineread-only

    Query the episodic timeline — retrieve past episodes filtered by time, agent, or search

  • plur_validate_metaValidate meta-engramcan change or delete data

    Test a meta-engram template against engrams from a new domain — updates confidence and domain_coverage. A meta-engram that fails validation in a third domain is demoted (top → mop) or, below top level, RETIRED.

  • plur-memory

    Open the PLUR memory viewer in a browser.

  • recall

    Search PLUR memories

  • sync

    Sync PLUR memories across devices via git

  • sync-status

    Check PLUR sync status

Compare and alternatives

    Featured in

    Signals

    Stars
    308
    Forks
    37
    Open issues
    560
    Contributors
    13
    Last commit
    Oct 22, 2026 (6 days ago)
    Last release
    Oct 22, 2026 (6 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Registry name
    io.github.plur-ai/plur
    Version
    0.22.1
    Auth
    No auth
    Packages
    npm @plur-ai/mcp
    License
    Apache-2.0
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Plur MCP server. Agent Mart. https://agentmart.dev/connectors/plur-ai-plur (last updated 2026-10-24)