lal
A permissioned memory tree for you and your AI — served over MCP.
README
lal
A permissioned memory tree for you and your AI — served over MCP. Live at lal.dev. Free to use, open source, no plans and no payment method anywhere in the app.
lal is a knowledge graph you write in Markdown-ish leaves and your AI reads through the Model Context Protocol. Every leaf carries its own audience, so a person, a team, and a customer each see exactly their slice — and the AI inherits precisely the access of whoever is asking, never more.
Connect your AI
claude mcp add --transport http lal https://lal.dev/api/mcp
Then sign in and approve. Claude Desktop / web: add it as a custom connector with the same URL. Walkthrough: lal.dev/connect.
Access on lal.dev is by invitation. Anyone can create an account (Google / GitHub), but a memory tree only opens up once an organization invites that email — there is no self-serve org creation, on purpose. If you want your own instance today, self-host this repo.
Tools exposed to the model: memory_index, memory_search, memory_read, memory_suggest,
my_suggestions, plus the curator set memory_health, memory_curation, memory_verify.
What's in it
- Tree + editor — leaves with frontmatter, folders, tags, aliases, full-text search.
- Version history — append-only revisions, per-editor drafts with optimistic concurrency, soft-delete → archive → bin. Nothing is ever hard-deleted except by an admin purge.
- Access tiers — reader suggests · writer edits live · keeper approves · admin manages people,
with an
edit ⊆ readinvariant. Hidden leaves are indistinguishable from missing ones. - Suggestions + review — anyone can suggest; keepers approve; approved suggestions publish in place.
- Curator — health scoring, staleness/duplicate/orphan detection and verification passes, driven by your own AI through MCP prompts. No server-side model, no vendor lock.
- Graph — a live view of the tree with four renderers (3D force graph plus three hand-rolled Canvas2D modes) and read-traffic heat.
- Multi-tenant — organizations and divisions. An invite stays pending until the invited person actually signs in with that email, and binds only to rows addressed to it.
- Bilingual UI — Indonesian and English.
Stack
| Layer | What |
|---|---|
| Client | Vite SPA (React 19, TypeScript, Tailwind) |
| API + MCP | Hono on Cloudflare Workers (worker/) |
| Data | Supabase Postgres — schema db_memory, reached only through mem_* RPCs |
| Auth | OAuth 2.1 / magic link via the AMA Forum identity server |
Brutalist dark theme on purpose: hard 2px borders, zero rounding, amber on near-black.
Running it
npm install
npm run dev # Vite dev server
npm run typecheck # app + SPA + worker
npm run build # SPA + worker bundle into dist/
npm run deploy # build, then wrangler deploy (needs your own Cloudflare + Supabase)
Config lives in .env.production for the three public, client-inlined values
(Supabase URL, publishable key, app URL). Everything secret — the Supabase service key and friends —
is set as a Cloudflare Worker secret (wrangler secret put), never committed.
Honest caveat about self-hosting: the data layer is RPC-only and lives in Postgres. This repo mirrors the migrations from 2026-06-30 onward, not the full original
db_memoryschema, sogit clone && npm run deploywill not give you a working instance yet. Run it against your own Supabase and expect to fill in the earlier schema by hand. If you want that gap closed, say so in an issue — it's the main thing standing between this repo and a turnkey self-host.
Donate
lal is free and stays free. Nothing in the app charges, meters, or counts seats.
There is no donation link yet. If you want to support it — or just talk — reach me on X · @lalss08 or Threads · @lalss. Nothing you send buys a feature, priority, or a support tier.
What's not here
The content of the maintainer's own memory tree is private and always will be — this repo is the application, not the knowledge in it. A handful of migrations that are pure AMA-internal billing plumbing are also left out; nothing lal-the-app needs depends on them.
License
MIT.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。