execute_query
Execute a SQL query on the Impala database and return results as JSON.
Ask an Impala database which tables it holds, then run SQL against it and get the rows back as JSON.
LABSCO SUMMARY
get_schema returns table names and nothing else, so column layouts have to come out of the queries themselves. execute_query takes only a query string, which means paging, limiting and aggregation are things you write into the SQL rather than pass as arguments. Two tools and JSON results make it easy to chain, and equally easy to pull back more rows than you wanted.
A SQL bridge to an Impala database over Iceberg tables, with one tool for table discovery and one for query execution.
An Impala database the server can reach, plus uv and a Python for it to run under — that is what UV_PYTHON selects.
Add the configuration to your client
USE CASES
The table names are the starting point when there is no data dictionary to read, and they are what any subsequent query has to be written against.
A query goes straight to Impala and the rows come back as JSON, which keeps the answer in the same place as the question that prompted it.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
execute_queryExecute a SQL query on the Impala database and return results as JSON.
get_schemaRetrieve the list of table names in the current Impala database.
BEFORE YOU INSTALL
2 tools when we connected.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 2 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
{
"mcpServers": {
"iceberg-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/cloudera/iceberg-mcp-server@main",
"run-server"
],
"env": {
"IMPALA_HOST": "<YOUR_IMPALA_HOST>",
"IMPALA_PORT": "443",
"IMPALA_USER": "<YOUR_IMPALA_USER>",
"IMPALA_PASSWORD": "<YOUR_IMPALA_PASSWORD>",
"IMPALA_DATABASE": "default"
}
}
}
}