Cloudera Iceberg MCP Server
Official# Cloudera Iceberg MCP Server (via Impala)
This is a A Model Context Protocol server that provides read-only access to Iceberg tables via Apache Impala. This server enables LLMs to inspect database schemas and execute read-only queries.
- `execute_query(query: str)`: Run any SQL query on Impala and return the results as JSON.
- `get_schema()`: List all tables available in the current database.
## Usage with Claude Desktop
To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your `claude_desktop_config.json`:
### Option 1: Direct installation from GitHub (Recommended)
```json
{
"mcpServers": {
"iceberg-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/cloudera/iceberg-mcp-server@main",
"run-server"
],
"env": {
"IMPALA_HOST": "coordinator-default-impala.example.com",
"IMPALA_PORT": "443",
"IMPALA_USER": "username",
"IMPALA_PASSWORD": "password",
"IMPALA_DATABASE": "default"
}
}
}
}
```
### Option 2: Local installation (after cloning the repository)
```json
{
"mcpServers": {
"iceberg-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/iceberg-mcp-server",
"run",
"src/iceberg_mcp_server/server.py"
],
"env": {
"IMPALA_HOST": "coordinator-default-impala.example.com",
"IMPALA_PORT": "443",
"IMPALA_USER": "username",
"IMPALA_PASSWORD": "password",
"IMPALA_DATABASE": "default"
}
}
}
}
```
For Option 2, replace `/path/to` with your path to this repository. Set the environment variables according to your Impala configuration.
## Usage with AI frameworks
The `./examples` folder contains several examples how to integrate this MCP Server with common AI Frameworks like LangChain/LangGraph, OpenAI SDK.
### Transport
The MCP server's transport protocol is configurable via the `MCP_TRANSPORT` environment variable. Supported values:
- `stdio` **(default)** — communicate over standard input/output. Useful for local tools, command-line scripts, and integrations with clients like Claude Desktop.
- `http` - expose an HTTP server. Useful for web-based deployments, microservices, exposing MCP over a network.
- `sse` — use Server-Sent Events (SSE) transport. Useful for existing web-based deployments that rely on SSE.
*Copyright (c) 2025 - Cloudera, Inc. All rights reserved.*
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: execute_query runs SQL queries and returns results, while get_schema retrieves metadata about table names. There is no overlap in functionality or ambiguity about when to use each tool.
Both tools follow a consistent verb_noun naming pattern (execute_query, get_schema) with clear action-object relationships. The naming style is uniform throughout the set.
With only 2 tools for a database/query server, the surface feels severely limited. While the tools cover basic query execution and schema inspection, typical database operations like table creation, data manipulation, or metadata exploration beyond table names are missing, making this feel under-scoped.
For an Impala/Cloudera Iceberg database server, the toolset is significantly incomplete. There are no tools for creating/dropping tables, inserting/updating data, managing partitions, or accessing detailed schema information beyond table names. This creates dead ends for agents trying to perform common database operations.