Supabase
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
Description from the maker (original English)
Let coding agents query any SQL database safely. Read-only by default and scoped by your policies.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
DATABASE_URL, VALV_PROVIDER, VALV_DATABASE, VALV_TABLES, VALV_EXCLUDE, VALV_POLICY_FILE, VALV_CONTEXT, VALV_HTTP_PORTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"valv": {
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "your-value",
"VALV_PROVIDER": "your-value",
"VALV_DATABASE": "your-value",
"VALV_TABLES": "your-value",
"VALV_EXCLUDE": "your-value",
"VALV_POLICY_FILE": "your-value",
"VALV_CONTEXT": "your-value",
"VALV_HTTP_PORT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add valv --env DATABASE_URL=your-value --env VALV_PROVIDER=your-value --env VALV_DATABASE=your-value --env VALV_TABLES=your-value --env VALV_EXCLUDE=your-value --env VALV_POLICY_FILE=your-value --env VALV_CONTEXT=your-value --env VALV_HTTP_PORT=your-value -- npx -y @valv/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"valv": {
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "your-value",
"VALV_PROVIDER": "your-value",
"VALV_DATABASE": "your-value",
"VALV_TABLES": "your-value",
"VALV_EXCLUDE": "your-value",
"VALV_POLICY_FILE": "your-value",
"VALV_CONTEXT": "your-value",
"VALV_HTTP_PORT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"valv": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "your-value",
"VALV_PROVIDER": "your-value",
"VALV_DATABASE": "your-value",
"VALV_TABLES": "your-value",
"VALV_EXCLUDE": "your-value",
"VALV_POLICY_FILE": "your-value",
"VALV_CONTEXT": "your-value",
"VALV_HTTP_PORT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
VALV_PROVIDER envVALV_DATABASE envVALV_TABLES envVALV_EXCLUDE envVALV_POLICY_FILE envVALV_CONTEXT envVALV_HTTP_PORT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain valv.sh (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: DATABASE_URL
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.6.2) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Point it at a database URL. Your agent queries it safely. No SQL, no code.
A zero-config MCP server built on valv. Give it a connection string and it introspects your live schema, serves four tools (list_resources, search_resources, describe_resource, query) read-only by default, and enforces your policies — no SQL ever reaches the model, and it can only read what you allow.
Works with PostgreSQL, MySQL, SQLite, CockroachDB, ClickHouse, and MongoDB.
The fastest way in — it probes your database, lets you choose access, and writes the config:
npx @valv/mcp init
It takes either a connection string or individual fields (host, port, user, password, database), confirms the dialect, connects and shows your tables, then offers read-only / pick-tables / a policy-file stub. It then merges the server entry into the client of your choice — Claude Code, Claude Desktop, Cursor, or Codex — at project or global scope, leaving any existing config in place. Lastly it offers to install the valv skill, which teaches the agent how to query valv and turn results into interactive chart-report HTML files — as a skill for Claude Code (.claude/skills), Codex (.agents/skills), or Cursor (.cursor/skills), at project or global scope. Finally it can copy a kickstart prompt to your clipboard — paste it into your agent to explore the schema (seeding .valv/notes.md for future queries) and generate a single interactive valv-map.html overview of the database.
Add it to your .mcp.json (or Claude Desktop config):
{
"mcpServers": { "db": { "command": "npx", "args": ["-y", "@valv/mcp"], "env": { "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb" } } } }
For ClickHouse, use its HTTP URL and a database name:
"env": { "DATABASE_URL": "http://localhost:8123", "VALV_DATABASE": "analytics" }
For MongoDB, use a standard connection string. Set VALV_DATABASE when the URL does not select a database:
"env": { "DATABASE_URL": "mongodb://localhost:27017", "VALV_DATABASE": "analytics" }
All via environment variables:
| Variable | Description | ||||
|---|---|---|---|---|---|
DATABASE_URL | Connection string (required; or pass as the first CLI arg). | ||||
VALV_PROVIDER | postgresql \ | mysql \ | sqlite \ | mongodb \ | clickhouse. Inferred from the URL when omitted. |
VALV_DATABASE | Database name for ClickHouse or MongoDB. | ||||
VALV_TABLES | Comma-separated allow-list — only these tables are exposed. | ||||
VALV_EXCLUDE | Comma-separated deny-list, applied after the allow-list. | ||||
VALV_POLICY_FILE | Path to a policy module (below) for tenant scoping / hidden fields. | ||||
VALV_CONTEXT | JSON context the policy reads (e.g. {"tenant":{"id":"acme"}}). | ||||
VALV_HTTP_PORT | Serve over Streamable HTTP on this port instead of stdio. |
Without one, access is read-only across all tables. To restrict what the agent can see — which tables, which columns — point VALV_POLICY_FILE at a module that receives the configured valv instance:
// valv.policy.cjs
module.exports = (valv) => { valv.policy("orders", () => ({ read: true, // allow reads (or { column: value } to filter rows) fields: { deny: ["internal_notes"] }, // hide columns from the agent })) // Tables without a policy are denied (deny-all). }
Need per-request row scoping by tenant/user? That belongs in the app-controlled path, where your code supplies real identity per request — use @valv/mcp-sdk (or pass a fixed VALV_CONTEXT and read it in the policy here).
MIT