YDB Model Context Protocol
STDIOModel Context Protocol server for YDB databases enabling AI-powered database operations.
Model Context Protocol server for YDB databases enabling AI-powered database operations.
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.
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
.
{ "mcpServers": { "ydb": { "command": "uvx", "args": [ "ydb-mcp", "--ydb-endpoint", "grpc://localhost:2136/local" ] } } }
To use login/password authentication, specify the --ydb-auth-mode
, --ydb-login
, and --ydb-password
arguments:
{ "mcpServers": { "ydb": { "command": "uvx", "args": [ "ydb-mcp", "--ydb-endpoint", "grpc://localhost:2136/local", "--ydb-auth-mode", "login-password", "--ydb-login", "<your-username>", "--ydb-password", "<your-password>" ] } } }
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
.
{ "mcpServers": { "ydb": { "command": "pipx", "args": [ "run", "ydb-mcp", "--ydb-endpoint", "grpc://localhost:2136/local" ] } } }
To use login/password authentication, specify the --ydb-auth-mode
, --ydb-login
, and --ydb-password
arguments:
{ "mcpServers": { "ydb": { "command": "pipx", "args": [ "run", "ydb-mcp", "--ydb-endpoint", "grpc://localhost:2136/local", "--ydb-auth-mode", "login-password", "--ydb-login", "<your-username>", "--ydb-password", "<your-password>" ] } } }
YDB MCP can be installed using pip
, Python's package installer. The package is available on PyPI and includes all necessary dependencies.
pip install ydb-mcp
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.
{ "mcpServers": { "ydb": { "command": "python3", "args": [ "-m", "ydb_mcp", "--ydb-endpoint", "grpc://localhost:2136/local" ] } } }
To use login/password authentication, specify the --ydb-auth-mode
, --ydb-login
, and --ydb-password
arguments:
{ "mcpServers": { "ydb": { "command": "python3", "args": [ "-m", "ydb_mcp", "--ydb-endpoint", "grpc://localhost:2136/local", "--ydb-auth-mode", "login-password", "--ydb-login", "<your-username>", "--ydb-password", "<your-password>" ] } } }
YDB MCP provides the following tools for interacting with YDB databases:
ydb_query
: Run a SQL query against a YDB database
sql
: SQL query string to executeydb_query_with_params
: Run a parameterized SQL query with JSON parameters
sql
: SQL query string with parameter placeholdersparams
: JSON string containing parameter valuesydb_list_directory
: List directory contents in YDB
path
: YDB directory path to listydb_describe_path
: Get detailed information about a YDB path (table, directory, etc.)
path
: YDB path to describeydb_status
: Get the current status of the YDB connection
The project uses Make as its primary development tool, providing a consistent interface for common development tasks.
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 filesmake test
: Run all tests using pytest
LOG_LEVEL
(default: WARNING) - Control test output verbosity (DEBUG, INFO, WARNING, ERROR)make unit-tests
: Run only unit tests with verbose output
LOG_LEVEL
(default: WARNING) - Control test output verbosity (DEBUG, INFO, WARNING, ERROR)make integration-tests
: Run only integration tests with verbose output
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
YDB_ENDPOINT
(default: grpc://localhost:2136)YDB_DATABASE
(default: /local)ARGS="your args"
make lint
: Run all linting checks (flake8, mypy, black, isort)make format
: Format code using black and isortmake install
: Install the package in development modemake dev
: Install the package in development mode with all development dependenciesBy 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:
# Run all tests with debug output 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 flowINFO
: Show informational messages and aboveWARNING
: Show only warnings and errors (default)ERROR
: Show only error messages