memanto-mcp
Typed semantic memory for Claude. Memory with opinions, designed for regulated B2B agents.
README
memanto-mcp
Typed semantic memory for Claude. Memory with opinions, designed for regulated B2B agents.
Most "memory MCP" servers give you save_memory(text) and call it done. This one ships an opinionated memory model — typed records (fact, decision, commitment, instruction, …), provenance and confidence on every write, tenant-aware scoping, and bi-temporal recall — together with a Claude skill that tells the model when to remember vs. recall vs. answer, and how to keep citations and tenancy clean.
If you're building B2B agents on Anthropic's platform — legal tech, finance, healthcare, customer ops, internal knowledge work — that's the audience this is built for.
What's distinctive
- Typed memory. Thirteen first-class memory types (
fact,preference,goal,decision,commitment,instruction,relationship,context,observation,event,artifact,learning,error). Wrong type = noisy recall. Picking the right type is part of the API contract. - Provenance and confidence on every record.
explicit_statement/inferred/observed/validated/corrected/imported, plus a 0.0–1.0 confidence score. Filterable on recall viamin_confidence. The audit trail is in the data, not bolted on. - Bi-temporal reads.
recall_as_of(date)returns memory as it stood on a date;recall_currentexcludes superseded/expired records. Built for "what did we know on <date>" workflows. - A bundled Claude skill that earns its keep.
skills/memanto-memory/SKILL.mdtells Claude when to use each verb, how to scope memories to tenant boundaries via compositeagent_id, when raw recall beats synthesized answers (drafting external-facing text → raw recall, every time), and how to treat memory bodies as untrusted on read. - One process. Wraps the memanto Python service layer directly — no separate REST process to run.
What this is not
- Not a general-purpose vector store. Memories are short, structured, and typed; if you need to index 100k contracts, do that in your document store and use this for the decisions, commitments, and observations the agent makes about them.
- Not backend-agnostic (yet). Currently coupled to Moorcheh as the vector backend. Free tier is 100k ops/month; pluggable backends are on the roadmap.
- Not an enterprise audit system. The skill is opinionated about what regulated deployments need; the server doesn't yet enforce all of it. See the roadmap for the gaps.
Tools
Nine MCP tools, namespaced under memanto:
| Tool | Purpose |
|---|---|
memanto_remember |
Store a typed memory (fact, preference, goal, decision, …) |
memanto_recall |
Semantic search over an agent's memory |
memanto_recall_current |
Recall only currently-active (non-superseded) memories |
memanto_recall_as_of |
Recall as of a specific date |
memanto_answer |
RAG-grounded answer using memanto's built-in LLM |
memanto_create_agent |
Provision a new agent (creates a Moorcheh namespace) |
memanto_list_agents |
List known agents |
memanto_get_agent |
Get a single agent's metadata |
memanto_delete_agent |
Delete an agent and all its memory (destructive) |
Install
As a Cowork plugin (Anthropic's Cowork mode)
- Download the latest
memanto-mcp.pluginrelease. - Drop it into Cowork via the plugin install UI.
- Set
MOORCHEH_API_KEYin the environment Cowork inherits, then restart Cowork.
As a standalone MCP server (Claude Code, Cline, Cursor, Continue, …)
pip install memanto-mcp
export MOORCHEH_API_KEY="mch_..."
Then point your MCP host at the binary. Claude Code:
claude mcp add memanto -- memanto-mcp
Cursor / Cline / Continue: add to your MCP config as a stdio server with command memanto-mcp.
For the bundled skill to load in MCP hosts that support skills (Cowork, Claude Code with the skills plugin), copy skills/memanto-memory/SKILL.md into the host's skills directory.
Get a Moorcheh API key
Sign up at https://console.moorcheh.ai/api-keys. Free tier is 100k ops/month.
First run
> Create a memanto agent called acme:matter-4711:user-jdoe and remember
> that this matter has a 60-day notice period.
Claude calls memanto_create_agent then memanto_remember(memory_type="fact", content="Matter 4711 (Acme): 60-day notice period.", confidence=0.95).
> What do we know about Matter 4711?
Claude calls memanto_recall(query="Matter 4711", agent_id="acme:matter-4711:user-jdoe") and quotes the stored fact.
> What was our position on Matter 4711 before the redesign on 2026-03-01?
Claude calls memanto_recall_as_of(query="Matter 4711 position", agent_id=..., as_of_date="2026-02-28").
How the skill thinks about scoping
The server uses agent_id as the scoping primitive. The skill teaches Claude to treat it as a composite key:
agent_id = "<tenant>:<workspace>:<actor>"
For example: acme:matter-4711:user-jdoe. Cross-tenant recall is the highest-impact failure mode in production memory systems — the skill makes Claude refuse it loudly rather than silently returning empty results when the boundary is wrong.
For axes that don't fit the composite key (jurisdiction, region, conflict-of-interest group, product line), use tags — they're filterable on recall.
Drafting rule
When the user is composing external-facing text — a contract amendment, a customer-facing email, a regulatory filing, a clinical summary, a briefing memo — the skill instructs Claude to use memanto_recall (raw hits) and quote, not memanto_answer (synthesized). The audit cost of a paraphrased citation is too high.
When the user is researching, exploring, or briefing themselves, memanto_answer is fine.
Roadmap
The honest gaps — what the skill assumes you'd want in a fully regulated deployment and what the server doesn't do yet — are documented in ROADMAP.md. Highlights: structured source_uri + source_span fields (citations currently get encoded inside content), versioned mutations + redact API, pluggable storage backends, and an HTTP transport for non-stdio hosts.
Repository layout
memanto-mcp/
├── .claude-plugin/plugin.json # Cowork plugin manifest
├── .mcp.json # MCP server registration (Cowork)
├── server/memanto_mcp_server.py # FastMCP server (stdio)
├── skills/memanto-memory/SKILL.md # the bundled skill
├── pyproject.toml # for `pip install memanto-mcp`
├── README.md # this file
├── ROADMAP.md # what's missing, ranked
├── CONTRIBUTING.md
├── CHANGELOG.md
├── LICENSE # MIT
└── docs/
└── launch-post.md # cross-post draft
Contributing
See CONTRIBUTING.md. The two highest-leverage contributions right now are (1) a pluggable storage backend (interface + a SQLite or pgvector implementation) and (2) a structured citation model (source_uri + source_span + quote). Both are on the roadmap.
License
MIT. See LICENSE.
Credits
- memanto and Moorcheh — the typed memory model and vector backend this wraps.
- Anthropic's MCP and Agent Skills — the protocol and skill format.
- The teams shipping enterprise agentic systems whose published patterns informed the skill: Harvey, Hebbia, Robin AI, Clio, EvenUp, Casetext.
Not affiliated with Anthropic or Moorcheh.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。