MADB — Agent Memory Database
PYPI · MADB-MCP-SERVER · SCANNED SEP 21
Durable causal memory for AI agents — semantic recall, causal lineage, and skills. Local-first.
Available components
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 Security88
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- 0 of 30 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency35
- 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
- License check failed: the license (Meta-Agents.AI Proprietary License v1.0) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 28 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability58
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2391 tokens (~170/item across 14 items; 14 tools + 0 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 Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the MADB — Agent Memory Database MCP server?
MADB — Agent Memory Database runs locally as a PyPI package, launched with uvx madb-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · madb-mcp-server
claude mcp add spshkar84-madb-memory -- uvx madb-mcp-server
{
"mcpServers": {
"spshkar84-madb-memory": {
"command": "uvx",
"args": [
"madb-mcp-server"
]
}
}
} {
"servers": {
"spshkar84-madb-memory": {
"command": "uvx",
"args": [
"madb-mcp-server"
]
}
}
} codex mcp add spshkar84-madb-memory -- uvx madb-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"spshkar84-madb-memory": {
"type": "local",
"command": [
"uvx",
"madb-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add spshkar84-madb-memory --command uvx --arg madb-mcp-server
mcp_servers:
spshkar84-madb-memory:
command: "uvx"
args: ["madb-mcp-server"] {
"McpServers": {
"spshkar84-madb-memory": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"madb-mcp-server"
]
}
}
} assistant mcp add spshkar84-madb-memory -t stdio -c uvx -a madb-mcp-server
{
"mcpServers": {
"spshkar84-madb-memory": {
"command": "uvx",
"args": [
"madb-mcp-server"
]
}
}
} 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.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 +1
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 −3
- Stability: pass → 0.80 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
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 21 Sept 2026 · Analysed pypi/madb-mcp-server@0.2.10
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Dependencies 30 packages
| Packages resolved | 30 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
capabilities ~72
Summarize MADB's durable causal-memory capabilities + usage status. A brief for first engagement (or on demand): durable memory that persists across sessions, caused_by lineage you can walk with trace_cause, composite-scored recall, and reusable skills — local and single-owner.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
forget ~99
Soft-delete a memory by event_id. The memory is marked as deleted but remains in the causal chain for audit purposes. It will no longer appear in recall results. Args: event_id: UUID of the memory to delete. tenant_id: Tenant namespace key. Defaults to MADB_TENANT_ID env var. Returns: Confirmation message.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| event_id | string | yes | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_memory ~78
Retrieve a specific memory by its event_id. Args: event_id: UUID of the memory to retrieve. tenant_id: Not used for lookup but included for consistency. Returns: The full memory record as JSON, or "Not found".
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| event_id | string | yes | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_recent ~121
List the most recent memories for a tenant. Args: tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. limit: How many recent memories to return. tags: Optional tag filter — only return memories matching these tags. output_format: Set to "json" for structured output (programmatic consumers). Returns: Recent memories sorted by timestamp (newest first).
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| limit | integer | – | – |
| output_format | – | – | – |
| tags | – | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_skills ~101
List all saved skills ranked by composite score. Returns a compact summary of each skill (name, description, importance, event_id). Use recall_skill for detailed pattern lookup. Args: tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. limit: Maximum number of skills to return. Returns: Compact list of all skills.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| limit | integer | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
recall ~195
Semantic recall: find the most relevant memories for a query. Uses vector similarity + recency + causal proximity + importance to rank results. Returns up to budget_tokens worth of content. Args: query: Natural language query (e.g., "What did I decide about SPY puts?"). tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. budget_tokens: Approximate token budget for returned content. top_k: Number of raw candidates to rescore. tag_filter: Only consider memories with these tags. output_format: Set to "json" for structured output (programmatic consumers). Returns: Ranked list of relevant memories with scores.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| budget_tokens | integer | – | – |
| output_format | – | – | – |
| query | string | yes | – |
| tag_filter | – | – | – |
| tenant_id | – | – | – |
| top_k | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
recall_skill ~150
Recall skills matching a natural language query. Uses MADB's composite-scored recall with skill tag filtering and pinned-record inclusion. Returns structured skill details. Args: query: Natural language query (e.g., "error handling pattern"). tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. budget_tokens: Approximate token budget for returned content. output_format: Set to "json" for structured output (programmatic consumers). Returns: Ranked list of matching skills with scores and details.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| budget_tokens | integer | – | – |
| output_format | – | – | – |
| query | string | yes | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
remember ~291
Store a memory in MADB with optional causal links and tags. Args: content: The memory content (text or JSON string). tags: Classification tags (e.g., ["trade", "SPY", "decision"]). tenant_id: Tenant namespace key. Defaults to MADB_TENANT_ID env var. scope: Visibility scope — "user", "workspace", "org", or "public_template". mem_type: Durability tier — "ephemeral", "session", "long_term", or "artifact". importance: Priority hint 0.0–1.0 (higher = more likely to be recalled). caused_by: List of parent event_id UUIDs for causal chain tracking. actor: Who created this memory (default: "claude"). idempotency_key: Dedup key — re-submitting the same key is a no-op. output_format: Set to "json" for structured output (programmatic consumers). Returns: The event_id (UUID) of the stored memory.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | – |
| api_key | – | – | – |
| caused_by | – | – | – |
| content | string | yes | – |
| idempotency_key | – | – | – |
| importance | – | – | – |
| mem_type | string | – | – |
| output_format | – | – | – |
| scope | string | – | – |
| tags | – | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
resume ~177
One-call session resume: a synthesized brief of the open work. Deterministic (read-first tag + recency) — NOT semantic recall. Returns OPEN THREADS newest-first plus extracted NEXT actions, each with the event_id for trace_cause. Call this at session start instead of re-deriving context from git log or file crawling; use recall() after it for topic depth. Args: tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. max_items: Maximum threads in the brief. output_format: Set to "json" for {"brief": ...}. Returns: The brief as plain text ("" when the store is empty).
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| max_items | integer | – | – |
| output_format | – | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
save_skill ~290
Store a reusable skill or coding pattern in MADB. Skills are stored as durable artifacts (never auto-GC'd) with importance >= 0.8, making them permanently available for recall. Re-saving the same skill name is idempotent (returns the same event_id). Args: name: Short skill identifier (e.g., "pytest-fixture-pattern"). description: What the skill does and when to use it. pattern: Optional code pattern or template. language: Programming language (e.g., "python", "rust"). examples: Optional usage examples. source: Where this skill was learned (e.g., file path, URL). tags: Additional tags (merged with "skill" tag automatically). tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. importance: Priority 0.0–1.0 (default 0.9 = GC-protected, not pinned). caused_by: Parent event_ids for causal chain tracking. Returns: The event_id of the stored skill.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| caused_by | – | – | – |
| description | string | yes | – |
| examples | – | – | – |
| importance | number | – | – |
| language | – | – | – |
| name | string | yes | – |
| pattern | – | – | – |
| source | – | – | – |
| tags | – | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
search ~95
Query memories by tenant and optional scope filter. Args: tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. scope: Filter by scope ("user", "workspace", "org", "public_template"). limit: Max records to return. Returns: List of matching memories.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| limit | integer | – | – |
| scope | – | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
stats ~44
Engine metrics: writes, reads, flushes, compactions, WAL state, etc. Returns: JSON snapshot of all engine counters and derived metrics.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
summarize ~176
Summarize old memories into compressed time-bucket summaries. Groups records by time bucket and creates structural summaries (no LLM dependency). Summaries are searchable via recall. Args: tenant_id: Tenant key. Defaults to MADB_TENANT_ID env var. bucket_hours: Time bucket size in hours (default: 24). min_records: Minimum records per bucket to trigger summarization. summarize_after_hours: Only summarize buckets older than this. gc_strategy: "additive_overlay", "tiered_compaction", or "tombstone_archive". Returns: Summarization report.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| bucket_hours | integer | – | – |
| gc_strategy | string | – | – |
| min_records | integer | – | – |
| summarize_after_hours | integer | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
trace_cause ~190
Trace the causal chain — see what caused a memory or what it caused. Walks the causal DAG by following ``caused_by`` links (backward) or finding memories that list this event in their ``caused_by`` (forward). Args: event_id: Starting event UUID. direction: "backward" (ancestors) or "forward" (descendants). max_depth: Maximum hops to traverse (default 5). tenant_id: Tenant namespace. The walk is tenant-scoped — it stays within the given tenant's lineage (AUDIT-ISO-001). Defaults to the server's configured tenant. Returns: Formatted causal chain with indentation showing depth.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | – | – | – |
| direction | string | – | – |
| event_id | string | yes | – |
| max_depth | integer | – | – |
| tenant_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the MADB — Agent Memory Database MCP server?
MADB — Agent Memory Database is an MCP server listed in the public MCP registry as io.github.spshkar84/madb-memory. Durable causal memory for AI agents, semantic recall, causal lineage, and skills. Local-first. This page covers its PyPI package (madb-mcp-server).
Is the MADB — Agent Memory Database MCP server safe to use?
MADB — Agent Memory Database scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. 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 MADB — Agent Memory Database MCP server expose?
MADB — Agent Memory Database exposes 14 tools: remember, recall, resume, get_memory, forget, and 9 more. Their descriptions and schemas cost roughly 2,079 tokens of context every time the server is loaded.
Is the MADB — Agent Memory Database MCP server still maintained?
MADB — Agent Memory Database is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.