跳到正文
FunCoding

shodh-memory

官方 MCP Registry 已收录

Cognitive memory for AI agents — semantic search, Hebbian learning, knowledge graphs.

Star
306
版本
v0.2.0
许可证
Apache-2.0
最近提交
2026年10月5日

Shodh-Memory

Shodh-Memory MCP Server

Persistent cognitive memory for AI agents

npm License

Documentation | GitHub | Python SDK | Rust Crate


Features

  • Cognitive Architecture: 3-tier memory (working, session, long-term) based on Cowan's model
  • Hebbian Learning: "Neurons that fire together wire together" - associations strengthen with use
  • Semantic Search: Find memories by meaning using MiniLM-L6 embeddings
  • Knowledge Graph: Entity extraction and relationship tracking
  • Memory Consolidation: Automatic decay, replay, and strengthening
  • Idempotent: Content-hash dedup — identical memories are never stored twice
  • 1-Click Install: Auto-downloads native server binary for your platform
  • Offline-First: All models auto-downloaded on first run (~38MB total), no internet required after
  • Fast: <200ms API response, sub-millisecond graph lookup, 30-50ms semantic search
  • GTD Task Management: Full todo system with projects, subtasks, comments, and reminders

Installation

Add to your MCP client config:

Claude Desktop / Claude Code (claude_desktop_config.json):

{
  "mcpServers": {
    "shodh-memory": {
      "command": "npx",
      "args": ["-y", "@shodh/memory-mcp"],
      "env": {
        "SHODH_API_KEY": "your-api-key-here"
      }
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Codex CLI (.codex/config.toml):

[mcp_servers.shodh-memory]
startup_timeout_sec = 60
command = "npx"
args = ["-y", "@shodh/memory-mcp"]
env = { SHODH_API_KEY = "your-api-key-here" }

By default the MCP server talks to the backend over HTTP, which works on every platform. To route ordinary requests over authenticated local IPC instead, add SHODH_IPC_ENDPOINT with a platform-appropriate value. On Windows, use the per-user named pipe printed by the server (normally \\.\pipe\shodh-memory-<current-user-SID>); on macOS/Linux, use its absolute Unix socket path (under the platform data directory at shodh/shodh-memory.sock by default). A \\.\pipe\... value on macOS/Linux is rejected rather than silently forwarded to the spawned backend. The auto-spawn path passes an explicitly configured endpoint to the backend so both processes use the same value.

Note: First run downloads the server binary (~15MB) plus embedding model (~23MB). The startup_timeout_sec = 60 ensures enough time for initial setup.

For Cursor/other MCP clients: Similar configuration with the npx command.

Environment Variables

VariableDescriptionDefault
SHODH_API_KEYRequired. API key for authentication-
SHODH_IPC_ENABLEDServer listener toggle. The auto-spawned backend honors this value.true
SHODH_IPC_ENDPOINTLocal endpoint for MCP requests: a Unix socket path (macOS/Linux) or \\.\pipe\name (Windows). When set, ordinary MCP requests use local IPC instead of HTTP. A Windows pipe value on macOS/Linux is rejected.-
SHODH_IPC_REQUIREDFail closed when IPC cannot bind or authenticate. The TypeScript client also requires SHODH_IPC_ENDPOINT when enabled.false
SHODH_API_URLBackend server URLhttp://127.0.0.1:3030
SHODH_USER_IDLogical memory namespace; not an authorization tenantclaude-code
SHODH_NO_AUTO_SPAWNSet to true to disable auto-starting the backendfalse
SHODH_STREAMEnable/disable streaming ingestiontrue
SHODH_STREAM_WEBSOCKETIn IPC mode only, explicitly opt into WebSocket streaming through SHODH_API_URLfalse
SHODH_PROACTIVEEnable/disable proactive memory surfacingtrue

Local IPC

When SHODH_IPC_ENDPOINT is set, tool calls, proactive surfacing, health checks, resources, and prompts use local IPC. Each call opens one local connection and exchanges one versioned, newline-delimited JSON request and response. Frames are limited to eight MiB. An empty-auth health challenge first proves the endpoint knows the configured key. Ordinary requests then use HMAC proofs bound to that server instance and request body; the reusable API key is never sent over IPC or written to MCP stdout.

Streaming ingestion remains a WebSocket feature. It is disabled by default in IPC mode because the local protocol is finite request/response. To enable it explicitly, set SHODH_STREAM_WEBSOCKET=true and configure SHODH_API_URL for the server's HTTP WebSocket endpoint. Ordinary operations continue to use IPC.

If SHODH_IPC_ENDPOINT is absent, the MCP server preserves its existing HTTP and WebSocket behavior. When the variable is present, it is an explicit transport selection: an unavailable IPC endpoint is reported rather than silently retried over HTTP.

SHODH_USER_ID remains a logical namespace, as it is over REST. A configured API key has authority across namespaces. Use separate server/key instances when mutually untrusted tenants require an authorization boundary.

MCP Tools (51 total)

Memory — Store, search, and manage memories
ToolDescription
rememberStore a memory with optional type, tags, and metadata
recallSemantic search to find relevant memories. Pass full_content: true for complete bodies inline
proactive_contextAuto-surface relevant memories for current context. Pass full_content: true for complete bodies inline
context_summaryGet categorized context for session bootstrap
list_memoriesList all stored memories
read_memoryRead full content of a specific memory by ID
forgetDelete a specific memory by ID

Memory previews and truncation. recall, recall_by_tags, and proactive_context return previews of each memory body (default cap: 500 characters). When a body is longer than the cap, the output is truncated with an explicit, honest marker that reports the real lengths and the follow-up call, e.g. …[truncated 500/2340 chars — read_memory("<id>") for full]. A preview is never silently cut off — the absence of a marker means you are seeing the complete body. To get complete bodies inline (no markers), pass full_content: true on any of those three tools; this increases token usage, so prefer it for small result sets. read_memory always returns the full, untruncated content.

Todos (GTD) — Task management with projects and subtasks
ToolDescription
add_todoCreate a task with priority, due date, project, contexts
list_todosList/search todos with semantic or GTD-style filtering
update_todoUpdate task properties (status, priority, notes)
complete_todoMark a task as done (auto-creates next for recurring)
delete_todoPermanently delete a task
reorder_todoMove a task up or down within its status group
list_subtasksList subtasks of a parent todo
add_todo_commentAdd a comment to a task (progress, resolution)
list_todo_commentsList all comments on a task
update_todo_commentEdit an existing comment
delete_todo_commentDelete a comment
todo_statsGet todo statistics by status, overdue items
Projects — Organize todos into groups
ToolDescription
add_projectCreate a project with optional parent (sub-projects)
list_projectsList all projects with todo counts
archive_projectArchive a project (hidden but restorable)
delete_projectPermanently delete a project
Reminders — Time, duration, and context-triggered reminders
ToolDescription
set_reminderSet a reminder (time, duration, or keyword trigger)
list_remindersList pending/triggered/dismissed reminders
dismiss_reminderAcknowledge a triggered reminder
System — Health, backups, and diagnostics
ToolDescription
memory_statsGet statistics about stored memories
verify_indexCheck vector index integrity
repair_indexRe-index orphaned memories
token_statusGet current session token usage
reset_token_sessionReset token counter for new session
consolidation_reportView memory consolidation activity
backup_createCreate a backup of all memories
backup_listList available backups
backup_verifyVerify backup integrity (SHA-256)
backup_restoreRestore from a backup
backup_purgePurge old backups, keep most recent N

REST API (for Developers)

The server exposes a REST API at http://127.0.0.1:3030:

// Store a memory
const res = await fetch("http://127.0.0.1:3030/api/remember", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    content: "User prefers dark mode",
    memory_type: "Observation",
    tags: ["preferences", "ui"]
  })
});

// Semantic search
const results = await fetch("http://127.0.0.1:3030/api/recall", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    query: "user preferences",
    limit: 5
  })
});

Key Endpoints

EndpointMethodDescription
/healthGETHealth check
/api/rememberPOSTStore a memory
/api/recallPOSTSemantic search
/api/recall/tagsPOSTSearch by tags
/api/recall/datePOSTSearch by date range
/api/memoriesPOSTList all memories
/api/memory/{id}GET/PUT/DELETECRUD operations
/api/context_summaryPOSTGet context summary
/api/relevantPOSTProactive context surfacing
/api/batch_rememberPOSTStore multiple memories
/api/upsertPOSTCreate or update by external_id
/api/graph/{user_id}/statsGETKnowledge graph statistics
/api/consolidation/reportPOSTMemory consolidation report
/api/index/verifyPOSTVerify index integrity
/metricsGETPrometheus metrics

Cognitive Features

Hebbian Learning

Memories that are frequently accessed together form stronger associations. The system automatically:

  • Forms edges between co-retrieved memories
  • Strengthens connections with repeated co-activation
  • Enables Long-Term Potentiation (LTP) for permanent associations

Memory Consolidation

Background processes maintain memory health:

  • Decay: Unused memories gradually lose activation
  • Replay: High-value memories are periodically replayed
  • Pruning: Weak associations are removed
  • Promotion: Important memories move to long-term storage

3-Tier Architecture

Based on Cowan's working memory model:

  1. Working Memory: Recent, highly active memories
  2. Session Memory: Current session context
  3. Long-Term Memory: Persistent storage with vector indexing

How It Works

  1. Install: npx -y @shodh/memory-mcp downloads the package
  2. Auto-spawn: On first run, downloads the native server binary (~15MB) and embedding model (~23MB)
  3. Connect: MCP client connects to this MCP server via stdio; backend requests use local IPC when SHODH_IPC_ENDPOINT is set, otherwise HTTP
  4. Ready: Start using remember and recall tools
  5. Session end: when the host closes stdin (e.g. a Claude Desktop thread switch), the shim finishes any in-flight tool call and writes its response to the still-open stdout before exiting, so a mid-flight request is never silently dropped. Draining is bounded by a grace window; if it elapses the caller receives an explicit error instead of waiting out the host timeout.

The backend server runs locally and stores all data on your machine. No cloud dependency.

Usage Examples

"Remember that the user prefers Rust over Python for systems programming"
"Recall what I know about user's programming preferences"
"What context do you have about this project?"
"List my recent memories"
"Show me the consolidation report"

Platform Support

PlatformArchitectureStatus
Linuxx64Supported
macOSx64Supported
macOSARM64 (M1/M2)Supported
Windowsx64Supported
  • Python SDK: pip install shodh-memory - Native Python bindings
  • Rust Crate: cargo add shodh-memory - Use as a library

License

Apache-2.0

同类 MCP Server

官方

Memory

Knowledge graph-based persistent memory system

MOmodelcontextprotocol/servers91k近 7 天新增 182 个 star

Sui Knowledge Base (kapa.ai)

Semantic search across Sui documentation and knowledge sources, powered by kapa.ai

MYMystenLabs/sui7.8k近 7 天新增 7 个 star

Honcho

Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.

PLplastic-labs/honcho7.6k近 7 天新增 105 个 star

5ire

5ire is a cross-platform desktop AI assistant, MCP client. It compatible with major service providers, supports local knowledge base and tools via model context protocol servers .

NAnanbingxyz/5ire5.4k近 7 天新增 6 个 star

精选

Zotero MCP

在智能体里搜索、阅读和引用 Zotero 文献库中的论文。

5454yyyu/zotero-mcp5.3k近 7 天新增 81 个 star

Pollinations

Access Pollinations models and API capabilities through agent tools.

POpollinations/pollinations5.2k近 7 天新增 42 个 star