Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

MCP

MCP server

The four operations as tools. Tool inputs and results match the API, and tool annotations are honest: recall and explain are read-only, forget is marked destructive.

Connect an agent

You need two things: an API key (dashboard, projects page, shown once) and the address of this site. Pick your agent. In the dashboard, Settings has the same snippets already filled in with your address, and you can click one to copy it.
claude mcp add --transport http kaibo $KAIBO_URL/mcp \ --header "Authorization: Bearer $KAIBO_KEY"
Run it once in a terminal. Inside Claude Code, /mcp shows whether kaibo connected. Or run kaibo init in your project and it writes a project .mcp.json for you.

Check it works

Ask the agent: "remember that the release moved to July 17". Then, in a new chat: "when is the release?". It should call recall and answer July 17 with the source. If it does not see the tools, restart the agent, and check the key with kaibo doctor.

Which project

A key made for one project needs nothing more. An organization-wide key covers every project, so kaibo has to know which one a call is about. Any key can list projects, so if the organization has exactly one, the MCP server uses it. Otherwise it tells the agent which projects exist, and you pick one in the config:
  • Hosted: add an X-Project-Id: <project id or slug> header to the server entry. The slug is the project's name in lowercase with dashes (try-new); kaibo projects shows both (Claude Code: --header "X-Project-Id: <id>", Cursor: add it under headers).
  • Local (kaibo mcp): set KAIBO_PROJECT=<project id> in the server's env.
Easiest of all: make a key for one project (kaibo keys create --for-project <id> ...), and the dashboard's project settings page shows snippets with the project already filled in.

Which key

Give an agent the narrowest key that does its job. read_write can remember and recall. Add forget only if the agent should delete. Never use an admin key in an agent.

Hosted and local, in detail

Hosted is Streamable HTTP, stateless, at /mcp. Send your key as a Bearer token. The key is passed straight through to the API and is never stored; scopes are enforced by the API, so a read-only key cannot forget.
Local runs kaibo mcp over stdio and reads KAIBO_URL and KAIBO_KEY (and KAIBO_PROJECT for an organization-wide key) from its environment. Use it for tools that only start local servers.

Tools

ToolInput
remembertext, wait (default true)
recallquery, asOf?, budgetTokens?, types?
explainmemoryId, depth?
forgetmemoryId or query, reason, dryRun?

Untrusted memory

recall text is wrapped between markers that include a random value generated per response, and the block is introduced as stored data. That makes it harder for stored text to fake the end of the block. It lowers prompt-injection risk and does not remove it. Treat recalled text as untrusted in your own agent.