Your memory works in your own tools too.
Tabula is one memory for you across every AI. It speaks MCP, the open standard, so the chat apps you self-host, the coding agents you run, and the scripts you write can all read and write it. Whatever model runs behind them.
The server
- Endpoint
- https://www.tabula360.com/api/mcp/mcp
- Transport
- Streamable HTTP
- Auth
- OAuth 2.1 (web clients) or Bearer token (CLIs, IDEs, scripts)
- Tools
- save_memory, search_memory, list_memories, update_memory, delete_memory
Your token comes from the Connect page after you sign up. It is shown once, treat it like a password.
Your chat app
Self-hosted apps like LibreChat and Open WebUI run whatever model you point them at, OpenRouter included, and they speak MCP. Add Tabula once and every model you switch to shares the same memory.
mcpServers:
tabula:
type: streamable-http
url: https://www.tabula360.com/api/mcp/mcp
headers:
Authorization: "Bearer ${TABULA_MCP_TOKEN}"LibreChat: the block above goes in librechat.yaml. Open WebUI (v0.6.31+): Admin Settings, External Tools, add a server with type MCP (Streamable HTTP), paste the endpoint, set auth to Bearer with your token. For ChatGPT, Claude, and the other big AIs, use the guide.
Your own code
Any script that does tool calling can use Tabula: fetch the five memory tools over MCP, hand them to the model, execute what it calls. Works with OpenRouter or any OpenAI-compatible API. A complete single-file example, tested against the live server, is on GitHub.
OpenRouter example on GitHubYour coding agent
Claude Code, Codex, Cursor, VS Code, Windsurf, and Vibe CLI connect with one config block each. The guide has copy-paste snippets for all of them.
What to expect, and how to make it automatic
Asking always works: say “Save that to Tabula” or “Ask Tabula” and any model will call the right tool. Fully automatic saving and recall depends on the model and the client, because MCP offers tools, it cannot force a call. Some models check memory on their own, others answer from the chat.
The fix is one line in the system prompt. LibreChat (custom instructions or a preset) and Open WebUI (the model's System Prompt field) both let you set one:
Always check Tabula before answering anything about me, my work, or my projects, even if you think you already know.In your own scripts you own the system prompt, so you control this fully. The OpenRouter example above ships with it built in.
Where mem0 and Supermemory fit
Building an app that needs its own memory of your users? Use mem0 or Supermemory, that is what they are built for. Tabula is the other side: the person's own memory, across every AI and tool they use. One remembers your users, the other remembers you. They compose.
Two minutes to a memory your tools share.