LABSCO SUMMARY
It hands over the schema before asking for a query.
Text-to-SQL fails on table and column names more than on logic, which is why exposing the schema as resources matters more than the query tool itself. Read-only is the other structural choice: point it at a warehouse and the worst outcome is an expensive SELECT. The project is candid about being early and about the official Apache server existing, which is worth weighing — this one is small, easy to install and MySQL-compatible generally, not only Doris.
What it is
A lightweight MCP server for Apache Doris and other MySQL-compatible databases. It exposes the schema as structured resources so a model can see what tables and fields exist before writing anything, runs read-only queries, and ships prompt templates aimed at analytical questions rather than raw SQL.
What you get
- Read-only SQL executed against your database, with connection pooling and asynchronous execution behind it
- Metadata queries covering database schemas, table structures and resource usage
- Data analysis operations over yearly, monthly and daily usage figures
- The schema exposed as structured resources, so the model has table and field definitions in context rather than guessing at names
- Built-in prompt templates for analytics questions, including multi-role prompting and both general-purpose and user-defined SQL analysis prompts
Requirements
A Doris or MySQL-compatible database and credentials on it. Connection details go in either as a URL argument in the client config — doris://user:pass@localhost:9030/mydb — or in a .env file holding DB_HOST, DB_PORT, DB_USER, DB_PASSWORD and DB_NAME, alongside MCP_SERVER_NAME and a debug flag. Install with pip install doris-mcp-lite, which provides the server command; a setup script walks the configuration for you, and uv-based and editable installs are documented too. Client config examples are given for CherryStudio and for pip and source installs. The project describes itself as an early developer version with some rough edges, and points at the official Apache Doris MCP server as the alternative.
Setup effort
One command plus credentials — pip install doris-mcp-lite, then supply credentials
USE CASES
01
Asking a warehouse question in plain language
The model reads the schema resources, writes the SELECT itself and answers from live data.
02
Finding out what is in the database
Query the metadata for schemas, table structures and resource usage before writing anything substantive.
03
Looking at usage over time
Use the built-in analysis operations for yearly, monthly and daily figures instead of writing the aggregation each time.
04
Giving a non-SQL colleague a way in
Let the prompt templates carry the analytical framing so the question can be asked without knowing the schema.
BEFORE YOU INSTALL
What to know first
Requires
- Python 3.12 or later
- uv, for the source install the Cherry Studio and uv configurations run
- An Apache Doris or MySQL-compatible database — its user, password, host, port and database go in the doris://user:pass@host:9030/mydb address in the configuration (or in the optional .env file)
INSTALLATION
Connect your client
Server setup
Setup
TERMINAL
git clone https://github.com/NomotoK/doris-mcp-lite.git
cd doris-mcp-lite
uv venv
uv syncpip
TERMINAL
pip install doris-mcp-liteMCP Clients
Cherry Studio
In CherryStudio add a server named doris-mcp-lite, set its type to stdio and its command to the absolute path of your uv, then enter these arguments one per line:
CHERRY STUDIO · TERMINAL
--directory
<YOUR_PATH_TO_DORIS_MCP_LITE>
run
server
doris://<YOUR_DB_USER>:<YOUR_DB_PASSWORD>@localhost:9030/<YOUR_DB_NAME><YOUR_PATH_TO_DORIS_MCP_LITE> is the full path of the doris-mcp-lite folder the clone step creates. The doris:// address is a sample; yours carries your own user, password, host, port and database.
Any MCP client — pip
ANY MCP CLIENT — PIP · JSON
{
"mcpServers": {
"DorisAnalytics": {
"command": "server",
"args": [
"doris://<YOUR_DB_USER>:<YOUR_DB_PASSWORD>@localhost:9030/<YOUR_DB_NAME>"
],
"transportType": "stdio"
}
}
}Any MCP client — uv
ANY MCP CLIENT — UV · JSON
{
"mcpServers": {
"DorisAnalytics": {
"disabled": false,
"timeout": 60,
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_DORIS_MCP_LITE>",
"run",
"server",
"doris://<YOUR_DB_USER>:<YOUR_DB_PASSWORD>@localhost:9030/<YOUR_DB_NAME>"
],
"transportType": "stdio"
}
}
}<YOUR_PATH_TO_DORIS_MCP_LITE> is the full path of the doris-mcp-lite folder the clone step creates. The doris:// address is a sample; yours is your own connection string. If uv is not on your PATH, give its absolute path as the command.