mcpbeat Sign in

Moltline Recall MCP Server

answering

Moltline Recall is answering right now. Last checked 12 min ago. It exposes 6 tools. Last commit 19 Sep 2026.

A portable knowledge-graph memory you pass in and get back. No database. 4 of 6 free.

Uptime history 58 days of history · worst day 94%
58 days agonow
100.0%
Uptime 24h
92 of 92 checks
6
Tools
read from the server
381 ms
Response time
average over 24h
0
Stars
last commit 19 Sep 2026

Nothing serious here today

Today is the operative word: we check Moltline Recall every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 12 min ago.

run in your terminal
claude mcp add recall --transport http https://mcp.moltlinestudio.com/recall
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "recall": {
      "url": "https://mcp.moltlinestudio.com/recall"
    }
  }
}
~/.codex/config.toml
[mcp_servers.recall]
url = "https://mcp.moltlinestudio.com/recall"
.cursor/mcp.json
{
  "mcpServers": {
    "recall": {
      "url": "https://mcp.moltlinestudio.com/recall"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "recall": {
      "url": "https://mcp.moltlinestudio.com/recall"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

graph
graph_at_time
See the memory as it stood on a given day, optionally faded by age. PREMIUM (license). Relations carrying since and until are filtered to those in force on the date; with a half-life, confidence decays exponentially with age so a two-year-old belief does not weigh the same as last week's. Typical input {"graph": {...}, "as_of": "2026-06-01", "half_life_days": 180} returns {"as_of": "2026-06-01", "graph": {...}, "dropped": {"not_yet": 1, "expired": 2}, "decayed": 4}. Use when the answer depends on when you ask. Not for what changed between two points - that is graph_diff, which does not need dates at all. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "as_of must be a date like 2026-06-01"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
graph_compact
Shrink a memory to the part that still earns its place. PREMIUM (license). Ranks entities by how connected they are and how much is recorded about them, keeps anything you name outright, and drops the rest along with the relations that pointed at them. Typical input {"graph": {...}, "max_entities": 50, "keep": ["Acme Corp"]} returns {"graph": {...}, "kept": 50, "dropped_entities": ["Old Note", ...], "dropped_relations": 12, "ranking": "degree, then observation count, then name"}. Use when a graph has outgrown the context you can spend on it. Not for removing wrong facts - graph_lint finds those, and deleting them is a decision you should make deliberately rather than by ranking. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
graph_diff
Say exactly what changed between two versions of a memory. FREE. The audit trail a database gives you for free, without the database. Typical input {"before": {...}, "after": {...}} returns {"entities_added": ["Beta Ltd"], "entities_removed": [], "observations_added": {"Acme Corp": ["renewed in March"]}, "relations_added": [...], "changed": true}. Use after an upsert to record what a session learned, or between two agents to see what one knows that the other does not. Not for merging the two - feed the differences back through graph_upsert for that. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
graph_lint
Find the breaks a memory graph accumulates as it grows. FREE. Relations pointing at entities that do not exist, entities nothing points at, near-duplicate names, and observations that contradict each other on the same entity. Typical input {"graph": {...}} returns {"ok": false, "dangling_relations": [{"from": "Acme Corp", "to": "Beta Ltd", "missing": ["Beta Ltd"]}], "orphan_entities": ["Old Note"], "near_duplicates": [["Acme Corp", "Acme Corp."]], "contradictions": []}. Use before trusting a graph you did not build, or on a schedule as memory grows. Not for comparing two graphs (graph_diff) and not for shrinking one (graph_compact). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
graph_search
Find what the graph knows about something, plus its neighbourhood. FREE. Scores entities by how many query words appear in the name, type and observations, then pulls in whatever is within the requested number of hops - because the useful answer to "what do we know about Acme" is usually Acme plus who it is connected to. Typical input {"graph": {...}, "query": "acme renewal", "hops": 1} returns {"matches": [{"name": "Acme Corp", "score": 3, "why": ["name", "observation"]}], "neighbourhood": {"entities": [...], "relations": [...]}, "hops": 1}. Use to read memory back before answering. Not for writing (graph_upsert) and not for narrowing by date, which graph_at_time does. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "query must contain at least one word or number"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
graph_upsert
Fold new facts into a memory graph and get the whole graph back. FREE. Idempotent by construction: re-adding the same entity, observation or relation changes nothing, so an agent that replays its own history does not end up with a graph full of duplicates. Typical input {"graph": {"entities": [], "relations": []}, "entities": [{"name": "Acme Corp", "type": "company", "observations": ["renewed in March"]}]} returns {"graph": {...}, "added": {"entities": 1, "observations": 1, "relations": 0}, "merged": 0}. Use as the single write path for memory. Not for reading it back selectively - that is graph_search - and not for finding out what a write changed, which graph_diff answers precisely. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "graph exceeds <value> entities; split it"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Endpoints

URLTransportStateLatencyChecked
https://mcp.moltlinestudio.com/recall streamable-http answering 190 ms 12 min ago

Alternatives to Moltline Recall

same job, measured the same way
Stable Baseline
by stablebaseline

End-to-end agent-managed company brain. Docs, diagrams, plans, databases, agents, Knowledge Graph.

219 tools answering
MADB — Agent Memory Database
by spshkar84

Durable causal memory for AI agents — semantic recall, causal lineage, and skills. Local-first.

860 installs/wk local only
Agent Memory MCP
by xultrax-web

Markdown memory for AI agents. Files you can read, edit, grep, and commit. Not a database.

80 installs/wk local only
Facthouse
by gordonkjlee

Local AI memory: neuroscience-inspired Data→Information→Knowledge in SQLite you own.

56 installs/wk local only
Recall Check
by openkrill

Check US recalls for a car, a baby product, a food or a medicine in the official recall databases.

7 tools answering
TeamMemory
by ysydhc

Team experience database - let AI accumulate, retrieve and apply team knowledge across chats.

98 installs/wk local only
Engraphy
by devon-clarkk

Self-hosted MCP memory server: a typed knowledge graph on Postgres 16 and pgvector.

local only
Gdelt
by pipeworx-io

GDELT MCP — Global Database of Events, Language, and Tone (free, no auth)

44 tools answering

Moltline Recall — questions

Answers built from our own checks of this server.

What can Moltline Recall do?
It exposes 6 tools, read directly from the server on our last check. Among them: graph_at_time, graph_compact, graph_diff, graph_lint, graph_search, graph_upsert. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Moltline Recall working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 381 ms. The bar chart above shows every period we have measured.
How do I connect Moltline Recall?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Moltline Recall need an API key?
No. Moltline Recall completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Moltline Recall?
It answers our handshake in 381 ms on average, which is faster than 33% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Moltline Recall open source?
Yes — it is published under the MIT licence, written in Python and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.