lal

lal

A permissioned memory tree for you and your AI — served over MCP.

Category
Visit Server

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 ⊆ read invariant. 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_memory schema, so git clone && npm run deploy will 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured