# io.github.n24q02m/mnemo-mcp (oci · docker.io/n24q02m/mnemo-mcp:latest)

Persistent AI memory with hybrid search (FTS5 + semantic) and cross-machine sync.

- Trust score: 28/100 (low)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- oci · `docker.io/n24q02m/mnemo-mcp:latest`: 28/100 (this document), [markdown](https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest.md), [page](https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest)
- pypi · `mnemo-mcp`: 19/100, [markdown](https://verifymcp.io/servers/n24q02m-mnemo-mcp/mnemo-mcp.md), [page](https://verifymcp.io/servers/n24q02m-mnemo-mcp/mnemo-mcp)

## Channel facts

- Registry: `oci`
- Package: `docker.io/n24q02m/mnemo-mcp:latest`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - Install-script risk not yet assessed.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 6/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 15 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 1498 tokens (~99/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: 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.

## Install

### Claude

```bash
claude mcp add n24q02m-mnemo-mcp -- docker run --rm -i docker.io/n24q02m/mnemo-mcp:latest
```

### Codex

```bash
codex mcp add n24q02m-mnemo-mcp -- docker run --rm -i docker.io/n24q02m/mnemo-mcp:latest
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "n24q02m-mnemo-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/n24q02m/mnemo-mcp:latest"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  n24q02m-mnemo-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/n24q02m/mnemo-mcp:latest"]
```

### Other

```json
{
  "mcpServers": {
    "n24q02m-mnemo-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/n24q02m/mnemo-mcp:latest"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-01 (score 28, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 30, +29)

- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 0
- [functional] First check of Schema quality: fair

### 2026-07-26 (score 1)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (15)

### `add_memory` (~74 tokens)

Store NEW information. Use for preferences, decisions, facts.

ACTION GUIDE — when to use:
\- Use when saving new information for the first time.
  Example: content='User prefers dark mode', category='preference', tags=['ui']

Input parameters:

- `category`
- `content` (string, required)
- `tags`

### `search_memory` (~71 tokens)

Find existing memories by natural language query. Always search before adding.

ACTION GUIDE — when to use:
\- Use BEFORE adding new information to avoid duplicates.
  Example: query='dark mode preference'

Input parameters:

- `category`
- `limit` (integer)
- `query` (string, required)
- `tags`

### `list_memories` (~70 tokens)

Browse all memories, optionally filtered by category.

ACTION GUIDE — when to use:
\- Use when you want to view a broad set of memories, or see what's in a specific category.
  Example: category='preference', limit=10

Input parameters:

- `category`
- `limit` (integer)

### `update_memory` (~90 tokens)

Modify an EXISTING memory by ID. Get memory_id from search results.

ACTION GUIDE — when to use:
\- Use when an existing fact or preference changes.
  Example: memory_id='abc123', content='User now prefers light mode'

Input parameters:

- `category`
- `content`
- `importance`
- `memory_id` (string, required)
- `source`
- `tags`

### `delete_memory` (~56 tokens)

Remove a memory by ID.

ACTION GUIDE — when to use:
\- Use when a memory is completely outdated, incorrect, or explicitly requested to be forgotten.
  Example: memory_id='abc123'

Input parameters:

- `memory_id` (string, required)

### `export_memories` (~39 tokens)

Export all memories as JSONL.

ACTION GUIDE — when to use:
\- Use when the user requests a backup or raw dump of their memory database.

### `import_memories` (~72 tokens)

Import memories from JSONL data or a list of objects.

ACTION GUIDE — when to use:
\- Use when restoring from a backup or migrating data into the memory system.
  Example: data='[{"content": "example"}]', mode='merge'

Input parameters:

- `data` (required)
- `mode` (string)

### `memory_stats` (~50 tokens)

Show database statistics (total memories, categories, embedding status).

ACTION GUIDE — when to use:
\- Use when you need to understand the scale or health of the memory database, or check if embeddings are enabled.

### `restore_memory` (~54 tokens)

Restore an archived memory by ID.

ACTION GUIDE — when to use:
\- Use to bring a previously archived memory back into the active search pool.
  Example: memory_id='abc123'

Input parameters:

- `memory_id` (string, required)

### `archived_memories` (~49 tokens)

List archived memories.

ACTION GUIDE — when to use:
\- Use to view memories that have been soft-deleted or automatically archived due to low importance/recency.

Input parameters:

- `limit` (integer)

### `consolidate_memories` (~63 tokens)

Summarize similar memories in a category (requires LLM API keys).

ACTION GUIDE — when to use:
\- Use when a category has too many redundant or closely related memories and needs cleanup.
  Example: category='preference'

Input parameters:

- `category` (string, required)

### `memory` (~516 tokens)

[DEPRECATED — use the granular tools (add_memory, search_memory, ...) instead; this composite tool will be removed in a future release]

Legacy dispatcher for backward compatibility. Use specialized tools (add_memory, search_memory, etc.) instead.

Persistent memory store. Actions: add|search|list|update|delete|export|import|stats|restore|archived|consolidate.

ACTION GUIDE — when to use each:
\- add: Store NEW information. Requires 'content'. Use when saving preferences, decisions, facts for the first time.
  Example: action='add', content='User prefers dark mode', category='preference', tags=['ui']
\- search: Find existing memories by natural language query. Requires 'query'. Use BEFORE add to avoid duplicates.
  Example: action='search', query='dark mode preference'
\- update: Modify an EXISTING memory by ID. Requires 'memory_id' (from search/list results). Use when a fact changes.
  Example: action='update', memory_id='abc123', content='User now prefers light mode'
\- list: Browse all memories, optionally filtered by category. No query needed.
\- delete: Remove a memory by ID. Requires 'memory_id'.
\- stats: Show database statistics (total memories, categories, embedding status).
\- export: Export all memories to JSONL format.
\- import: Import memories from JSONL data. Requires 'data'.
\- archived: List archived memories. Optionally filter by limit.
\- restore: Restore an archived memory by ID. Requires 'memory_id'.
\- consolidate: Summarize and consolidate similar memories in a category using LLM. Requires 'category'.

WORKFLOW: search -> not found? -> add. Found outdated? -> update (with memory_id from results).
PROACTIVE: save user preferences, decisions, corrections, project conventions.

Input parameters:

- `action` (string, required)
- `as_of`
- `auto` (boolean)
- `category`
- `content`
- `context_type` (string)
- `data`
- `depth` (integer)
- `entity_id`
- `importance`
- `include_archived` (boolean)
- `limit` (integer)
- `memory_id`
- `min_importance` (number)
- `mode` (string)
- `name`
- `query`
- `since`
- `source`
- `tags`
- `text`
- `until`

### `config` (~173 tokens)

Server config, sync, and setup. Actions: status|sync|set|warmup|setup_sync.

ACTION GUIDE — when to use each:
\- status: Show current configuration, setup status, and database stats.
\- sync: Trigger manual sync (requires sync_enabled=true + google_drive_client_id).
\- set: Update a setting. Requires 'key' and 'value'.
  Valid keys: 'sync_enabled' (true/false), 'sync_interval' (int), 'log_level' (str).
  Example: action='set', key='sync_enabled', value='true'
\- warmup: Pre-download embedding model (~570 MB) to avoid delays later.
\- setup_sync: Authenticate Google Drive via Device Code OAuth flow.

Input parameters:

- `action` (string, required)
- `key`
- `value`

### `help` (~55 tokens)

Full documentation for memory and config tools. topic: 'memory' | 'config'

ACTION GUIDE — when to use:
\- Use when you need detailed instructions on how to use specific server tools or features.

Input parameters:

- `topic` (string)

Output parameters:

- `result` (string)

### `config__open_relay` (~46 tokens)

Open the relay configuration form for mnemo-mcp in the user's browser. Returns the relay URL, whether the browser launched, and the current status.

Input parameters:

- `ctx` (required)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest#diagnostics

## Score history

- 2026-08-03: 28
- 2026-08-02: 28
- 2026-08-01: 28
- 2026-07-31: 30
- 2026-07-29: 30
- 2026-07-28: 30
- 2026-07-27: 30
- 2026-07-26: 1

## Links

- Changelog RSS feed: https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest/changelog.json
- HTML version of this page: https://verifymcp.io/servers/n24q02m-mnemo-mcp/docker-io-n24q02m-mnemo-mcp-latest
