iceberg-mcp-server
MCP Server for Apache Iceberg, enabling users to read, query, and manipulate data within Iceberg catalogs.
README
iceberg-mcp-server
<!-- mcp-name: io.github.dragonejt/iceberg-mcp-server -->
iceberg-mcp-server is an MCP Server for Apache Iceberg, enabling users to read, query, and manipulate data within Iceberg catalogs. It supports reading and data manipulation using catalog types supported by PyIceberg, and supports SQL queries using catalog types compatible with DuckDB.
Quickstart
Installation
With uv, installation is easy, the only command you need to run is:
uvx iceberg-mcp-server
This will automatically install and run the latest version of iceberg-mcp-server published to PyPI. Alternative Python package runners like pipx are also supported. Once installed, iceberg-mcp-server can be used with any agent that supports STDIO-based MCP servers. For example, with OpenAI's Codex CLI ~/.codex/config.toml:
[mcp_servers.iceberg]
command = "uvx"
args = ["iceberg-mcp-server"]
Configuration
.pyiceberg.yaml File
iceberg-mcp-server supports the PyIceberg configuration methods. .pyiceberg.yaml is the recommended persistent method of configuration. For example, to connect to a standard REST-based Iceberg catalog with ~/.pyiceberg.yaml:
catalog:
default: # iceberg-mcp-server loads the catalog named "default" if not in env vars
uri: <catalog-uri>
token: <catalog-token>
warehouse: <warehouse>
Environment Variables
One of the other PyIceberg configuration methods is setting specific environment variables, which iceberg-mcp-server supports as well. There are also environment variables specific to iceberg-mcp-server that can be set:
ICEBERG_CATALOG="default"
SENTRY_DSN="https://<sentry-key>@o<organization-id>.ingest.us.sentry.io/<project-id>"
ICEBERG_CATALOGallows you to set which catalog will be loaded. By default, the catalog nameddefaultwill be loaded based on PyIceberg behavior.- Optionally, you may send telemetry to Sentry by specifying a
SENTRY_DSN. This will send traces, profiles, logs, and default PII to Sentry, as well as enable the Sentry MCP integration.
Local Development
Building and Running
This project uses uv for package management and builds. Once this repository has been cloned, running the local development version of iceberg-mcp-server only requires a single command:
uv run iceberg-mcp-server
An Iceberg catalog still needs to be configured, but then it can be integrated into any agent that supports STDIO-based MCP servers as long as the agent is ran from the repository root directory.
Testing
This repository uses pytest for test running, although the tests themselves are structured in the unittest format. Running tests involves invoking pytest like any other project. If you use VS Code or a fork for development, the VS Code Python Extension will enable automatic test discovery and running in the Testing sidebar. Tests will also be run with coverage in the integration workflow.
Linting and Formatting
iceberg-mcp-server uses Ruff and ty for linting, formatting, and type checking. The standard commands to run are:
ruff check --fix # linting
ruff format # formatting
ty check # type checking
The Ruff configuration is found in pyproject.toml, and all autofixable issues will be autofixed. If you use VS Code or a fork for development, the VS Code Ruff Extension and VS Code ty Extension will enable viewing issues from Ruff and ty within your editor. Additionally, Ruff, ty, and CodeQL analysis will be run in the integration workflow.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.