Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MemVault - Local-First Agent Memory

OCI · GHCR.IO/DREAMOR/MEMVAULT

Local-first memory for AI agents: save, recall, dedupe, and share across MCP clients.

+3 this week 51 Trust /100

Last scanned (9 hours ago)

Scores higher than 81% of OCI servers

Category Memory and Knowledge

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4786 tokens (~217/item across 22 items; 20 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.63 → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: v0.6.11 → v0.6.12 functional
  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 0
    • Package version: v0.6.10 → v0.6.11 functional
  • 29 Oct 26 +7
    • Stability: 0.43 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Source repository: fail → pass ▲ security
    • Schema quality: 168 → 204 ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Schema quality: excellent → good functional
    • Destructive annotations: All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation. functional
    • Package version: v0.6.8 → v0.6.10 functional
    • Package version: v0.6.8 → v0.6.9 functional
  • 28 Oct 26 0
    • Package version: v0.6.7 → v0.6.8 functional
  • 27 Oct 26 +1
    • Package version: v0.6.4 → v0.6.7 functional
    • Package version: v0.6.4 → v0.6.6 functional
    • Package version: v0.6.4 → v0.6.5 functional
  • 25 Oct 26 +1
    • Package version: v0.6.3 → v0.6.4 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed oci/ghcr.io/dreamor/memvault@v0.6.12

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 20 exposed · ~4,684 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_evidence ~325

Record evidence for a memory. relation="supports"/"contradicts" links evidence_id → memory_id (a memory supporting or contradicting it); relation="sourced_from" records memory_id's external provenance via `source` (URL/document). Writes one relation and returns its relation_id; an identical relation is rejected rather than duplicated. Contradictions accelerate the contradicted memory's decay; superseded or archived evidence stops counting. Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
confidencenumber|null–Evidence confidence, 0.0-1.0 (default 0.8).
evidence_idstring|null–The memory providing evidence (required for supports/contradicts).
memory_idstringyesThe memory this evidence statement is ABOUT, or that the subject memory supports/contradicts — see `relation` for direction. For supports/contradicts: the memory being supported/contradicted. For sou…
relationstringyesEvidence relation: "supports" | "contradicts" | "sourced_from". supports/contradicts link two memories (`evidence_id` = the memory providing evidence); sourced_from records an external source text.
sourcestring|null–External source: URL, document path, conversation reference (required for sourced_from).

No output schema declared.

No examples provided.

confirm_read ~125

Confirm that one or more memories have been read by the agent. Increments access_count and sets last_read_at for the specified memory IDs; unknown IDs are skipped and the response reports how many rows were confirmed. Repeated calls increment the counters again (not idempotent). Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
memory_idsarrayyesList of memory IDs to confirm as read

No output schema declared.

No examples provided.

delete_memory ~148

Soft-delete one memory by its ID: removes its live row, FTS entry, and cascaded evidence relations so it is no longer searchable or injected. A full snapshot is written to memory_history first; restore is available through the CLI (`memvault restore`), not through this MCP tool. Use forget_memory for an irreversible GDPR-style purge. Requires agent auth when the agent has a registered key; a second delete of the same ID returns NotFound.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
memory_idstringyesID of the memory to delete

No output schema declared.

No examples provided.

extract_memories ~398

Extract structured memories from conversation text. mode="rule" (default) detects preferences, facts, and skills via keyword pattern matching. mode="llm" instead understands the full context (optionally pairing assistant_text) semantically — uses the configured LLM extraction provider, and degrades to rule-based extraction (reported via fallback_used/fallback_reason) when no provider is configured or the LLM call fails. Returns extracted items; with auto_save=true it also writes them through delta-write (near-identical memories are merged or skipped, not duplicated) and requires agent auth when the agent has a registered key. Use save_memory instead when you already know the exact memory to store. Invalid occurred_at is an error, never a silent drop.

NameTypeReqDescription
agent_idstring–Agent ID to attribute saved memories to
api_keystring|null–API key for agent authentication (required if agent has a registered key)
assistant_textstring|null–Optional paired assistant/response text for mode="llm" — passing both sides of the exchange lets the model resolve references and implicit preferences a single text can't.
auto_saveboolean–Whether to auto-save extracted memories
modestring|null–Extraction mode: "rule" (default, keyword pattern matching) or "llm" (semantic extraction over the full context; uses the configured LLM extraction provider, falling back to rule-based when none is c…
occurred_atstring|null–When the extracted facts actually happened in the source conversation (RFC 3339), stored as `occurred_at` on saved memories — distinct from `created_at` (ingestion time). Invalid input is an error, n…
textstringyesText to extract memories from (conversation content, e.g. the user's turn)

No output schema declared.

No examples provided.

forget_memory ~386

Permanently erase (GDPR-style) one memory by id or a bulk set matched by criteria (namespace/namespace_prefix/source_agent_id/tag/memory_type/before_days). Unlike delete_memory, this also purges memory_history snapshots and any orphaned compliance rows, leaving only a content-hash audit entry in the forgotten-log — irreversible. dry_run defaults to true: call once to preview, then again with dry_run=false to execute. Priority::Must memories are excluded unless allow_must=true. Gated by the same per-agent API-key auth as delete_memory — there is no separate admin tier at the MCP layer.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
allow_mustboolean–Explicit override to include Priority::Must memories (otherwise excluded by default)
api_keystring|null–API key for agent authentication (required if agent has a registered key)
before_daysinteger|null–Bulk: not updated in this many days
dry_runboolean–Preview matches without purging anything (default: true — forgetting is irreversible, so a caller must explicitly set this to false to execute)
memory_idstring|null–ID of a single memory to permanently erase. Mutually exclusive with the criteria fields below — when set, every criteria field is ignored.
memory_typestring|null–Bulk: memory type (preference, fact, episode, entity, skill)
namespacestring|null–Bulk: exact namespace match
namespace_prefixstring|null–Bulk: namespace starts with this (e.g. "archived:")
reasonstring|null–Audit-trail reason recorded in the forgotten-log
source_agent_idstring|null–Bulk: source agent id
tagstring|null–Bulk: memories carrying this tag

No output schema declared.

No examples provided.

get_compliance_report ~189

Get a compliance report for injection sessions: with inject_session_id, followed/violated/pending counts plus compliance_rate for that session; without it, an aggregate summary (total_sessions, overall_rate, must_rate, recent_sessions) filtered by optional agent_id and limit (default 10). compliance_rate/overall_rate/must_rate are null when no real MUST verdict exists yet (all pending/unknown); null never means 100%. Use report_compliance to record follow/violation status — this tool only reads it.

NameTypeReqDescription
agent_idstring|null–Filter aggregate summary by agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
inject_session_idstring|null–Get report for a specific injection session
limitinteger–Maximum number of recent sessions in the aggregate summary (default: 10)

No output schema declared.

No examples provided.

get_effectiveness_report ~122

Get automatic effectiveness judgments for injected memories: useful/neutral/harmful/insufficient_context rates, judged automatically from record_outcome — independent of manual report_compliance. Optional agent_id filters the summary and limit defaults to 10. Read-only; returns JSON and does not change records.

NameTypeReqDescription
agent_idstring|null–Filter by agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
limitinteger–Maximum number of recent judgments in the summary (default: 10)

No output schema declared.

No examples provided.

get_memory_evidence ~153

Get the raw-evidence chain a memory was distilled from (its L0 trace rows), plus its evidence profile. Read-only grounding: lets an agent quote the original session text and name its sources. Use add_evidence to write a new relation or source — this tool only reads the existing chain. Missing or pruned evidence yields an empty chain rather than a write; requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
memory_idstringyesThe memory whose raw-evidence chain (L0 trace rows) to expand

No output schema declared.

No examples provided.

import_skills ~197

Import skills from a Markdown SOP document. Each #/## heading becomes a skill (trigger:/verification: metadata lines + list-item steps). Sections without steps are skipped. Imported skills enter the review inbox unless approve=true. Writes new skill memories; repeating the same import can create duplicates. Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
approveboolean–Mark imported skills as human-reviewed (skip the inbox). Default false.
fallback_titlestring–Fallback skill title when the document has no headings.
markdownstringyesMarkdown SOP text. Each #/## heading becomes a skill; `trigger:` / `verification:` lines and list items become the skill metadata.
namespacestring–Namespace for the imported skills.

No output schema declared.

No examples provided.

infer_outcome ~341

Classify and record a task outcome from host-provided evidence rather than raw transcript text — for hosts whose event model doesn't produce a Claude-Code-shaped JSONL transcript (e.g. dsh/Cordis session events). Pass pre-computed friction counts and terminal state in `evidence`; this runs the same rule-floor-plus-optional-LLM-judge classification as the Claude Code Stop hook's `outcome --infer`, then records exactly like record_outcome. Returns status 'skipped' (not an error) when nothing was inferred — a clean session, below the friction threshold, or no task evidence at all. Repeated calls for the same session/evidence are deduped. Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the agent reporting this outcome
agent_typestring–Type of the agent (e.g., coding-assistant)
api_keystring|null–API key for agent authentication (required if agent has a registered key)
evidence–yesStructural evidence computed by the caller from its own event stream
judge_contextstring–Conversation excerpt handed to the LLM judge, if one is configured (DATA to analyze, not instructions). Optional — when empty, only the rule-based floor runs.
namespacestring–Namespace for the episode memory (default: global)
session_idstring|null–Session the task ran in, for traceability
tagsarray–Tags for categorization — "auto-inferred" and "inferred:rule"/"inferred:llm" are added automatically

No output schema declared.

No examples provided.

list_inbox ~127

List memories pending human review, sorted by created_at ascending (oldest first). Read-only. Supports an optional namespace and limit (default 20); there is no offset/pagination, so a full page silently truncates older pending memories. Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
limitinteger–Maximum number of results to return
namespacestring|null–Filter by namespace

No output schema declared.

No examples provided.

record_outcome ~356

Record the outcome of a task you just executed (episodic memory). Call this after finishing a task so past successes and failures can inform future sessions. Status must be 'success', 'failure', or 'partial'. Failures with a cause are reflected into lessons that get injected into similar future tasks. Repeated calls for the same session/outcome are deduped rather than creating a second episode. Use infer_outcome instead when the host supplies structured evidence rather than a transcript; use add_evidence to attach provenance to an existing memory. Returns status (recorded | duplicate), the episode id, and any distilled lesson. Requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the agent reporting this outcome
agent_typestring–Type of the agent (e.g., coding-assistant)
api_keystring|null–API key for agent authentication (required if agent has a registered key)
causestring|null–Attribution of the outcome, when known
namespacestring–Namespace for the episode memory (default: global)
session_idstring|null–Session the task ran in, for traceability
skill_idstring|null–ID of the skill memory the agent followed, if any — attributes this outcome to the skill's success/failure statistics
statusstringyesOutcome status: success, failure, or partial
tagsarray–Tags for categorization
taskstringyesWhat task was executed (kept verbatim for retrieval)
task_typestring|null–Coarse task category for lesson matching (e.g. deploy, debug, refactor)

No output schema declared.

No examples provided.

report_compliance ~162

Report compliance for a previous injection session returned by session_start. Call this to mark which injected memories were followed or violated, with optional evidence. Reports are processed item by item: a bad item is logged and skipped while the call still succeeds, so the response's updated/total counts must be checked rather than assuming all reports were stored. Requires a compliance-enabled server; no agent API key is required by this tool.

NameTypeReqDescription
agent_idstring–ID of the agent reporting compliance
api_keystring|null–API key for agent authentication (required if agent has a registered key)
inject_session_idstringyesThe inject_session_id from a previous session_start call
reportsarrayyesList of compliance reports, one per memory

No output schema declared.

No examples provided.

review_memory ~189

Review or edit a memory. action='approve' marks it human-reviewed; action='edit' updates content/instruction and re-embeds or clears the stale vector (this also works on already-approved memories); action='reject' soft-deletes a pending memory and is rejected for already-approved memories (use delete_memory instead). Approved memories rank higher in future injections. Writes immediately; requires agent auth when the agent has a registered key.

NameTypeReqDescription
actionstringyesAction: approve, reject, or edit
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
edited_contentstring|null–New content if action is edit
edited_instructionstring|null–New instruction if action is edit
memory_idstringyesID of the memory to review

No output schema declared.

No examples provided.

run_decay ~152

Run a memory decay cycle: reduces decay_score for old memories and archives memories that fall below the threshold. MUST memories are exempt from decay. This is not purely reversible: if MEMVAULT_FORGET_AUTO_ENABLED=1, the same run also permanently forgets archived memories older than MEMVAULT_FORGET_RETENTION_DAYS (default 90); otherwise auto-forget is off. Requires agent auth when the agent has a registered key. Returns updated/archived/contradicted/harmful_flagged/auto_forgotten counts.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)

No output schema declared.

No examples provided.

run_dedup ~117

Scan for duplicate memories and report findings. Uses lexical text similarity (Jaccard) to detect near-duplicates in one namespace or all namespaces. Read-only: reports existing_id/new_content/similarity/action but does not merge or delete anything. Returns at most 20 duplicate findings.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
namespacestring|null–Namespace to scan (null for all)

No output schema declared.

No examples provided.

run_promote ~220

Run the promote pipeline: consolidates atomic L1 memories into L2 scenario summaries, and promotes stable L2 memories into L3 core persona rules. Requires L1 memories to exist; run run_dedup first so near-duplicates don't become separate scenarios. Source memories are archived to L0 after promotion (not deleted). A maintenance step, not a substitute for run_decay. Mutates the store, is not idempotent, and requires agent auth when the agent has a registered key. Returns promoted/consolidated/merged/source counts.

NameTypeReqDescription
agent_idstring–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
min_l1integer|null–Minimum L1 memories to consolidate into L2 (default: 3)
min_l2integer|null–Minimum L2 memories to promote to L3 (default: 2)
namespacestring|null–Namespace to scan (currently the promote pipeline scans all namespaces)

No output schema declared.

No examples provided.

save_memory ~448

Save a new memory. Memories are persistent user preferences, facts, episodes, or skills that should be recalled in future conversations. Embeddings are generated automatically for semantic search. Delta-write is on by default: near-duplicate saves are skipped and similar existing memories absorb the new content instead of a new row being created (status in the response: saved | merged | skipped). Pass force_insert=true to bypass. Writes persist immediately; requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the agent saving this memory
agent_typestring–Type of the agent (e.g., coding-assistant)
api_keystring|null–API key for agent authentication (required if agent has a registered key)
confidencenumber–Confidence score (0.0 to 1.0)
contentstringyesThe content of the memory to save
force_insertboolean–Force insert, skipping delta-write dedup/merge. By default a save is checked against similar memories in the same namespace: near-duplicates are skipped, similar memories absorb the new content's res…
instructionstring|null–Optional instruction format for the memory
layerstring|null–Memory layer: L0 (raw), L1 (atom), L2 (scenario), L3 (persona). Auto-assigned if omitted.
namespacestring–Namespace for the memory (default: global)
prioritystring–Priority level: MUST, REFERENCE, or BACKGROUND
skill_stepsarray–Skill execution steps (only for type=skill)
skill_triggerstring|null–Skill trigger pattern (only for type=skill)
skill_verificationstring|null–Skill verification criteria (only for type=skill)
tagsarray–Tags for categorization
typestring–Memory type: preference, fact, episode, entity, or skill
visibilitystring|null–Sharing scope: "scoped" (default, namespace rules) or "shared" (team pool).

No output schema declared.

No examples provided.

search_memory ~345

Search stored memories. mode defaults to 'hybrid' (keyword + vector via RRF); 'keyword' is text-only and 'semantic' is vector-only. Semantic/hybrid need an embedding provider — when embeddings are unavailable the query falls back to keyword and each result reports search_mode='keyword'. Supports namespace, type_filter, priority_filter, top_k (default 10), min_score, and optional expand_relations for one-hop relation context. Read-only; does not mutate memories.

NameTypeReqDescription
agent_idstring|null–ID of the requesting agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
expand_relationsboolean–Attach each result's one-hop relation neighborhood (semantic graph expansion, C5). Default off.
min_scorenumber|null–Drop results whose final (post-rerank) relevance score is below this threshold. Unset = return the full top_k regardless of score, the pre-existing behavior. Lets callers distinguish "no confident ma…
modestring–Search mode: "hybrid" (default; keyword + vector via RRF), "keyword" (text-only), or "semantic" (vector-only). Semantic/hybrid fall back to keyword when embeddings are unavailable.
namespacestring|null–Filter by namespace
priority_filterstring|null–Filter by priority
querystringyesSearch query string
top_kinteger–Maximum number of results to return
type_filterstring|null–Filter by memory type

No output schema declared.

No examples provided.

session_start ~184

Start an agent session. Returns relevant memories filtered by agent identity, formatted as MUST/REF instructions ready for injection into the conversation context; overflow memories are summarized with a hint to use search_memory for details. If this agent's canonical inject channel is not MCP, returns a skip explanation instead of injecting. When compliance tracking is enabled, records the injected memories and returns inject_session_id in structured_content for a later report_compliance call. Not read-only; requires agent auth when the agent has a registered key.

NameTypeReqDescription
agent_idstring–ID of the agent starting the session
agent_typestring–Type of the agent
api_keystring|null–API key for agent authentication (required if agent has a registered key)
context_hintstring|null–Hint about the current conversation context
projectstring|null–Current project name

No output schema declared.

No examples provided.

Install

How do I install the MemVault - Local-First Agent Memory MCP server?

MemVault - Local-First Agent Memory runs locally as a container image, launched with docker run --rm -i ghcr.io/dreamor/memvault:v0.6.12. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/dreamor/memvault

# add to Claude Code
claude mcp add dreamor-memvault -- docker run --rm -i ghcr.io/dreamor/memvault:v0.6.12
Common questions

What is the MemVault - Local-First Agent Memory MCP server?

MemVault - Local-First Agent Memory is an MCP server listed in the public MCP registry as io.github.dreamor/memvault. Local-first memory for AI agents: save, recall, dedupe, and share across MCP clients. This page covers its container image (ghcr.io/dreamor/memvault).

Is the MemVault - Local-First Agent Memory MCP server safe to use?

MemVault - Local-First Agent Memory scores 51 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MemVault - Local-First Agent Memory MCP server expose?

MemVault - Local-First Agent Memory exposes 20 tools: add_evidence, confirm_read, delete_memory, extract_memories, forget_memory, and 15 more. Their descriptions and schemas cost roughly 4,684 tokens of context every time the server is loaded.

Is the MemVault - Local-First Agent Memory MCP server still maintained?

MemVault - Local-First Agent Memory is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the MemVault - Local-First Agent Memory MCP server under?

MemVault - Local-First Agent Memory declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.