← Back to search

io.github.davidmosiah/delx-memory

davidmosiah Scanned 22d ago

Local-first persistent memory MCP: shared SQLite key/value store, searchable, TTL-aware, secret-safe

C
72 / 100

Versions

0.2.0latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 15

memory_agent_manifest
annotations: verified low

Machine-readable install and operating instructions for AI agents. Call first when onboarding. Supports privacy_mode documentation for read tools.

readOnlyHint true openWorldHint false idempotentHint true
memory_connection_status
annotations: verified low

Local SQLite path readiness and size without reading entry values. Safe first call every session.

readOnlyHint true openWorldHint false idempotentHint true
memory_data_inventory
annotations: verified low

Static inventory of memory domains, privacy modes and recommended first calls. No live value reads.

readOnlyHint true openWorldHint false idempotentHint true
memory_capabilities
annotations: verified low

Self-description of this MCP including privacy modes and mutation gating.

readOnlyHint true openWorldHint false idempotentHint true
memory_get
annotations: verified low

Exact key lookup. Returns the stored value plus timestamps, ttl, tags, metadata. Returns null if missing or expired. Optional privacy_mode=summary omits full values.

readOnlyHint true openWorldHint false idempotentHint true
memory_list
annotations: verified low

List keys with optional prefix, tag, or since (updated_at) filter. Returns keys + timestamps + tags only — call memory_get for values. Scoped by DELX_MEMORY_NAMESPACE when set.

readOnlyHint true openWorldHint false idempotentHint true
memory_search
annotations: verified low

Full-text search across keys, values AND tags. Uses an FTS5 index with bm25 relevance ranking (key-weighted), word-stemming, diacritic folding and prefix matching — so multi-word, partial and accent-insensitive queries all hit, ranked by relevance. Falls back to a LIKE substring scan if the SQLite build lacks FTS5. Returns top N matches with a snippet. Case-insensitive. privacy_mode=summary omits snippets.

readOnlyHint true openWorldHint false idempotentHint true
memory_stats
annotations: verified low

High-level stats about the local memory store. Safe to call first on every session to gauge whether the store is empty, small, or large.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
memory_set
annotations: verified low

Create or update a key in memory. Rejects credential-shaped keys or values. Requires explicit_user_intent: true. Returns whether the row was created or updated.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
memory_forget
annotations: verified low

Delete a single key from memory. Idempotent: returns existed=false if the key was not present. Requires explicit_user_intent: true.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
memory_forget_by_tag
annotations: verified low

Delete every entry carrying the given tag. Returns deleted_count. Requires explicit_user_intent: true.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
memory_export
annotations: verified low

Dump the memory store as JSON, JSONL, or Markdown. Optional since/until window on updated_at. Use for backup/inspection. Requires explicit_user_intent: true.

readOnlyHint true openWorldHint false idempotentHint true
memory_get_many
annotations: verified low

Batch exact-key lookup (max 50). Missing keys omitted. Respects DELX_MEMORY_NAMESPACE.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
memory_set_batch
annotations: verified low

Upsert up to 50 entries in one SQLite transaction. One explicit_user_intent covers the batch. Rejects secret-shaped keys/values. Namespace-aware.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
memory_handoff
annotations: verified low

Returns store stats + the most recently updated keys (optional values). Designed for session start: one call instead of stats+list+get fan-out. Namespace-aware.

readOnlyHint true openWorldHint false idempotentHint true

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, execSync(), spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 45

info
Tool 'memory_agent_manifest' annotations are consistent annotation_checker · 80%
info
Tool 'memory_connection_status' annotations are consistent annotation_checker · 80%
info
Tool 'memory_data_inventory' annotations are consistent annotation_checker · 80%
info
Tool 'memory_capabilities' annotations are consistent annotation_checker · 80%
info
Tool 'memory_get' annotations are consistent annotation_checker · 80%
info
Tool 'memory_list' annotations are consistent annotation_checker · 80%
info
Tool 'memory_search' annotations are consistent annotation_checker · 80%
info
Tool 'memory_stats' annotations are consistent annotation_checker · 80%
info
Tool 'memory_set' annotations are consistent annotation_checker · 80%
info
Tool 'memory_forget' annotations are consistent annotation_checker · 80%
info
Tool 'memory_forget_by_tag' annotations are consistent annotation_checker · 80%
info
Tool 'memory_export' annotations are consistent annotation_checker · 80%
info
Tool 'memory_get_many' annotations are consistent annotation_checker · 80%
info
Tool 'memory_set_batch' annotations are consistent annotation_checker · 80%
info
Tool 'memory_handoff' annotations are consistent annotation_checker · 80%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-345p-7cg4-v4c7) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: memory_agent_manifest manifest_parser · 85%
info
Tool: memory_connection_status manifest_parser · 85%
info
Tool: memory_data_inventory manifest_parser · 85%
info
Tool: memory_capabilities manifest_parser · 85%
info
Tool: memory_get manifest_parser · 85%
info
Tool: memory_list manifest_parser · 85%
info
Tool: memory_search manifest_parser · 85%
info
Tool: memory_stats manifest_parser · 85%
info
Tool: memory_set manifest_parser · 85%
info
Tool: memory_forget manifest_parser · 85%
info
Tool: memory_forget_by_tag manifest_parser · 85%
info
Tool: memory_export manifest_parser · 85%
info
Tool: memory_get_many manifest_parser · 85%
info
Tool: memory_set_batch manifest_parser · 85%
info
Tool: memory_handoff manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (8) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'memory_connection_status': Cross-tool prerequisite: 'first call/use' poisoning · 85%
info
SBOM generated: 170 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%