Skip to main content
Glama

StarRocks MCP Server

Official
README.md3.12 kB
# Tests for mcp-server-starrocks ## Prerequisites 1. **StarRocks cluster running on localhost** with default configuration: - Host: localhost - Port: 9030 (MySQL protocol) - User: root - Password: (empty) - At least one BE node available 2. **Optional: Arrow Flight SQL enabled** (for Arrow Flight tests): - Port: 9408 (or custom port) - Add `arrow_flight_sql_port = 9408` to `fe.conf` - Restart FE service - Verify with: `python test_arrow_flight.py` 3. **Test dependencies installed**: ```bash uv add --optional test pytest pytest-cov ``` ## Running Tests ### Quick Connection Test First, verify your StarRocks connection: ```bash # Test MySQL connection and basic operations python test_connection.py # Test Arrow Flight SQL connectivity (if enabled) python test_arrow_flight.py ``` The MySQL test will verify basic connectivity and table operations. The Arrow Flight test will diagnose Arrow Flight SQL availability and performance. ### Full Test Suite Run the complete db_client test suite: ```bash # Run all tests (MySQL only) uv run pytest tests/test_db_client.py::TestDBClient -v # Run Arrow Flight SQL tests (if enabled) STARROCKS_FE_ARROW_FLIGHT_SQL_PORT=9408 uv run pytest tests/test_db_client.py::TestDBClientWithArrowFlight -v # Run all tests (both MySQL and Arrow Flight if available) uv run pytest tests/test_db_client.py -v # Run specific test uv run pytest tests/test_db_client.py::TestDBClient::test_execute_show_databases -v ``` ### Test Coverage The test suite covers: - **Connection Management**: MySQL pooled connections and ADBC Arrow Flight SQL - **Query Execution**: SELECT, DDL, DML operations with both success and error cases - **Result Formats**: Raw ResultSet and pandas DataFrame outputs - **Database Context**: Switching databases for queries - **Error Handling**: Connection failures, invalid queries, malformed SQL - **Resource Management**: Connection pooling, cursor cleanup, connection reset - **Edge Cases**: Empty results, type conversion, schema operations ### Test Configuration - **Single-node setup**: Tests create tables with `PROPERTIES ("replication_num" = "1")` - **Temporary databases**: Tests create and clean up test databases automatically - **Arrow Flight SQL**: Tests are skipped if `STARROCKS_FE_ARROW_FLIGHT_SQL_PORT` is not set - **Isolation**: Each test uses a fresh DBClient instance with reset connections ## Test Results When all tests pass, you should see: ``` ======================== 16 passed, 2 skipped in 1.30s ========================= ``` The 2 skipped tests are Arrow Flight SQL tests that only run when the environment variable is configured. ## Troubleshooting **Connection issues**: - Ensure StarRocks FE is running on localhost:9030 - Check that the `root` user has no password set - Verify at least one BE node is available **Table creation failures**: - Single-node clusters need `replication_num=1` - Check StarRocks logs for detailed error messages **Import errors**: - Ensure you're running from the project root directory - Check that `src/mcp_server_starrocks` is in your Python path

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/StarRocks/mcp-server-starrocks'

If you have feedback or need assistance with the MCP directory API, please join our Discord server