io.github.varun29ankuS/shodh-memory
NPM · @SHODH/MEMORY-MCP · SCANNED AUG 3
Cognitive memory for AI agents — semantic search, Hebbian learning, knowledge graphs.
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 →
Supply Chain Security80
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
- Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- 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 (Apache-2.0).Pass
- Actively maintained (last published 115 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability64
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (poor).Fail
- Tool/resource definitions use about 3770 tokens (~89/item across 42 items; 38 tools + 4 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 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
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @shodh/memory-mcp
claude mcp add varun29ankus-shodh-memory -- npx -y @shodh/memory-mcp
codex mcp add varun29ankus-shodh-memory -- npx -y @shodh/memory-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"varun29ankus-shodh-memory": {
"type": "local",
"command": [
"npx",
"-y",
"@shodh/memory-mcp"
],
"enabled": true
}
}
} openclaw mcp add varun29ankus-shodh-memory --command npx --arg -y --arg @shodh/memory-mcp
mcp_servers:
varun29ankus-shodh-memory:
command: "npx"
args: ["-y", "@shodh/memory-mcp"] {
"mcpServers": {
"varun29ankus-shodh-memory": {
"command": "npx",
"args": [
"-y",
"@shodh/memory-mcp"
]
}
}
} 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.
- 3 Aug 26 +40
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → partial ▲ security
- The scripts that run when this package is installed changed: postinstall security
- MCP protocol: unverified → fail ▼ functional
- Stability: unverified → 0.23 ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Schema quality: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: Apache-2.0 functional
- 2 Aug 26 −30
- Provenance: fail → unverified ▼ security
- Install scripts: partial → unverified ▼ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- The scripts that run when this package is installed changed: postinstall security
- Capabilities: fail → unverified ▼ functional
- License: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: Apache-2.0 functional
- 1 Aug 26 −10
- Known CVEs: partial → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 31 Jul 26 +35
- Malware scan: pass → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 −28
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- 27 Jul 26 53
First indexed and scored.
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 3 Aug 2026 · Analysed npm/@shodh/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| postinstall | unreviewed | node scripts/postinstall.cjs |
Dependencies 94 packages
94 packages in the resolved dependency tree · 94 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
add_project ~92
Create a new project to group todos. Use parent to create a sub-project under another project.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Project description |
| name | string | yes | Project name |
| parent | string | — | Parent project name or ID to create a sub-project |
| prefix | string | — | Custom prefix for todo IDs (e.g., 'BOLT', 'MEM'). Auto-derived from name if not provided. |
No output schema declared.
No examples provided.
add_todo ~194
Add a task to your todo list. Supports GTD workflow with projects, contexts (@computer, @phone), priorities, due dates, and subtasks (via parent_id).
| Name | Type | Req | Description |
|---|---|---|---|
| blocked_on | string | — | Who/what you're waiting on (sets status to blocked) |
| content | string | yes | What needs to be done |
| contexts | array | — | Contexts like @computer, @phone, @errands |
| due_date | string | — | Due date - ISO format or 'today', 'tomorrow', 'monday', etc. |
| notes | string | — | Additional notes |
| priority | string | — | Priority level (default: medium) |
| project | string | — | Project name (created if doesn't exist) |
| recurrence | string | — | Recurrence pattern for repeating tasks |
| status | string | — | Initial status (default: todo) |
| tags | array | — | Optional tags for categorization |
No output schema declared.
No examples provided.
add_todo_comment ~95
Add a comment to a todo. Use to track progress, notes, or resolution details.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_type | string | — | Type of comment: comment (default), progress (updates), resolution (fix details), activity (system) |
| content | string | yes | Comment content (supports markdown) |
| todo_id | string | yes | Todo ID or short prefix (e.g., 'BOLT-1', 'MEM-2') |
No output schema declared.
No examples provided.
archive_project ~36
Archive a project. Archived projects are hidden by default but can be restored.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | yes | Project name or ID to archive |
No output schema declared.
No examples provided.
backup_create ~37
Create a backup of all memories. Returns backup metadata including ID, size, and checksum. Backups are stored locally and can be restored later.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
backup_list ~27
List all available backups for this user. Returns backup history with IDs, timestamps, and sizes.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
backup_purge ~45
Purge old backups, keeping only the most recent N. Useful for managing disk space.
| Name | Type | Req | Description |
|---|---|---|---|
| keep_count | number | — | Number of backups to keep (default: 7) |
No output schema declared.
No examples provided.
backup_restore ~53
Restore a previously created backup by ID. This replaces all current data for the user with the backup contents. Server restart is recommended after restore.
| Name | Type | Req | Description |
|---|---|---|---|
| backup_id | number | yes | The backup ID to restore (from backup_list) |
No output schema declared.
No examples provided.
backup_verify ~41
Verify backup integrity using SHA-256 checksum. Use to check if a backup is corrupted before restoring.
| Name | Type | Req | Description |
|---|---|---|---|
| backup_id | number | yes | The backup ID to verify |
No output schema declared.
No examples provided.
complete_todo ~38
Mark a todo as complete. For recurring tasks, automatically creates the next occurrence.
| Name | Type | Req | Description |
|---|---|---|---|
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
consolidation_report ~93
Get a report of what the memory system has been learning. Shows memory strengthening/decay events, edge formation, fact extraction, and maintenance cycles. Use this to understand how your memories are evolving.
| Name | Type | Req | Description |
|---|---|---|---|
| since | string | — | Start of report period (ISO 8601 format). Defaults to 24 hours ago. |
| until | string | — | End of report period (ISO 8601 format). Defaults to now. |
No output schema declared.
No examples provided.
context_summary ~103
Get a condensed summary of recent learnings, decisions, and context. Use this at the start of a session to quickly understand what you've learned before.
| Name | Type | Req | Description |
|---|---|---|---|
| include_context | boolean | — | Include project context (default: true) |
| include_decisions | boolean | — | Include recent decisions (default: true) |
| include_learnings | boolean | — | Include recent learnings (default: true) |
| max_items | number | — | Maximum items per category (default: 5) |
No output schema declared.
No examples provided.
delete_project ~61
Permanently delete a project. Use delete_todos=true to also delete all todos in the project.
| Name | Type | Req | Description |
|---|---|---|---|
| delete_todos | boolean | — | Also delete all todos in this project (default: false) |
| project | string | yes | Project name or ID to delete |
No output schema declared.
No examples provided.
delete_todo ~27
Delete a todo permanently.
| Name | Type | Req | Description |
|---|---|---|---|
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
delete_todo_comment ~42
Delete a comment from a todo.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | string | yes | Comment ID (UUID) |
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
dismiss_reminder ~41
Dismiss/acknowledge a triggered reminder. Call this after you've handled a reminder.
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | ID of the reminder to dismiss |
No output schema declared.
No examples provided.
forget ~28
Delete a specific memory by ID
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The ID of the memory to delete |
No output schema declared.
No examples provided.
list_memories ~25
List all stored memories
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of results |
No output schema declared.
No examples provided.
list_projects ~18
List all projects with todo counts and status breakdown.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_reminders ~36
List all pending reminders. Use to check what reminders are scheduled.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | — | Filter by status (default: pending) |
No output schema declared.
No examples provided.
list_subtasks ~43
List subtasks of a parent todo. Use add_todo with parent_id to create subtasks.
| Name | Type | Req | Description |
|---|---|---|---|
| parent_id | string | yes | Parent todo ID or short prefix |
No output schema declared.
No examples provided.
list_todo_comments ~48
List all comments and activity history for a specific todo.
| Name | Type | Req | Description |
|---|---|---|---|
| todo_id | string | yes | Todo ID or short prefix (e.g., 'BOLT-1', 'MEM-2') |
No output schema declared.
No examples provided.
list_todos ~152
List or search todos. Supports semantic search via query parameter, or GTD-style filtering. Returns Linear-style formatted output grouped by status.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | — | Filter by context (e.g., @computer) |
| due | string | — | Filter by due date |
| limit | number | — | Maximum results (default: 50) |
| offset | number | — | Skip first N items for pagination (default: 0) |
| priority | string | — | Filter by priority |
| project | string | — | Filter by project name |
| query | string | — | Semantic search query - when provided, uses vector similarity to find matching todos instead of listing all |
| status | array | — | Filter by status(es) |
No output schema declared.
No examples provided.
memory_stats ~14
Get statistics about stored memories
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
proactive_context ~333
REQUIRED: Call this tool with EVERY user message to surface relevant memories and build conversation history. Pass the user's message as context. This enables: (1) retrieving memories relevant to what the user is asking, (2) building persistent memory of the conversation for future sessions. The system analyzes entities, semantic similarity, and recency to find contextually appropriate memories. Auto-ingest stores the context automatically. USAGE: Always call this FIRST when you receive a user message, passing their message as the context parameter.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_ingest | boolean | — | Automatically store the context as a Conversation memory (default: true). Set to false to only surface memories without storing. |
| context | string | yes | The current conversation context or topic (e.g., recent messages, current task description) |
| entity_match_weight | number | — | Weight for entity matching in relevance scoring (0.0-1.0, default: 0.4) |
| max_results | number | — | Maximum number of memories to surface (default: 5) |
| memory_types | array | — | Filter to specific memory types (e.g., ['Decision', 'Learning', 'Context']). Empty means all types. |
| recency_weight | number | — | Weight for recency boost in relevance scoring (0.0-1.0, default: 0.2) |
| semantic_threshold | number | — | Minimum semantic similarity (0.0-1.0) for memories to be surfaced (default: 0.65) |
| tool_actions | array | — | Tool/actuator actions performed since last proactive_context call. Used for causal feedback attribution. |
No output schema declared.
No examples provided.
read_memory ~62
Read the FULL content of a specific memory by ID. Use this when you need to see the complete text of a memory that was truncated in search results.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | string | yes | The memory ID (full UUID or short prefix like '5581cd02') |
No output schema declared.
No examples provided.
recall ~501
Search memories AND todos using semantic similarity. Returns both relevant memories and matching todos. Use this to find past experiences, decisions, context, or pending work. Modes: 'semantic' (vector similarity), 'associative' (graph traversal), 'temporal' (time-based retrieval), 'hybrid' (combined), 'spatial' (geo-location based), 'mission' (mission context), 'action_outcome' (reward-based learning).
| Name | Type | Req | Description |
|---|---|---|---|
| action_type | string | — | Filter by action type (e.g., 'navigate', 'grasp', 'dock') |
| failures_only | boolean | — | If true, only return failure/error experiences |
| geo_lat | number | — | Spatial filter: center latitude (-90 to 90). Requires geo_lon and geo_radius_meters. |
| geo_lon | number | — | Spatial filter: center longitude (-180 to 180). Requires geo_lat and geo_radius_meters. |
| geo_radius_meters | number | — | Spatial filter: search radius in meters. Requires geo_lat and geo_lon. |
| limit | number | — | Maximum number of memory results (default: 5). Todos limited to 5. |
| mission_id | string | — | Filter by mission identifier |
| mode | string | — | Retrieval mode: 'semantic' for pure vector similarity, 'associative' for graph-based traversal (follows learned connections), 'temporal' for time-based retrieval, 'hybrid' for density-dependent combi… |
| outcome_type | string | — | Filter by outcome type: success, failure, partial, aborted, timeout |
| query | string | yes | Natural language search query - searches both memories and todos |
| reward_max | number | — | Filter by maximum reward value (-1.0 to 1.0) |
| reward_min | number | — | Filter by minimum reward value (-1.0 to 1.0) |
| robot_id | string | — | Filter by robot/drone identifier (for multi-robot systems) |
| session_id | string | — | Session ID for session-scoped retrieval. When provided, retrieves memories from that session's time window. Forces temporal mode. |
| tags | array | — | Filter by tags (any match) |
| terrain_type | string | — | Filter by terrain type: indoor, outdoor, urban, rural, water, aerial |
No output schema declared.
No examples provided.
recall_by_tags ~92
Find memories by tags. Returns memories matching ANY of the provided tags. Useful for finding memories by category (e.g., 'tool:Edit', 'file:src/main.rs', 'source:hook', 'error', 'session-summary').
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of results (default: 50) |
| tags | array | yes | Tags to search for (returns memories matching ANY of these tags) |
No output schema declared.
No examples provided.
remember ~667
Store a memory for future recall. Use this to remember important information, decisions, user preferences, project context, or anything you want to recall later.
| Name | Type | Req | Description |
|---|---|---|---|
| action_type | string | — | Action type name (e.g., 'navigate', 'grasp', 'dock') |
| content | string | yes | The content to remember (observation, decision, learning, etc.) |
| created_at | string | — | Optional ISO 8601 timestamp for the memory (e.g., '2025-12-15T06:30:00Z'). If not provided, uses current time. |
| credibility | number | — | Credibility score: 0.0 to 1.0 (1.0 = verified facts, 0.3 = inferred) |
| emotion | string | — | Dominant emotion label (e.g., 'joy', 'frustration', 'surprise') |
| emotional_arousal | number | — | Arousal level: 0.0 (calm) to 1.0 (highly aroused). E.g., routine task: 0.2, critical issue: 0.9 |
| emotional_valence | number | — | Emotional valence: -1.0 (negative) to 1.0 (positive), 0.0 = neutral. E.g., bug found: -0.3, feature shipped: 0.7 |
| episode_id | string | — | Episode ID - groups memories into coherent episodes/conversations |
| geo_location | array | — | GPS coordinates [latitude, longitude, altitude] in WGS84 |
| heading | number | — | Heading in degrees (0-360) |
| importance | number | — | Optional importance override (0.0-1.0). Bypasses auto-calculation. Use for memories where importance is known: Decision=0.8, Learning=0.7, Error=0.7, Discovery=0.6, Observation=0.3 |
| local_position | array | — | Local position [x, y, z] in meters (robot-local frame) |
| mission_id | string | — | Mission identifier for grouping experiences |
| outcome_type | string | — | Outcome type: success, failure, partial, aborted, timeout |
| parent_id | string | — | Parent memory ID for hierarchical organization. Creates memory trees (e.g., '71-research' -> 'algebraic' -> '21×27≡-1') |
| preceding_memory_id | string | — | ID of the preceding memory (for temporal chains) |
| reward | number | — | Reinforcement learning reward signal (-1.0 to 1.0) |
| robot_id | string | — | Robot/drone identifier for multi-robot systems |
| sensor_data | object | — | Raw sensor readings (e.g., {battery: 72.5, temperature: 23.1}) |
| sequence_number | number | — | Sequence number within episode (1, 2, 3...) |
| source_type | string | — | Source type: where the information came from |
| tags | array | — | Optional tags for categorization |
| terrain_type | string | — | Terrain type: indoor, outdoor, urban, rural, water, aerial |
| type | string | — | Type of memory |
No output schema declared.
No examples provided.
reorder_todo ~51
Move a todo up or down within its status group. Use to prioritize tasks manually.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | yes | Direction to move the todo |
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
repair_index ~34
Repair vector index by re-indexing orphaned memories. Use this when verify_index shows unhealthy status. Returns count of repaired memories.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
reset_token_session ~35
Reset the token counter for a new session. Call this when starting a new conversation or after context has been compressed/summarized.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
set_reminder ~245
Set a reminder for the future. Triggers on time (at specific time or after duration) or context match (when keywords appear in conversation). Reminders will surface automatically when conditions are met.
| Name | Type | Req | Description |
|---|---|---|---|
| after_seconds | number | — | Seconds from now for 'duration' trigger |
| content | string | yes | What to remember/remind about |
| keywords | array | — | Keywords for 'context' trigger - reminder surfaces when any keyword appears |
| priority | number | — | Priority 1-5 (5 = highest, default: 3) |
| tags | array | — | Optional tags for categorization |
| threshold | number | — | Semantic similarity threshold for 'context' trigger (0.0-1.0, default: 0.7). Lower values match more broadly, higher values require closer semantic match. |
| trigger_at | string | — | ISO 8601 timestamp for 'time' trigger (e.g., '2025-12-23T18:00:00Z') |
| trigger_type | string | yes | When to trigger: 'time' (at specific ISO timestamp), 'duration' (after N seconds), 'context' (when keywords match) |
No output schema declared.
No examples provided.
todo_stats ~23
Get statistics about your todos - counts by status, overdue items, etc.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
token_status ~36
Get current token usage status for this session. Returns tokens used, budget remaining, and percentage consumed. Use this to check context window health.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
update_todo ~163
Update a todo's properties. Use short ID prefix (e.g., SHO-1a2b) or full ID.
| Name | Type | Req | Description |
|---|---|---|---|
| blocked_on | string | — | Who/what you're waiting on |
| content | string | — | New content |
| contexts | array | — | New contexts |
| due_date | string | — | New due date |
| notes | string | — | Additional notes |
| parent_id | string | — | Parent todo ID or short prefix to make this a subtask. Pass empty string to remove parent. |
| priority | string | — | New priority |
| project | string | — | New project name |
| status | string | — | New status |
| tags | array | — | New tags |
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
update_todo_comment ~53
Update an existing comment on a todo.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | string | yes | Comment ID (UUID) |
| content | string | yes | New comment content |
| todo_id | string | yes | Todo ID or short prefix |
No output schema declared.
No examples provided.
verify_index ~34
Verify vector index integrity - diagnose orphaned memories that are stored but not searchable. Returns health status and count of orphaned memories.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.