What is An MCP server implementation for YugabyteDB that allows LLMs to directly interact with your database.?
YugabyteDB MCP Server is an implementation of the Model Context Protocol (MCP) that enables large language models (LLMs) to interact directly with a YugabyteDB database. It supports listing all tables, running read-only SQL queries, and returning results in JSON format. The server is designed for use with FastMCP and is compatible with various MCP clients.
Documentation
YugabyteDB MCP Server
An MCP server implementation for YugabyteDB that allows LLMs to directly interact with your database.
Features
List all tables in the database, including schema and row counts
Run read-only SQL queries and return results as JSON
Designed for use with FastMCP and compatible with MCP clients like Claude Desktop, Cursor, and Windsurf Editor
git clone [email protected]:yugabyte/yugabytedb-mcp-server.git
cd yugabytedb-mcp-server
uv sync
Configuration
The server is configured using the following environment variable:
YUGABYTEDB_URL: The connection string for your YugabyteDB database (e.g., dbname=database_name host=hostname port=5433 user=username password=password)
Edit the configuration file. Go to Claude -> Settings -> Developer -> Edit Config
Add the above configuration under mcpServers.
Restart Claude Desktop.
Claude Desktop Logs
The logs for Claude Desktop can be found in the following locations:
MacOS: ~/Library/Logs/Claude
Windows: %APPDATA%\Claude\Logs
The logs can be used to diagnose connection issues or other problems with your MCP server configuration. For more details, refer to the official documentation.
Go to Cursor > Settings > Cursor Settings > MCP > Add a new global MCP server.
Add the configuration as above.
Save the configuration.
You will see yugabytedb-mcp-server as an added server in MCP servers list. Refresh to see if server is enabled.
Cursor Logs
In the bottom panel of Cursor, click on "Output" and select "Cursor MCP" from the dropdown menu to view server logs. This can help diagnose connection issues or other problems with your MCP server configuration.
Go to Windsurf > Settings > Windsurf Settings > Cascade > Model Context Protocol (MCP) Servers > Add server > Add custom server.
Add the configuration as above.
Save and refresh.
Streamable-HTTP with MCP Inspector
Start the server using Streamable-HTTP:
uv run src/server.py --transport http
Or with Docker:
docker run -p 8080:8080 -e YUGABYTEDB_URL="..." mcp/yugabytedb --transport=http
Launch the inspector:
npx @modelcontextprotocol/inspector
In the GUI, use the URL:
http://localhost:8080/invocations/mcp
Change transport type to Streamable-HTTP
Add the proxy token from the terminal output
Tools Provided
summarize_database: Lists all tables in the database, including schema and row counts.
run_read_only_query: Runs a read-only SQL query and returns the results as JSON.
Example Usage
Once connected via an MCP client, you can:
Ask for a summary of the database tables and schemas
Run SELECT queries and get results in JSON
Environment Variables
YUGABYTEDB_URL: (required) The connection string for your YugabyteDB/PostgreSQL database
Troubleshooting
Ensure the YUGABYTEDB_URL is set and correct
Verify your database is running and accessible
Check that your user has the necessary permissions
Make sure uv is installed and available in your PATH. Note: If claude is unable to access uv, giving the error: spawn uv ENOENT, try symlinking the uv for global access:
sudo ln -s "$(which uv)" /usr/local/bin/uv
Review logs in your MCP client for connection or query errors
Development
Project dependencies are managed in pyproject.toml