Quorum

ai.quorumdbPublished by quorumdb.aiv4.0.0Updated Nov 2, 2026

Database tools for AI clients through the Quorum app: reads, masking, approved writes.

Overview

AI-generated overview

Quorum's local MCP server lets an AI client read shared databases through the Quorum desktop app, with masking and human-approved writes.

What you can do
  • Discover and inspect databases: list shared connections, read schema trees, describe tables, search tables and columns by name, read the team's data dictionary
  • Read data: run read-only SQL, sample up to 100 rows, explain a query plan without running it, run saved queries and list the query library
  • Review activity: read query history and the write audit log for shared connections
  • Propose changes: submit a write with a reason for a person to approve in Quorum, then check one proposal or list recent ones
  • Check operations: read service health from Last9 or Datadog when configured in Quorum
When to use it
Useful when you want an AI assistant to explore and query your team's databases without handing it credentials, and when data changes must go through a person's approval in Quorum. It fits teams already using the Quorum desktop app who want the same read-only, masking and write rules applied to AI clients.
Requirements
The Quorum desktop app version 4.0.0 or later on macOS, Windows or Linux, running while the client is used; Quorum is a paid product with a trial planned. An MCP client such as Claude Desktop, Claude Code, Cursor, VS Code, Windsurf or Codex. The server runs on the Node runtime inside Quorum, so nothing else is installed. Each connection must be explicitly shared with AI clients in Quorum's settings.
Before you install
Writes can change or delete data: with the default setting they wait for approval in Quorum, but the alternative setting runs allowed writes directly on non-production connections. Every write and refusal is recorded in the write audit as made by an AI agent. Read results may be masked or reduced to column profiles depending on the connection's settings. Database access depends on the Quorum app being open.

Installation

In SourceWeft

  1. Open Quorum in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Quorum MCP server

Give Claude, Cursor, VS Code, Windsurf, Codex or your own agent access to your databases through Quorum, with the same rules as Quorum's editor: read-only sessions, masking, and a person approving every write.

Contents

How it works

MCP (Model Context Protocol) is how AI tools call outside tools. Quorum ships an MCP server that the AI client starts on its side. The server talks to the running Quorum app over a local bridge on your computer.

  • Quorum must be open. The AI client reaches your databases only while Quorum runs.
  • No passwords leave Quorum. The client sends a request; Quorum runs it with its own saved login.
  • Each connection is off for AI clients until you turn it on.
  • Same rules as the editor: read-only sessions for reads, masking, and approval for writes.

Reads run in a read-only session and return up to 10,000 rows. Masked columns come back masked, and a query that names a masked column is refused. On DuckDB and SQLite, AI clients cannot read or write files on your computer.

Requirements

  • The Quorum desktop app, version 4.0.0 or later, on macOS, Windows or Linux. Quorum is a paid product with a free 14-day trial coming soon; request access at https://www.quorumdb.ai/#access to hear first.
  • An MCP client. Quorum sets up Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and Codex for you, and gives you the configuration to copy for any other client.

The server runs on the Node runtime inside Quorum, so nothing else needs installing.

Set up an AI client

  1. In Quorum, open Settings › AI clients.
  2. Under 1. AI clients, find the client. Its status is Set up, Not set up, Not found, or Set up for another copy.
  3. Click Set up. Quorum adds its entry to the client's own configuration file and keeps everything else in it.
  4. Quit the client and open it again.
  5. Under 2. Connections the AI may use, turn on the connections it should reach.

For another client, open Another AI client: copy the config, click Copy and paste it into that client's MCP settings.

ClientConfiguration file Quorum writes (macOS)
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Claude Code~/.claude.json
Cursor~/.cursor/mcp.json
VS Code~/Library/Application Support/Code/User/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Codex~/.codex/config.toml, or the folder in CODEX_HOME

Linux uses ~/.config and Windows uses %APPDATA% for the Claude Desktop and VS Code rows.

Choose the connections AI clients may use

AI clients see no connection until you share it. In Settings › AI clients, click Choose connections…, search or browse by environment, and turn on Let AI clients use for each one.

  • A shared connection is readable only while Allow AI features on this connection is on.
  • Where AI may see row values is off, results reach the client as a profile of each column, not the values.
  • Imported and shared connections always arrive with AI clients off.

Tools

ToolWhat it does
quorum_list_connectionsLists the shared connections and how their writes are handled.
quorum_get_schemaReads a connection's schema: tables, views, columns, types and keys.
quorum_describe_tableDescribes one table, with the team's descriptions.
quorum_search_schemaFinds tables and columns by name.
quorum_sample_rowsReads up to 100 rows of a table. Masked columns come back masked.
quorum_explain_queryShows the plan of a single read. EXPLAIN only, so nothing runs.
quorum_execute_queryRuns a read in a read-only session, or a write if the write setting allows it.
quorum_list_saved_queriesLists the team's saved queries.
quorum_run_saved_queryRuns a saved query as a read.
quorum_get_query_historyReads query history for shared connections.
quorum_get_audit_logReads the write audit: who, what, risk and rows affected.
quorum_get_data_dictionaryReads the team's descriptions of tables and columns.
quorum_get_service_healthReads service health from Last9 or Datadog, when set up in Quorum.
quorum_propose_writeProposes a write, with a reason, for a person to approve in Quorum.
quorum_get_proposalChecks a proposal's outcome.
quorum_list_proposalsLists recent proposals and their status.

How writes are handled

Settings › AI clients › 3. Writes from AI clients has two choices:

ChoiceWhat happens
Ask me in Quorum (default, recommended)A write waits in Quorum until you approve it. On PROD it also needs PROD typed.
Run allowed writes directlyAllowed data changes run at once on LOCAL, DEV, QA, UAT and STAGE. Writes on PROD are refused.

Even when writes run directly, Quorum still refuses any write on PROD and any critical write; DDL and TRUNCATE on any connection except LOCAL; writes on a connection that is read-only, always reviewed, needs a ticket or has a cool-down; and anything the safety checks block, such as an UPDATE without WHERE. Every write and every refusal is recorded in the write audit, as made by an AI agent.

Quorum Gate

With Ask me in Quorum, the AI client proposes a write with a one-line reason, and Quorum waits for you.

  1. Quorum shows the request: the kind, environment, connection, risk and the client's reason, then the SQL, formatted.
  2. What it will change shows how many rows, the columns it sets and whether any value actually changes, and a few of the matched rows with masked columns masked.
  3. If asked, type the confirmation word (for example PROD) and a ticket.
  4. Click Approve and run once, or type a reason and Reject. The client sees your reason.

An approved write runs exactly as proposed, once, through the same checks as the editor. A request expires after 30 minutes. No response means no write.

In clients that support MCP Apps, such as Claude, Claude Desktop, VS Code, Cursor and Goose, the request also appears as a card in the chat. The card shows the status; approving happens in Quorum.

The quorum command

The same bridge powers a command-line tool that runs queries through the running Quorum app and its rules. Install it from Settings › AI clients › Command-line tool.

quorum connectionsquorum query <connection> "<sql>" [--format table|csv|json] [--limit N]quorum describe <connection> <table> [--schema S]quorum savedquorum run-saved "<name>" [--connection C] [--format …]quorum history [--connection C] [--limit N]quorum propose <connection> "<sql>" --reason "<why>" [--wait SECONDS]quorum request <id> [--wait SECONDS]

Only connections shared with AI clients are reachable. Writes go through propose and wait for approval in Quorum.

About this repository

This repository documents Quorum's MCP server and holds its MCP Registry entry (server.json). The server itself ships with the Quorum app. Questions: https://www.quorumdb.ai/#contact.

Product and company names are trademarks of their respective owners and are used only to describe what Quorum works with.

Source: README.md at commit 03a6686

Tools

16

quorum_list_connections

List Quorum Connections

List all database connections configured in Quorum that are enabled for MCP access. Returns connection metadata (id, name, type, environment). Never touches passwords. Each connection says how a write is handled ("writes"), as the person set it in Quorum: - "with approval in Quorum": propose it with quorum_propose_write; it runs only after the person approves it in Quorum (on PROD they also type a confirmation). - "allowed writes run directly": allowed changes run through quorum_execute_query. - "refused (PROD)": writes on this PROD connection are refused; it can be read. - "none": the connection is read-only. PROD connections are readable. Use the returned id in all other quorum_* tool calls.

Takes no parameters.

quorum_get_schema

Get Schema for Quorum Connection

Get the full schema tree for a database connection — tables, views, columns, types, and keys. Use quorum_list_connections first to get valid connection IDs. Args: - connection_id: UUID of the connection (from quorum_list_connections) Returns the schema tree as JSON.

Parametersconnection_idrequired

quorum_execute_query

Execute SQL via Quorum

Execute a SQL query against a Quorum database connection. Reads run in a read-only session; masked columns stay masked. For changes, use quorum_propose_write: a person approves them in Quorum. (Only when Quorum is set to run allowed writes directly does a write run here, and then UPDATE or DELETE without WHERE, PROD and CRITICAL writes, DDL and TRUNCATE off LOCAL, and writes on connections that need review, a ticket or a cool-down are refused.) Results are limited by the connection's row limit (configurable in Quorum). Args: - connection_id: UUID from quorum_list_connections - sql: SQL query to execute - row_limit: Optional override for result row limit Returns columns, rows, row count, and duration.

Parameterssqlrequiredrow_limitconnection_idrequired

quorum_list_saved_queries

List Saved Queries

List saved queries from Quorum's query library. Useful for discovering pre-built queries that are known to work against a connection. Args: - connection_id: Optional — filter to queries saved for a specific connection

Parametersconnection_id

quorum_describe_table

Describe a table

Columns, types, keys, row count and the team's descriptions for one table or view.

Parameterstablerequiredschemaconnection_idrequired

quorum_search_schema

Search tables and columns

Find tables and columns whose name contains the text, across all MCP-enabled connections or one.

Parameterstextrequiredconnection_id

quorum_sample_rows

Sample rows from a table

Up to 100 rows from one table, read in a read-only session. Masked columns come back masked.

Parameterslimittablerequiredschemaconnection_idrequired

quorum_explain_query

Show a query plan

The database's plan for one read (EXPLAIN, never ANALYZE, so nothing runs). PostgreSQL, MySQL, SQLite, DuckDB, Snowflake, ClickHouse and H2.

Parameterssqlrequiredconnection_idrequired

quorum_run_saved_query

Run a saved query

Run one of the team's saved queries by name (reads only). Uses its own connection unless one is given.

Parametersnamerequiredrow_limitconnection_id

quorum_get_query_history

Recent queries

Queries run in Quorum recently on MCP-enabled connections, newest first, with status, rows and timing.

Parameterslimitconnection_id

quorum_get_audit_log

Write audit log

Recorded writes and refused writes on MCP-enabled connections: who, what, risk and rows affected.

Parameterslimitconnection_id

quorum_get_data_dictionary

Data dictionary

The team's descriptions of tables and columns for one connection.

Parametersconnection_idrequired

quorum_get_service_health

Service health

Services from the observability provider set up in Quorum (Last9 or Datadog): health, p95 latency, error rate and traffic against last week.

Parameterswindow

quorum_propose_write

Propose a write for approval

Ask a person to approve a data or schema change in the Quorum app. Nothing runs until they approve it there; it then runs exactly as proposed, once. The person sees the statement, your reason, the connection and its risk. PROD and CRITICAL changes need them to type a confirmation; some connections need a ticket. Refused outright: read-only connections and statements the safety policy blocks (for example DELETE without WHERE). Args: - connection_id: from quorum_list_connections - sql: the exact statement(s) to run - rationale: one line on why the change is needed - wait_seconds: wait up to this long (max 110) for the decision; 0 returns at once Returns the request id and status (pending, done, rejected, failed, expired).

Parameterssqlrequiredrationalerequiredwait_secondsconnection_idrequired

quorum_get_proposal

Check a write request

The status of a request made with quorum_propose_write. wait_seconds (max 110) waits for a decision.

Parametersidrequiredwait_seconds

quorum_list_proposals

List write requests

Recent write requests and their status, newest first.

Takes no parameters.

Version history

1
  1. v4.0.0LatestOct 26, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.