by cloudera
Provides read‑only access to Iceberg tables via Apache Impala, exposing schema discovery and SQL query execution as JSON for LLM integration.
Iceberg MCP Server is a Model Context Protocol (MCP) service that connects to an Apache Impala coordinator and allows language models to inspect Iceberg table schemas and run read‑only SQL queries. The server returns results in JSON, making it easy for AI applications to consume database information without granting write access.
IMPALA_HOSTIMPALA_PORTIMPALA_USERIMPALA_PASSWORDIMPALA_DATABASEstdio). Set MCP_TRANSPORT to stdio, http, or sse as needed.uvx:
{
"command": "uvx",
"args": ["--from", "git+https://github.com/cloudera/iceberg-mcp-server@main", "run-server"]
}
uv:
{
"command": "uv",
"args": ["--directory", "/path/to/iceberg-mcp-server", "run", "src/iceberg_mcp_server/server.py"]
}
get_schema() – lists all tables in the selected Impala database.execute_query(query) – runs any SELECT‑type SQL and returns JSON results.stdio (default), http, and sse for flexible deployment.Q: Can I run write queries? A: No. The server only supports read‑only SELECT statements to protect data integrity.
Q: Which transport should I choose?
A: Use stdio for local CLI tools or Claude Desktop. Choose http for network‑exposed services, and sse for event‑driven web deployments.
Q: Do I need a Python environment?
A: Yes. The server is Python‑based; uv/uvx handle dependency isolation and execution.
Q: How do I secure credentials? A: Store Impala credentials in environment variables or a secret manager and avoid committing them to source control.
Q: Is there support for other databases? A: This server is specific to Iceberg tables accessed through Impala. Separate MCP servers would be needed for other data sources.
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.To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your claude_desktop_config.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"
}
}
}
}
{
"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.
The ./examples folder contains several examples how to integrate this MCP Server with common AI Frameworks like LangChain/LangGraph, OpenAI SDK.
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.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by googleapis
An MCP server that streamlines database tool development by handling connection pooling, authentication, observability, and secure access, allowing agents to interact with databases via natural language.
by bytebase
Provides a universal gateway that lets MCP‑compatible clients explore and query MySQL, PostgreSQL, SQL Server, MariaDB, and SQLite databases through a single standardized interface.
by designcomputer
Enables secure interaction with MySQL databases via the Model Context Protocol, allowing AI applications to list tables, read contents, and execute queries safely.
by benborla
Provides read‑only access to MySQL databases for large language models, allowing schema inspection and safe execution of SQL queries.
by neo4j-contrib
Enables natural‑language interaction with Neo4j databases, allowing large language models to query, modify, and manage graph data through multiple transport modes.
by mongodb-js
Provides a Model Context Protocol server that enables interaction with MongoDB databases and MongoDB Atlas clusters through a unified API.
by ClickHouse
Enables AI assistants to run read‑only ClickHouse queries, list databases and tables, and execute embedded chDB queries through an MCP interface.
by neondatabase
Interact with Neon Postgres databases using natural language commands through the Model Context Protocol, enabling conversational database creation, migration, and query execution.
by motherduckdb
Enables SQL analytics on DuckDB and MotherDuck databases via a Model Context Protocol server, allowing AI assistants and IDEs to query data directly.