caura_writeLABSCO SUMMARY
Built for many agents sharing one memory, not one agent with a long chat.
The shape it optimises for is a fleet: scoped memory, cross-agent outcome propagation, governance rules that override conflicting instructions, and trust levels deciding who may author them. If you are wiring up a single assistant that is more machinery than you need; if dozens of agents are meant to stop repeating each other's mistakes, that machinery is the product.
What it is
A multi-tenant memory service. An agent sends one content field; the server infers the type, title, summary, tags, status and weight, embeds it, and stores it under a tenant and agent scope. The product was renamed from MemClaw to Caura, and the old memclaw_ tool names still resolve.
What you get
- Writing one memory or a batch, with the type, title, summary and tags inferred rather than supplied
- Hybrid semantic and keyword recall, expanded through the entity graph, with an optional written brief
- Per-memory lifecycle - read, update, transition, delete and lineage - plus filtered, sorted, cursor-paginated listing
- Named JSON document collections with their own semantic search, which is also how skills are shared between agents
- Governance rules for the current scope, readable once per session and authored or removed under a trust level
- Outcome reporting that adjusts memory weights, retrieval tuning per agent, and store-wide analysis that saves its findings back as memories
Requirements
The managed path is a URL - https://caura.ai/mcp with an X-API-Key header, or the same credential as a bearer token. Self-hosting needs Docker Engine 24+ with Compose v2 and about 2 GB of disk; docker compose up brings Postgres with pgvector, Redis and the API. Semantic search needs an embedding provider key, or a self-hosted embedder if you want no outbound calls at all. A fleet should mint agent-scoped credentials rather than reusing one tenant key.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
Stopping every agent from relearning the same thing
Write what an agent learns as plain text, then have the next one recall against the fleet's store before it starts work.
Setting rules an agent may not talk itself out of
Author governance rules for the scope and have each session read them once - they take precedence over conflicting user instructions.
Sharing a procedure that worked
Upsert it as a document in the skills collection with a short intent-focused summary, which is what gets embedded for search.
Finding out whether the memory is any good
Report outcomes back against what was recalled so weights move, then run the store-wide analysis and read the counts.
Cleaning up a store that has drifted
List by type, status, agent or date, then read, transition or delete the entries that no longer hold.
12 tools
Listed in project docs. Your client may show a different list.
caura_recallcaura_managecaura_listcaura_doccaura_entity_getcaura_tunecaura_insightscaura_evolvecaura_statscaura_keystonescaura_keystones_setBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Requires
- Docker Engine 24+
- Docker Compose v2
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
Setup
git clone https://github.com/caura-ai/caura.git
cd caura
cp .env.example .env && echo "IS_STANDALONE=true" >> .env
docker compose up -dStandalone mode is single-tenant with auth bypassed, which is why the client entries below send X-API-Key: standalone. For semantic recall, set EMBEDDING_PROVIDER=openai, ENTITY_EXTRACTION_PROVIDER=openai and OPENAI_API_KEY in .env before starting — without an AI key the stack still starts, with non-semantic dummy embeddings
Hosted endpoint
https://caura.ai/mcpAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
MCP Clients
Claude Code
claude mcp add --transport http -s user caura http://localhost:8000/mcp --header "X-API-Key: standalone"Cursor
{
"mcpServers": {
"caura": {
"url": "http://localhost:8000/mcp",
"headers": {
"X-API-Key": "standalone"
}
}
}
}