---
title: "YugabyteDB MCP Server: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/mcp-servers/yugabytedb/
description: "Python MCP server from the Yugabyte organisation that lists schema objects, runs a SELECT inside a read-only transaction, and keeps the write tool off unless an operator flag turns it on."
---

# YugabyteDB MCP Server: review, setup & limitations · Undominated.ai

> Python MCP server from the Yugabyte organisation that lists schema objects, runs a SELECT inside a read-only transaction, and keeps the write tool off unless an operator flag turns it on.

[← Explore all mcp servers](/mcp-servers/)

DATABASE DEVELOPMENT / Yugabyte

# YugabyteDB MCP Server

Python MCP server from the Yugabyte organisation that lists schema objects, runs a SELECT inside a read-only transaction, and keeps the write tool off unless an operator flag turns it on.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/yugabyte/yugabytedb-mcp-server)

SOURCE REVIEW

 Reviewed 2026-10-15
 Evidence 4 linked sources
 Publisher Yugabyte
 Licence [Apache-2.0 ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/LICENSE)
 Revision 57017d043646
 [Read what was—and wasn’t—checked ↓](#review)

“An MCP server for YugabyteDB and PostgreSQL — lets LLMs (Claude Desktop, Cursor, Windsurf, etc.) summarize schemas, run read-only queries, and execute write statements behind a configurable guardrail layer.”

 [Yugabyte · upstream description ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/README.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - Yugabyte publishes this server in yugabyte/yugabytedb-mcp-server. At commit 57017d04364653df78300718f81940c66b9c5d5e, pyproject.toml names the package yugabytedb-mcp-server version 2.0.0rc2 and authors Yugabyte.
- tools.py defines summarize_database, run_read_only_query, and run_write_query. The README says the write tool is disabled unless --enable-write-query or YB_MCP_ENABLE_WRITE_QUERY=true is set.

### A good fit for

 - List tables, columns, and row counts for a schema, then run a SELECT wrapped in BEGIN READ ONLY.
- Enable the guarded write tool only when the connecting role is meant to run INSERT, UPDATE, DELETE, MERGE, TRUNCATE, or DDL.

### Weigh up before choosing

 - The default-branch commit read here, 57017d04364653df78300718f81940c66b9c5d5e, is dated 2026-09-01.
- pyproject.toml version is 2.0.0rc2. The README says default installs will not pick up the release candidate and prints pipx install yugabytedb-mcp-server==2.0.0rc2, or --pip-args='--pre'.
- The LICENSE file is Apache License 2.0 and its appendix is still the placeholder line Copyright [yyyy] [name of copyright owner].
- The README says the write-statement block list is not exhaustive. HTTP mode binds 127.0.0.1 by default and refuses a non-loopback bind when MCP_AUTH_PROVIDER is unset, unless MCP_ALLOW_UNAUTHENTICATED is set.
- The README says this server does not transmit telemetry. It also says to report vulnerabilities to support@yugabyte.com rather than in a public GitHub issue.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - README.md at 57017d04364653df78300718f81940c66b9c5d5e: tools, install lines, Claude Desktop JSON, transport and auth environment variables, guardrail list, telemetry sentence.
- pyproject.toml at the same revision: package name, version 2.0.0rc2, requires-python >=3.10, license Apache-2.0, author Yugabyte.
- LICENSE at the same revision: Apache License Version 2.0, with the unfilled copyright appendix.
- src/yugabytedb_mcp_server/tools.py at the same revision: function definitions for summarize_database, run_read_only_query, and run_write_query.

### Our findings

 - The three tool names in the README match function definitions in tools.py.
- pyproject.toml classifiers include Development Status :: 4 - Beta. The README describes version 2.0.0rc2 as a release candidate.
- The Apache 2.0 file grants reproduction and distribution. It does not name a copyright holder; the appendix placeholder is still present.
- The README's uvx config example does not pin the release-candidate version. A later note on the same page says the args need yugabytedb-mcp-server@2.0.0rc2 or --pre while 2.0.0rc2 is the published pre-release.

### Not established by this review

 - Not executed: it was not installed or run.
- No database connection, OIDC login, or tool call was made.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Connect a server deliberately.

[Upstream setup instructions ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/README.md)

DOCUMENTED COMMAND

 pipx install yugabytedb-mcp-server==2.0.0rc2 Copy command ↗

Copying does not execute this command. It may retrieve a newer version than the reviewed source.

 - The README prints that release-candidate command in the install section, and also prints unversioned uvx, pipx, uv tool, and pip lines that it says will not select the pre-release.
- Set YUGABYTEDB_URL. The printed uvx client block uses command uvx and args ["yugabytedb-mcp-server"]; the same page says those args need the @2.0.0rc2 suffix or --pre while this pre-release is current.
- Leave YB_MCP_ENABLE_WRITE_QUERY unset unless the write tool is intended.

### Before you start

 - Python 3.10+ and one of uv, pipx, or pip.
- A reachable YugabyteDB or PostgreSQL database.

### Documented configuration example

Use the client and authentication context described in the setup guidance. Configuration formats vary between hosts.

 {
 "mcpServers": {
 "yugabytedb": {
 "command": "uvx",
 "args": [
 "yugabytedb-mcp-server"
 ],
 "env": {
 "YUGABYTEDB_URL": "host=… port=5433 dbname=… user=… password=…"
 }
 }
 }
} Copy configuration ↗

### Compatibility

Python 3.10 or newer, as stated in the README and pyproject.toml. · A reachable YugabyteDB or PostgreSQL database. · Clients named in the README: Claude Desktop, Cursor, Windsurf, and MCP Inspector against HTTP mode.

### Implementation

Python

### Transports

stdio · http

### Database connection string, optional OAuth

 - summarize_database and run_read_only_query are the read tools. run_write_query is disabled unless --enable-write-query or YB_MCP_ENABLE_WRITE_QUERY=true.
- The connection string can carry the database user and password. Optional MCP_AUTH_PROVIDER values named in the README are cognito and oidc.
- Non-loopback HTTP requires an auth provider unless MCP_ALLOW_UNAUTHENTICATED is set. The README says that setting is for development and logs a warning.

### Cost model

Apache-2.0. The files read here do not state a fee for the server. No database hosting price is stated in those files.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [YugabyteDB MCP Server README at 57017d04 ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/README.md) Checked 2026-10-15 https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/README.md Supports: upstreamDescription, install, configExample, bestFor, limitations, transports, access
- [Apache License 2.0 at 57017d04 ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/LICENSE) Checked 2026-10-15 https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/LICENSE Supports: license
- [pyproject.toml at 57017d04 ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/pyproject.toml) Checked 2026-10-15 https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/pyproject.toml Supports: language, compatibility, whySelected
- [tools.py at 57017d04 ↗](https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/src/yugabytedb_mcp_server/tools.py) Checked 2026-10-15 https://github.com/yugabyte/yugabytedb-mcp-server/blob/57017d04364653df78300718f81940c66b9c5d5e/src/yugabytedb_mcp_server/tools.py Supports: whySelected, review.findings

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### YDB MCP ↗ Python MCP server from the ydb-platform organisation that runs YDB SQL, explains queries, and lists or describes paths, with writes off unless a flag or environment variable turns them on.](/mcp-servers/ydb/)[### Aurora DSQL MCP ↗ AWS Labs MCP server that turns questions into Postgres-compatible SQL for Aurora DSQL, read-only unless --allow-writes is passed, and only on the same host as the client.](/mcp-servers/awslabs-aurora-dsql/)[### AWS Labs Postgres MCP ↗ Pins the AWS Labs Postgres server whose read-only guard parses SQL with pglast and still tells operators to use a least-privilege role.](/mcp-servers/awslabs-postgres/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Inspect resource evidence](/tools/)
- [Choose a host](/agents/)
- [Inspect reusable workflows](/skills/)
- [Use Undominated data](/api/)
