Memory
Knowledge graph-based persistent memory system
MOmodelcontextprotocol/servers91k182 new stars in the last 7 days
MCP server for Memanto - persistent semantic memory for any MCP-compatible agent
mcp-name: io.github.moorcheh-ai/memanto
Persistent semantic memory for any MCP-compatible agent.
This package exposes Memanto's memory primitives —
remember, recall, answer, and friends — as
Model Context Protocol (MCP) tools so any
MCP client (Claude Desktop, Cursor, Windsurf, Cline, Continue, Goose,
custom agents, …) can plug into long-term memory in a single config line.
One Moorcheh API key → typed semantic memory across every agent that shares the namespace, with sub-90 ms retrieval, conflict detection, and zero ingestion latency.
pip install memanto-mcp
Requires Python 3.10+, memanto>=0.2.13, mcp>=1.2,<2, and a
Moorcheh API key
(free tier: 100K ops/month).
claude_desktop_config.json (Settings → Developer → Edit Config):{
"mcpServers": {
"memanto": {
"command": "memanto-mcp",
"env": {
"MOORCHEH_API_KEY": "mch_xxxxxxxxxxxxxxxxxx",
"MEMANTO_DEFAULT_AGENT_ID": "my-assistant"
}
}
}
}
The first call auto-creates the my-assistant agent and namespace; every
subsequent call reuses the same persistent memory.
Most clients consume a config file in the standard MCP shape. The same JSON snippet works almost verbatim:
{
"mcpServers": {
"memanto": {
"command": "memanto-mcp",
"env": {
"MOORCHEH_API_KEY": "mch_xxxxxxxxxxxxxxxxxx",
"MEMANTO_DEFAULT_AGENT_ID": "cursor-workspace"
}
}
}
}
| Client | Config path |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows) |
| Cursor | ~/.cursor/mcp.json (or per-project .cursor/mcp.json) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline (VS Code) | ~/.config/Code/User/globalStorage/cline.cline/settings/cline_mcp_settings.json |
| Continue | ~/.continue/config.json → experimental.modelContextProtocolServers |
| Goose | ~/.config/goose/config.yaml |
The server registers 7 memory tools by default. Set
MEMANTO_EXPOSE_ADMIN=true to also expose 4 agent-management tools.
| Tool | When the agent should call it |
|---|---|
remember | Persist a single new fact/preference/decision/goal/instruction. |
batch_remember | Persist up to 100 memories in one call (e.g. extracted from a document). |
recall | Semantic search — always check here before asking the user to repeat stable info. |
recall_recent | "What did we just decide?" — newest-first, no query needed. |
recall_as_of | Point-in-time recall — "what did we know on 2025-11-01?" |
recall_changed_since | Differential — "what's new since I last checked?" |
answer | RAG: grounded LLM answer synthesized over the agent's memories. |
Enabled when MEMANTO_EXPOSE_ADMIN=true:
| Tool | Purpose |
|---|---|
create_agent | Create a new memory namespace. |
list_agents | List every agent the API key can see. |
get_agent | Look up an agent's metadata. |
delete_agent | Remove an agent's local metadata. |
Memory types accepted by remember / batch_remember:
fact, preference, goal, decision, artifact, learning, event,
instruction, relationship, context, observation, commitment,
error.
Provenance values: explicit_statement, inferred, corrected,
validated, observed, imported.
source names who wrote a memory, so recall can be attributed and filtered
per writer. It is open: user, agent, tool, system, or a specific
writer such as cursor, codex, claude_code, mem0. Labels are limited to
64 letters, digits, ., _, or - so that #source:<value> stays a usable
filter.
When a tool call omits source, the server attributes the write to the
connected MCP client from the initialize handshake (cursor, codex,
claude-ai, …), falling back to mcp-agent when the client sends no name.
Two editors sharing one agent therefore stay distinguishable in recall without
any extra configuration.
All config is via environment variables (load order: process env →
.env file in the working directory).
| Variable | Required | Default | Description |
|---|---|---|---|
MOORCHEH_API_KEY | yes | — | Moorcheh API key. |
MEMANTO_DEFAULT_AGENT_ID | recommended | none | Default agent. When set, tool calls may omit agent_id. |
MEMANTO_AGENT_PATTERN | no | tool | Pattern (support/project/tool) used when auto-creating the default agent. |
MEMANTO_AGENT_AUTO_CREATE | no | true | Create the default agent on first use if missing. Explicit non-default agents must already exist. |
MEMANTO_SESSION_DURATION_HOURS | no | server default (6) | Session lifetime in hours. |
MEMANTO_EXPOSE_ADMIN | no | false | Register the 4 agent-management tools. |
MEMANTO_MCP_TRANSPORT | no | stdio | stdio, sse, or streamable-http. |
MEMANTO_MCP_HOST | no | 127.0.0.1 | Bind host for sse/http transports. |
MEMANTO_MCP_PORT | no | 8765 | Bind port for sse/http transports. |
MEMANTO_MCP_LOG_LEVEL | no | INFO | Log level (logs are always sent to stderr). |
CLI flags (memanto-mcp --transport sse --port 9000) override env vars.
For remote clients or multi-process setups, run the server over a network transport:
# Streamable HTTP (recommended modern transport)
memanto-mcp --transport streamable-http --host 0.0.0.0 --port 8765
# Server-Sent Events (older, still widely supported)
memanto-mcp --transport sse --host 0.0.0.0 --port 8765
Then point your client at http://your-host:8765/mcp (or whatever path the
chosen transport advertises). Pair with a reverse proxy + auth for
production deployments — the server itself authenticates upstream to
Moorcheh using your API key but does not authenticate inbound MCP
clients.
┌──────────────┐ MCP/stdio ┌──────────────────┐ Moorcheh API ┌─────────────┐
│ Claude / IDE │ ──────────────► │ memanto-mcp │ ────────────────► │ Moorcheh │
│ (client) │ ◄────────────── │ (this package) │ ◄──────────────── │ Service │
└──────────────┘ tool calls └──────────────────┘ HTTPS+API key └─────────────┘
│
└─ uses memanto.cli.client.SdkClient
(same client the Memanto CLI uses)
If you're building a custom MCP host or wiring this server into a larger process, you can construct the FastMCP instance yourself:
from memanto_mcp import MCPServerSettings, build_server
settings = MCPServerSettings() # reads env / .env
mcp = build_server(settings)
# Add your own tools alongside Memanto's, then run.
mcp.run(transport="stdio")
| Symptom | Fix |
|---|---|
configuration error: MOORCHEH_API_KEY is required | Set the env var in your MCP client config's env block. |
Agent '…' does not exist and MEMANTO_AGENT_AUTO_CREATE is disabled | Either re-enable auto-create or call create_agent (admin tools) / memanto agent create <id> once. |
| Tools never appear in the client | Confirm the client supports MCP and the config path matches. Look at the client's MCP log: the server's stderr lines (prefixed memanto_mcp) will appear there on startup. |
| Garbled output in stdio mode | Something on your side is writing to stdout — that channel is reserved for JSON-RPC. Move logs to stderr. The server itself only writes to stderr. |
| Slow first call | Cold-start cost: SDK import + first session activation. Subsequent calls reuse the live session. |
MIT — same as the Memanto project. See LICENSE.
Knowledge graph-based persistent memory system
MOmodelcontextprotocol/servers91k182 new stars in the last 7 days
Semantic search across Sui documentation and knowledge sources, powered by kapa.ai
MYMystenLabs/sui7.8k7 new stars in the last 7 days
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
PLplastic-labs/honcho7.6k105 new stars in the last 7 days
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.4k6 new stars in the last 7 days
Search, read and cite papers from your Zotero library in any AI agent.
5454yyyu/zotero-mcp5.3k81 new stars in the last 7 days
Access Pollinations models and API capabilities through agent tools.
POpollinations/pollinations5.2k42 new stars in the last 7 days