logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

YDB Protocol Interfacer (MCP)

This utility facilitates intuitive, natural language control over YugabyteDB (YDB) data stores using the Model Context Protocol (MCP). It allows any compatible Large Language Model to execute sophisticated database actions, such as running Structured Query Language (SQL) statements, examining directory structures, and managing specific data locations within the system.

Author

YDB Protocol Interfacer (MCP) logo

ydb-platform

Apache License 2.0

Quick Info

GitHub GitHub Stars 22
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

databasesdatabaseydbydb databasesaccess ydbmanage ydb

Introduction

This system acts as an interface layer, connecting Large Language Models (LLMs) that adhere to the Model Context Protocol (MCP) with YugabyteDB (YDB) instances. Databases, fundamentally organized collections of data often managed by a Database Management System (DBMS), benefit from this integration. This allows AI agents to interact with data storage systems using conversational instructions, moving beyond traditional query languages for common administrative tasks.

  • Database Management System (DBMS) functions
  • Structured Query Language (SQL) execution
  • Data modeling and data representation efficiency
  • NoSQL database paradigms
  • Concurrent access and fault tolerance considerations

Installation Methods

Installation pathways vary depending on your existing Python environment management strategy. Choose the method that best suits your operational requirements for deploying this service.

Via uvx

The uvx utility, an alias for running tools via uv run tool, permits execution of Python applications without a permanent local installation. The following configuration snippet illustrates setting up YDB MCP using this approach for anonymous access.

{
  "mcpServers": {
    "ydb": {
      "command": "uvx",
      "args": [
        "ydb-mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local"
      ]
    }
  }
}

Via pipx

pipx offers a method for running PyPI-hosted applications independently, provided pipx itself has been previously installed on your system. The subsequent JSON example demonstrates configuration for anonymous authentication when invoking YDB MCP through pipx.

{
  "mcpServers": {
    "ydb": {
      "command": "pipx",
      "args": [
        "run", "ydb-mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local"
      ]
    }
  }
}

Via pip

The standard Python package installer, pip, can also deploy YDB MCP from its PyPI repository, including all necessary dependencies for operation. After installation, you must configure your MCP client settings to establish communication with the YDB server endpoint.

pip install ydb-mcp

When configuring the client, customize the subsequent JSON example with your specific environment details, potentially adjusting the Python interpreter path if not using a globally accessible environment.

Example: Using Anonymous Authentication

{
  "mcpServers": {
    "ydb": {
      "command": "python3",
      "args": [
        "-m", "ydb_mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local"
      ]
    }
  }
}

Authentication Configurations

Regardless of whether you employ uvx, pipx, or pip for deployment, securing the connection to YDB requires specific command-line arguments to define the security mode.

Using Login/Password Authentication

To authenticate using traditional credentials, supply the endpoint details along with the --ydb-auth-mode, --ydb-login, and --ydb-password flags.

{
  "mcpServers": {
    "ydb": {
      "command": "uvx",
      "args": [
        "ydb-mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local",
        "--ydb-auth-mode", "login-password",
        "--ydb-login", "<your-username>",
        "--ydb-password", "<your-password>"
      ]
    }
  }
}

Using Access Token Authentication

For token-based security, specify the authentication mode along with the --ydb-access-token argument.

{
  "mcpServers": {
    "ydb": {
      "command": "uvx",
      "args": [
        "ydb-mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local",
        "--ydb-auth-mode", "access-token",
        "--ydb-access-token", "qwerty123"
      ]
    }
  }
}

Using Service Account Authentication

Service account interaction requires setting the mode and pointing to the credentials file via --ydb-sa-key-file.

{
  "mcpServers": {
    "ydb": {
      "command": "uvx",
      "args": [
        "ydb-mcp",
        "--ydb-endpoint", "grpc://localhost:2136",
        "--ydb-database", "/local",
        "--ydb-auth-mode", "service-account",
        "--ydb-sa-key-file", "~/sa_key.json"
      ]
    }
  }
}

Available Tools

YDB MCP exposes several dedicated functions to operate on the connected YDB database instance through the language model interface:

  • ydb_query: Executes arbitrary SQL text against the database.
  • Parameters:

    • sql: The string containing the SQL command to execute.
  • ydb_query_with_params: Executes parameterized SQL queries using provided data structures.

  • Parameters:

    • sql: The SQL template containing placeholders.
    • params: A JSON formatted string holding the values for the placeholders.
  • ydb_list_directory: Retrieves the contents of a specified directory path within YDB.

  • Parameters:

    • path: The specific directory location to inspect.
  • ydb_describe_path: Fetches detailed metadata for a given path, such as table schema information.

  • Parameters:

    • path: The identifier for the object to describe.
  • ydb_status: Checks the current operational health and connectivity status of the YDB link.

Development Workflow

The project development cycle primarily relies on the Make utility for orchestrating various routine tasks. This provides a standardized approach to building and maintaining the code base.

Available Make Commands

Common development operations are bundled into convenient Makefile targets for streamlined execution:

  • make all: Executes cleaning, linting, and testing sequentially; this is the default target.
  • make clean: Removes all previously generated build artifacts and temporary files.
  • make test: Executes the complete suite of automated tests using pytest.
  • Configurable via LOG_LEVEL (defaults to WARNING) to adjust verbosity.
  • make unit-tests: Runs only the unit test collection with verbose logging enabled.
  • Configurable via LOG_LEVEL (defaults to WARNING).
  • make integration-tests: Runs only tests that require external service interaction, offering verbose output.
  • Configurable via YDB_ENDPOINT (defaults to grpc://localhost:2136), YDB_DATABASE (defaults to /local), MCP_HOST (defaults to 127.0.0.1), MCP_PORT (defaults to 8989), and LOG_LEVEL.
  • make run-server: Initiates the YDB MCP operational server process.
  • Configurable via YDB_ENDPOINT and YDB_DATABASE defaults.
  • Extra command line arguments can be supplied using the ARGS variable, e.g., ARGS="--some-flag".
  • make lint: Executes all code quality checks, including flake8, mypy, black, and isort.
  • make format: Applies code style corrections using black and isort formatters.
  • make install: Sets up the package for development use, typically in an editable mode.
  • make dev: Performs development installation, including all necessary testing dependencies.

Test Verbosity Adjustment

By default, test execution minimizes output, defaulting to a WARNING log level for clarity. Adjusting the LOG_LEVEL environment variable allows fine-grained control over diagnostic messages during testing.

# Observe detailed debug flow during full test execution
make test LOG_LEVEL=DEBUG

# Show only informational messages during integration checks
make integration-tests LOG_LEVEL=INFO

# Run unit tests with standard, non-verbose output
make unit-tests LOG_LEVEL=WARNING

Permitted log levels are DEBUG, INFO, WARNING (standard), and ERROR.

Extra Details

This tool effectively bridges the gap between generalized AI interfaces (LLMs using MCP) and specialized data persistence systems like YDB. Unlike older methods where data was stored physically on items like index cards before digitization, modern large databases require robust software layers, like this MCP server, to manage security, concurrent access, and complex data structures efficiently. The configuration options provided cover anonymous access, credential-based methods, and token-based security, ensuring it integrates securely into various enterprise data environments.

Conclusion

This YDB MCP implementation enables powerful, conversational management of database systems, translating human language intent into precise database operations supported by YDB. By leveraging the structured organization inherent in database systems, this tool allows for AI-driven administration, enhancing interaction efficiency over manual querying for common tasks like path traversal and query execution.

See Also

`