Get Started
Korely MCP
Your agent memory as MCP tools, connect with a URL and a key.
Korely MCP exposes your agent memory store over the Model Context Protocol, so
any MCP-capable client (Claude Code, Cursor, Windsurf, VS Code, Codex) can
recall and remember through tools. It's a hosted
Streamable HTTP endpoint, nothing to install, authenticated by your
kor_live_ key. What it stores are typed, bi-temporal
facts, not a transcript.
This is the agent store, keyed. Korely MCP lives at
https://api.korely.ai/agent/mcp and takes a
kor_live_ bearer. Use exactly this URL:
/mcp on the API host is not an MCP server and answers
410.
Quick setup
Get a key first (one command, Sign up as an agent):
pip install korely-memorykorely init --agentThen point your client at the endpoint with the key as a bearer token:
claude mcp add --transport http korely https://api.korely.ai/agent/mcp \ --header "Authorization: Bearer kor_live_..."Restart the client and the four Korely tools appear.
For Claude Code, Codex and Cursor, korely init --tool also
installs hooks that save each work session to the repository's memory.
See Connect a coding assistant.
Available tools
| Tool | What it does |
|---|---|
korely_get_context | The recall call. Assembles the end user's currently valid typed facts most relevant to the query plus the most relevant memories into a prompt-ready block. Call before answering. known_as_of (ISO date) rebuilds the block as Korely could have built it then. |
korely_add | Remember a decision, preference, or fact, Korely extracts the typed triples. Call after something durable is settled. |
korely_get_facts | Read the typed (subject, predicate, object) facts. as_of reconstructs what was true at a point in time; known_as_of what Korely knew then, so a change told later is not in it; include_invalidated shows superseded facts. |
korely_search | Semantic vector search over the raw memories, when you want the source rather than the assembled block. Takes min_score like POST /v1/memories/search. |
Every tool takes an optional user_id to scope to one end user
(unlimited per tier). The three read tools, korely_get_context,
korely_search and korely_get_facts, also take an optional
agent_id, to read one agent's namespace, and korely_get_facts
takes predicate (for example works_at), as their REST twins do. After
upgrading, a client may need to refresh its tool list to see them. The tools map onto the same
REST endpoints the SDK uses, one
store, every surface.
Verify it
A quick reachability + auth check, the same key as a bearer:
curl https://api.korely.ai/v1/ping \ -H "Authorization: Bearer kor_live_..."# {"ok": true, "tier": "hobby", "region": "eu-hel1", "processing_region": "global", "scopes": [...]}
In your client, ask it to recall something for a user, then to remember a new
fact, then recall again, it should call korely_get_context and
korely_add on its own.
Local stdio server (alternative)
Prefer a local process over the hosted endpoint, for a client that only
speaks stdio? The same four tools ship as a stdio server,
korely-mcp, in the Python package. It is a thin client, not
an offline store: every tool call goes to the REST API at
api.korely.ai with your key, so it needs the network like the
hosted endpoint. Since 0.1.16 it needs no extra
dependency and runs on Python 3.9 or later; the [mcp] extra is
kept, empty, so the install line below keeps working:
pip install 'korely-memory[mcp]' korely-mcp reads the key from ~/.korely/config.json
(written by korely init) or KORELY_API_KEY. The
same four tools and the same store, with fewer options: the local reading
tools take no agent_id (korely_add does), no
predicate and no exclude_sessions, and
korely_search returns 10 hits by default.
Its korely_get_context and korely_get_facts take
known_as_of from version 0.1.22. See
Vibecoding for the full coding-assistant
walkthrough.
What's next
- Wire the memory into your own agent: the Quickstart and SDK reference.
- Understand the moat: temporal facts and the graph.