What is Model Context Protocol server for YDB enabling AI-powered database operations.?
YDB MCP is a Model Context Protocol server for YDB that allows interaction with YDB databases from any LLM supporting MCP. It enables AI-powered database operations and natural language interactions with YDB instances.
Documentation
YDB MCP
Model Context Protocol server for YDB. It allows to work with YDB databases from any LLM that supports MCP. This integration enables AI-powered database operations and natural language interactions with your YDB instances.
Usage# Via uvx
uvx, which is an allias for uv run tool, allows you to run various python applications without explicitly installing them. Below are examples of how to configure YDB MCP using uvx.
pipx allows you to run various applications from PyPI without explicitly installing each one. However, it must be installed first. Below are examples of how to configure YDB MCP using pipx.
To get started with YDB MCP, you'll need to configure your MCP client to communicate with the YDB instance. Below are example configuration files that you can customize according to your setup and then put into MCP client's settings. Path to the Python interpreter might also need to be adjusted to the correct virtual environment that has the ydb-mcp package installed.
Regardless of the usage method (uvx, pipx or pip), you can configure authentication for your YDB installation. To do this, pass special command line arguments.
Using Login/Password Authentication
To use login/password authentication, specify the --ydb-auth-mode, --ydb-login, and --ydb-password arguments:
YDB MCP provides the following tools for interacting with YDB databases:
ydb_query: Run a SQL query against a YDB database
Parameters:
sql: SQL query string to execute
ydb_query_with_params: Run a parameterized SQL query with JSON parameters
Parameters:
sql: SQL query string with parameter placeholders
params: JSON string containing parameter values
ydb_list_directory: List directory contents in YDB
Parameters:
path: YDB directory path to list
ydb_describe_path: Get detailed information about a YDB path (table, directory, etc.)
Parameters:
path: YDB path to describe
ydb_status: Get the current status of the YDB connection
Development
The project uses Make as its primary development tool, providing a consistent interface for common development tasks.
Available Make Commands
The project includes a comprehensive Makefile with various commands for development tasks. Each command is designed to streamline the development workflow and ensure code quality:
make all: Run clean, lint, and test in sequence (default target)
make clean: Remove all build artifacts and temporary files
make test: Run all tests using pytest
Can be configured with environment variables:
LOG_LEVEL (default: WARNING) - Control test output verbosity (DEBUG, INFO, WARNING, ERROR)
make unit-tests: Run only unit tests with verbose output
Can be configured with environment variables:
LOG_LEVEL (default: WARNING) - Control test output verbosity (DEBUG, INFO, WARNING, ERROR)
make integration-tests: Run only integration tests with verbose output
Can be configured with environment variables:
YDB_ENDPOINT (default: grpc://localhost:2136)
YDB_DATABASE (default: /local)
MCP_HOST (default: 127.0.0.1)
MCP_PORT (default: 8989)
LOG_LEVEL (default: WARNING) - Control test output verbosity (DEBUG, INFO, WARNING, ERROR)
make run-server: Start the YDB MCP server
Can be configured with environment variables:
YDB_ENDPOINT (default: grpc://localhost:2136)
YDB_DATABASE (default: /local)
Additional arguments can be passed using ARGS="your args"
make lint: Run all linting checks (flake8, mypy, black, isort)
make format: Format code using black and isort
make install: Install the package in development mode
make dev: Install the package in development mode with all development dependencies
Test Verbosity Control
By default, tests run with minimal output (WARNING level) to keep the output clean. You can control the verbosity of test output using the LOG_LEVEL environment variable:
make test LOG_LEVEL=DEBUG
# Run integration tests with info output
make integration-tests LOG_LEVEL=INFO
# Run unit tests with warning output (default)
make unit-tests LOG_LEVEL=WARNING
Available log levels:
DEBUG: Show all debug messages, useful for detailed test flow