PLUR
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLUR_PATH | No | Overrides the default storage location (~/.plur/) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| plur_learnA | Create an engram — record a reusable learning, preference, or correction. 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_learn_batchA | 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 ADD/UPDATE/MERGE decision). Dedup also applies WITHIN the batch: a statement duplicating an earlier item in the same array resolves to NOOP against it. Returns |
| plur_recallA | Query engrams by BM25 keyword matching — use plur_recall_hybrid for semantic similarity. 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_recall_hybridA | Hybrid search — BM25 + local embeddings merged via Reciprocal Rank Fusion. No API calls, fully local. Best default for most use cases. |
| plur_injectA | Get a scored context injection for a task — returns directives and considerations within token budget |
| plur_inject_hybridA | Hybrid injection — BM25 + embeddings for better context selection. Falls back to BM25 if embeddings unavailable. Best default for injection. |
| plur_feedbackB | Rate an engram's usefulness — trains injection relevance over time. Supports single or batch mode. |
| plur_pinA | Toggle the always-load (pinned) flag on an engram. Pinned engrams bypass the keyword-relevance gate at injection time and are eligible for loading on every session, regardless of overlap with the user task. Use sparingly — meta-rules, safety conventions, core operating principles. Pass {id, pinned:true} to pin or {id, pinned:false} to unpin. List current pinned with {list:true}. |
| plur_forgetA | Retire an engram by ID or search term — marks it as no longer active without deleting history |
| plur_captureA | Append an episode to the episodic timeline — records what happened in a session |
| plur_timelineA | Query the episodic timeline — retrieve past episodes filtered by time, agent, or search |
| plur_ingestB | Extract engram candidates from content using pattern matching — optionally auto-save them |
| plur_packs_previewA | 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. |
| plur_packs_installA | Install an engram pack from a directory path. 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_uninstallA | Uninstall an engram pack by name — removes the pack and all its engrams |
| plur_packs_listA | List all installed engram packs with integrity hashes, install dates, and source paths |
| plur_packs_discoverB | Browse available engram packs from the registry — discover curated expertise packs to install |
| plur_syncA | 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). |
| plur_sync_statusA | Check git sync status — whether repo is initialized, has remote, is dirty, ahead/behind counts |
| plur_extract_metaA | Extract meta-engrams from stored engrams using the 6-stage pipeline (structural analysis → clustering → alignment → formulation → hierarchy). Requires an LLM API endpoint. |
| plur_meta_engramsA | List existing meta-engrams (engrams with META- prefix) with their structural templates and confidence scores |
| plur_validate_metaA | Test a meta-engram template against engrams from a new domain — updates confidence and domain_coverage |
| plur_statusA | 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_doctorA | 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_session_startB | Start a session — inject relevant engrams for your task. Call at the beginning of every session. |
| plur_session_endA | End a session. BEFORE calling this tool, review the conversation and extract learnings:
Include at least one engram_suggestion if ANYTHING was learned. An empty suggestions array means nothing worth remembering happened — this should be rare. |
| plur_stores_addA | 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_listA | 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_scopeA | 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). |
| plur_scopes_discoverA | 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. Use this when you have access to multiple team scopes on one server. |
| plur_promoteB | Activate candidate engrams so they appear in injection results |
| plur_tensionsA | 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: (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_purgeA | Purge all conflict relations from local engrams — removes accumulated false positives from the legacy tension-detection system |
| plur_episode_to_engramA | Promote an episode to a persistent episodic engram — useful when a session event deserves long-term memory |
| plur_historyA | View the event-sourced history of an engram or all recent history — shows creation, updates, feedback, and evolution events |
| plur_report_failureA | 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_packs_exportA | 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/ by default. |
| plur_similarity_searchA | 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_profileA | Generate or retrieve a cognitive profile — a narrative summary synthesized from stored engrams. Cached for 24h. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| plur-getting-started | Step-by-step guide to set up and start using PLUR memory |
| plur-session-start | Load relevant context for a task — call at the start of each session |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| PLUR Agent Guide | Complete reference for all PLUR tools, when to use them, scoping, and storage |
| PLUR Status | Live system health — engram count, episode count, pack count, storage path |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/plur-ai/plur'
If you have feedback or need assistance with the MCP directory API, please join our Discord server