Memungkinkan coding agent untuk melakukan query pada database SQL dan NoSQL secara aman menggunakan tool read-only dan access control berbasis policy.
Juga dikenal sebagai valv-dev/valv, mcp, @valv/mcp
- Stars
- 5
- Tools
- —
- Unduhan, 30 hari
- —
- Versi terbaru
- 0.6.2
- Commit terakhir
- 2 Okt 2026
- Lisensi
- MIT
Apa itu valv MCP?
valv adalah MCP server. Memungkinkan coding agent untuk melakukan query pada database SQL dan NoSQL secara aman menggunakan tool read-only dan access control berbasis policy.
Ringkasan dibuat dari README proyek
Tentang valv MCP server
valv memungkinkan Anda melakukan query pada database live melalui coding agent tanpa harus mengekspos raw SQL atau berisiko melakukan modifikasi data. Developer dapat menghubungkan server ini ke PostgreSQL, MySQL, SQLite, CockroachDB, ClickHouse, atau MongoDB menggunakan connection string. Server ini berfungsi sebagai jembatan read-only yang melakukan introspeksi pada schema Anda dan menyediakan empat tool spesifik: list_resources, search_resources, describe_resource, dan query.
Setup dapat dilakukan melalui npx atau konfigurasi manual pada file seperti .mcp.json untuk client seperti Claude Desktop, Claude Code, Cursor, atau Codex. Anda dapat mengontrol akses melalui environment variables seperti VALV_TABLES untuk membuat allow-list tabel tertentu atau VALV_EXCLUDE untuk membuat deny-list. Untuk keamanan yang lebih granular, file policy dapat menyembunyikan kolom spesifik atau membatasi akses baris berdasarkan context JSON yang diberikan. Hal ini memastikan model hanya berinteraksi dengan data yang Anda izinkan secara eksplisit sekaligus mencegah model melihat atau mengeksekusi perintah raw SQL.
Apa yang bisa Anda lakukan dengannya
- 1Eksplorasi schema database yang amanMinta AI agent untuk menemukan struktur dan tabel yang tersedia di dalam database produksi.
- 2Pengambilan data terbatasInstruksikan agent untuk mengambil record tertentu sambil memastikan kolom sensitif tetap tersembunyi dari model.
- 3Pelaporan data otomatisGunakan coding agent untuk mengubah hasil query database menjadi chart HTML dan laporan interaktif.
- 4Isolasi data multi-tenantGunakan file policy untuk memastikan agent hanya mengakses data milik tenant atau user tertentu.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal valv MCP
Format diverifikasi 10 Nov 2026Tambahkan ke CursorTambahkan ke GooseInstal valv MCP di Claude Code
$ claude mcp add --env 'DATABASE_URL=<YOUR_DATABASE_URL>' mcp -- npx -y @valv/mcpInstal valv MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Instal valv MCP di VS Code
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Instal valv MCP di VS Code CLI
$ code --add-mcp '{"name":"mcp","type":"stdio","command":"npx","args":["-y","@valv/mcp"],"env":{"DATABASE_URL":"<YOUR_DATABASE_URL>"}}'Instal valv MCP di Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Instal valv MCP di Codex
$ codex mcp add mcp --env 'DATABASE_URL=<YOUR_DATABASE_URL>' -- npx -y @valv/mcpInstal valv MCP di Codex config.toml
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@valv/mcp"] [mcp_servers.mcp.env] DATABASE_URL = "<YOUR_DATABASE_URL>"
Instal valv MCP di Gemini CLI
$ gemini mcp add -s user -e 'DATABASE_URL=<YOUR_DATABASE_URL>' mcp npx -- -y @valv/mcpInstal valv MCP di Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@valv/mcp"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Konfigurasi
DATABASE_URLWajibRahasiaDatabase connection string. PostgreSQL, MySQL, SQLite, CockroachDB, or a ClickHouse HTTP URL.
VALV_CONTEXTJSON context object the policy reads, e.g. {"tenant":{"id":"acme"}}.
VALV_DATABASEDatabase name. Required for ClickHouse, whose URL does not carry one.
VALV_EXCLUDEComma-separated deny-list of tables, applied after the allow-list.
VALV_HTTP_PORTServe over Streamable HTTP on this port instead of stdio.
VALV_POLICY_FILEPath to a policy module that takes full control of access. Without it, the server is read-only across all tables.
VALV_PROVIDERDatasource provider: postgresql, mysql, sqlite, or clickhouse. Inferred from DATABASE_URL when omitted.
VALV_TABLESComma-separated allow-list of tables. When set, only these are exposed to the agent.
| Nama | Deskripsi | Tipe |
|---|---|---|
| DATABASE_URL | Database connection string. PostgreSQL, MySQL, SQLite, CockroachDB, or a ClickHouse HTTP URL. | WajibRahasia |
| VALV_CONTEXT | JSON context object the policy reads, e.g. {"tenant":{"id":"acme"}}. | |
| VALV_DATABASE | Database name. Required for ClickHouse, whose URL does not carry one. | |
| VALV_EXCLUDE | Comma-separated deny-list of tables, applied after the allow-list. | |
| VALV_HTTP_PORT | Serve over Streamable HTTP on this port instead of stdio. | |
| VALV_POLICY_FILE | Path to a policy module that takes full control of access. Without it, the server is read-only across all tables. | |
| VALV_PROVIDER | Datasource provider: postgresql, mysql, sqlite, or clickhouse. Inferred from DATABASE_URL when omitted. | |
| VALV_TABLES | Comma-separated allow-list of tables. When set, only these are exposed to the agent. |
Pengecekan otomatis
Berjalan 14 Nov 2026Laporan lengkap →Lolos checks otomatis kami. Ini bukan audit keamanan: baca kodenya dan berikan server akses paling terbatas yang dibutuhkannya. Cara kerja checks
- Source repository terhubung dan dapat dijangkauvalv-dev/valv is public and reachablegithub.com/valv-dev/valv ↗Lolos
- Nama paket mencantumkan repositori ini sebagai sumbernya@valv/mcp names valv-dev/valv as sourcenpmjs.com/package/@valv/mcp ↗Lolos
- Provenance build (atestasi Sigstore)No build attestation published for this releaseTidak diperiksa
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-10-02github.com/valv-dev/valv ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerNo popular package one edit away from @valv/mcpLolos
- Tidak ada advisory kritis pada paket atau dependensinya130 resolved dependencies checked; no critical advisoryosv.dev ↗Lolos
- Tidak ada instruksi tersembunyi untuk model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelTidak diperiksa
- Endpoint remote merespons handshake MCPTidak diperiksa
README
Lihat di GitHub@valv/mcp
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.
Guided setup
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.
Manual setup
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" }
Configuration
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. |
Policy file
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).
License
MIT
Pertanyaan tentang valv MCP
Bagaimana cara menambahkan valv MCP ke Claude Code?
Jalankan claude mcp add --env 'DATABASE_URL=<YOUR_DATABASE_URL>' mcp -- npx -y @valv/mcp di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan valv MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Database apa saja yang didukung?
Server ini bekerja dengan PostgreSQL, MySQL, SQLite, CockroachDB, ClickHouse, dan MongoDB.
Apakah akses database bersifat read-only?
Ya, server menyediakan tool yang secara default bersifat read-only untuk memastikan keamanan.
Bagaimana cara membatasi tabel atau kolom mana yang bisa dilihat oleh agent?
Anda dapat menggunakan file policy untuk menentukan aturan akses spesifik, seperti mengizinkan pembacaan pada tabel tertentu atau melarang kolom tertentu.
Apakah saya bisa menggunakannya dengan MongoDB?
Ya, Anda bisa menggunakan connection string standar untuk MongoDB dan mengatur variabel VALV_DATABASE jika URL tidak memilih database secara spesifik.