io.github.varun29ankuS/shodh-memory
NPM · @SHODH/MEMORY-MCP · SCANNED SEP 20
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 → Why this is hard to score →
Supply Chain Security92
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- 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
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
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 (Apache-2.0).Pass
- Actively maintained (last published 163 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability88
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- 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 Management93
- Stability observed for 28 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 Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "forget" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
How do I install the io.github.varun29ankuS/shodh-memory MCP server?
io.github.varun29ankuS/shodh-memory runs locally as an npm package, launched with npx -y @shodh/memory-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @shodh/memory-mcp
claude mcp add varun29ankus-shodh-memory -- npx -y @shodh/memory-mcp
{
"mcpServers": {
"varun29ankus-shodh-memory": {
"command": "npx",
"args": [
"-y",
"@shodh/memory-mcp"
]
}
}
} {
"servers": {
"varun29ankus-shodh-memory": {
"command": "npx",
"args": [
"-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": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@shodh/memory-mcp"
]
}
}
} assistant mcp add varun29ankus-shodh-memory -t stdio -c npx -a -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.
- 18 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.
- 16 Sept 26 −2
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 11 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.
- 9 Sept 26 −2
- Stability: pass → 0.80 functional
- 8 Sept 26 0
- Stability: 0.97 → pass security
- 7 Sept 26 +1
- Security disclosure: unverified → pass ▲ functional
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 20 Sept 2026 · Analysed npm/@shodh/memory-mcp@0.2.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| postinstall | unreviewed | node scripts/postinstall.cjs |
Background: Why install scripts are a supply-chain risk →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| 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 →
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.
What is the io.github.varun29ankuS/shodh-memory MCP server?
io.github.varun29ankuS/shodh-memory is an MCP server listed in the public MCP registry as io.github.varun29ankuS/shodh-memory. Cognitive memory for AI agents, semantic search, Hebbian learning, knowledge graphs. This page covers its npm package (@shodh/memory-mcp).
Is the io.github.varun29ankuS/shodh-memory MCP server safe to use?
io.github.varun29ankuS/shodh-memory scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 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 io.github.varun29ankuS/shodh-memory MCP server expose?
io.github.varun29ankuS/shodh-memory exposes 38 tools: remember, recall, recall_by_tags, context_summary, list_memories, and 33 more. Their descriptions and schemas cost roughly 3,718 tokens of context every time the server is loaded.
Is the io.github.varun29ankuS/shodh-memory MCP server still maintained?
io.github.varun29ankuS/shodh-memory is still listed as active in the MCP registry. We last reached this channel on 20 September 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 io.github.varun29ankuS/shodh-memory MCP server under?
io.github.varun29ankuS/shodh-memory declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.