Skip to main content

Memanto MCP Server

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.


Install

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).

Quick start (Claude Desktop)

  1. Get a Moorcheh API key from the console.
  2. Edit 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"
      }
    }
  }
}
  1. Restart Claude Desktop. Ask it to "remember that I prefer concise answers" — then in a brand-new chat tomorrow ask "what do I prefer?".

The first call auto-creates the my-assistant agent and namespace; every subsequent call reuses the same persistent memory.

Quick start (Cursor / Windsurf / Cline / Continue / Goose)

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

Available tools

The server registers 7 memory tools by default. Set MEMANTO_EXPOSE_ADMIN=true to also expose 4 agent-management tools.

Memory tools (always on)

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.

Agent admin tools (opt-in)

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 attribution

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.

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.

Running over HTTP / SSE

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.

How it works

┌──────────────┐    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)
  • On startup, settings are validated; the API key is verified lazily on first tool call.
  • On the first memory tool invocation for a given agent, the server ensures the agent exists (auto-creates if needed) and activates a JWT session. Sessions auto-renew before expiry, so long-running MCP connections never hit a session-expired error mid-conversation.
  • The server intentionally keeps the session alive on shutdown: JWT sessions are TTL-bound and other Memanto clients (CLI, REST) may want to share them.

Programmatic embedding

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")

Troubleshooting

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.

License

MIT — same as the Memanto project. See LICENSE.

Metadata

Release files for memanto-mcp 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memanto-mcp 0.1.3
File Size Uploaded
memanto_mcp-0.1.3.tar.gz 32.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for memanto-mcp 0.1.3
File Interpreter ABI Platform
memanto_mcp-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 57.4 kB

Release files / memanto_mcp-0.1.3.tar.gz

Download URL memanto_mcp-0.1.3.tar.gz
Size 32.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3e19e3568e580d71d65ab19d06d35c362a95d9ada5b1a3b2750867a8eb1dd143
BLAKE2b-256 checksum
How to use checksums
ab628e721e85e76a0b44c1c089262e020bf98765bb89d82acfbf87f1e1c47acb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / memanto_mcp-0.1.3-py3-none-any.whl

Download URL memanto_mcp-0.1.3-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46f4c81640360ce29d094a3a863cf72a9b006ef688f00000657456da0c12d81b
BLAKE2b-256 checksum
How to use checksums
c861db5156ac376a4771280fb53e92f51deaf7a5a96d1e4b5fcddddfbea869ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page