Calame

Calame

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.

Category
Visit Server

README

<p align="center"> <img src="./docs/assets/logo.png" alt="Calame" width="120" /> </p>

<h1 align="center">Calame</h1>

<p align="center"> <strong>Turn any database into an MCP server — visually.</strong> </p>

<p align="center"> <a href="#quick-start">Quick start</a> · <a href="#features">Features</a> · <a href="#how-it-works">How it works</a> · <a href="#license">License</a> </p>


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.

Quick start

git clone https://github.com/mgasnier95/calame.git
cd calame
pnpm install
pnpm dev

Open http://localhost:4567 — create the admin account, connect a database, create a profile, and you're live.

Or with Docker:

docker compose up

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

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…)         │
└────────────┘   └─────────────┘   └───────────────────────────────┘
  1. Connect a database (Calame introspects the schema).
  2. Create a profile — pick tables, mask PII columns, pick auth mode.
  3. Start the profile. Its MCP endpoint is http://localhost:4567/mcp/<profile>.
  4. 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.

License

Calame is dual-licensed:

  • Apache 2.0 — root, packages/*, scripts/, and everything else outside ee/. See LICENSE.
  • Business Source License 1.1 (BUSL-1.1) — the entire ee/ directory (currently ee/sso, the SSO/OIDC implementation). See ee/LICENSE.BUSL and ee/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.

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