
Calame
β 5from Calame-Tech
Visual no-code generator that turns any database into multiple scoped MCP servers β one per access group, with PII masking and fail-closed query scoping built in.
Calame
Turn any database into an MCP server β visually.
Quick start Β· Features Β· How it works Β· License
Calame is a self-hosted web app that connects to your PostgreSQL, MySQL, or SQLite database, lets you configure access profiles β per-table permissions, PII masking, row-level scoping β and serves them as MCP (Model Context Protocol) servers with fine-grained auth.
Plug your profile into any MCP client (LLM, Claude Desktop, Cursor, VS Code, ChatGPT Desktopβ¦) or use the built-in chat to query your data in natural language. No code generation, no lock-in β Calame is the control plane.
Features
Database connectors
- PostgreSQL Β· MySQL Β· SQLite β schema introspection, relations, sample data
- Read-only by design (
SET TRANSACTION READ ONLY), parameterized queries only - Optional SSH tunneling for remote databases
Access profiles
- Pick tables & columns to expose per profile
- PII detection & masking (auto + custom rules, global or per-column)
- Row-level data scoping (e.g. restrict a profile to
client_email = X) - Write queue with approval workflow for mutating queries
Auth β per profile
- Open, Bearer token, password, OIDC SSO, OAuth 2.1 (Google, Microsoft, GitHubβ¦), or external validation URL
- Per-user tokens with revocation
- MCP OAuth 2.1 Dynamic Client Registration (Claude Desktop / Cursor / VS Code auto-discover)
- Full audit log with export
Built-in chat
- Query your data in natural language from the UI β no external client needed
- Pluggable LLM providers:
- Anthropic (Claude direct)
- OpenRouter (Claude, GPT, Gemini, Llama, β¦)
- Custom OpenAI-compatible β self-hosted Ollama, vLLM, LM Studio
Operations
- Email invitations (SMTP), user management, metrics dashboard
- HashiCorp Vault integration for secrets
- Docker + reverse-proxy templates (Caddy, nginx) included
How it works
ββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββββββββ
β Your DB ββββΆβ Calame ββββΆβ MCP client (Claude Desktop, β
β (Pg/My/Lt) β β (profiles, β β Cursor, VS Code, ChatGPT, β
β β β auth, PII) β β built-in chat, LLMβ¦) β
ββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββββββββ- Connect a database (Calame introspects the schema).
- Create a profile β pick tables, mask PII columns, pick auth mode.
- Start the profile. Its MCP endpoint is
http://localhost:4567/mcp/<profile>. - Point your MCP client at it, or open the built-in chat.
Feedback
Something broken? Have a use case we missed? Open an issue or start a discussion.
git clone https://github.com/mgasnier95/calame.git
cd calame
pnpm install
pnpm devBefore it works, you'll need: CALAME_SECRET_KEYCALAME_SECRET_KEY
Quick start
git clone https://github.com/Calame-Tech/calame.git
cd calame
pnpm install
pnpm devOpen http://localhost:4567 β create the admin account, connect a database, create a profile, and you're live.
Or with Docker:
docker compose upOn the first run Calame auto-generates a CALAME_SECRET_KEY used to encrypt
tokens and connection strings, and persists it next to your database
(.calame-secret). If you deploy with Docker, mount a persistent volume on
/data so that file survives restarts β otherwise every restart invalidates
your saved tokens. You can also set CALAME_SECRET_KEY yourself via the
environment to reuse an existing secret.
β Detailed Quick Start β full walkthrough from install to your first MCP client query (~15 min).
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
License
Calame is dual-licensed:
- Apache 2.0 β root,
packages/*,scripts/, and everything else outsideee/. SeeLICENSE. - Business Source License 1.1 (BUSL-1.1) β the entire
ee/directory (currentlyee/sso, the SSO/OIDC implementation). Seeee/LICENSE.BUSLandee/README.md.
In short: you can self-host, fork, and modify Calame freely; the BUSL on ee/* only restricts repackaging it as a paid competing product. Each BUSL-licensed version automatically converts to Apache 2.0 four years after its publication.