Korely

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

Terminal window
pip install korely-memory
korely init --agent

Then point your client at the endpoint with the key as a bearer token:

Terminal window
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

ToolWhat 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:

Terminal window
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:

Terminal window
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