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.
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.