MCP Server for Apache Iceberg
Project description
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
iceberg-mcp-server supports the PyIceberg methods of configuration. .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 will only load the catalog named "default"!
uri: <catalog-uri>
token: <catalog-token>
warehouse: <warehouse>
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 will enable viewing Ruff issues within your editor. Additionally, Ruff, ty, and CodeQL analysis will be run in the integration workflow.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iceberg_mcp_server-0.1.1.tar.gz.
File metadata
- Download URL: iceberg_mcp_server-0.1.1.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29c0de45fd55f57e49a504e04fcde455cade64f1b11f33861480204c703f23a2
|
|
| MD5 |
191f252dd193f2457b182725b54d1cb7
|
|
| BLAKE2b-256 |
46c82ea51caecdff80369ecf82856e064d508ba803e55db16774d4146c8fe522
|
Provenance
The following attestation bundles were made for iceberg_mcp_server-0.1.1.tar.gz:
Publisher:
deliver.yml on dragonejt/iceberg-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iceberg_mcp_server-0.1.1.tar.gz -
Subject digest:
29c0de45fd55f57e49a504e04fcde455cade64f1b11f33861480204c703f23a2 - Sigstore transparency entry: 731253969
- Sigstore integration time:
-
Permalink:
dragonejt/iceberg-mcp-server@b45259517c28bb1179fb0bf833c9839e70d65f6b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dragonejt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deliver.yml@b45259517c28bb1179fb0bf833c9839e70d65f6b -
Trigger Event:
push
-
Statement type:
File details
Details for the file iceberg_mcp_server-0.1.1-py3-none-any.whl.
File metadata
- Download URL: iceberg_mcp_server-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ba5e3d070a67ca204af6bcc5c02e3c23dc159ead0c5150ef226af955830fdf1
|
|
| MD5 |
aabb5afe6597db0091c8bc9dfca4ec2e
|
|
| BLAKE2b-256 |
8333444a5db9285a5a00941d9ba3ea92ac1ffec48e5447c0f40af0b589251443
|
Provenance
The following attestation bundles were made for iceberg_mcp_server-0.1.1-py3-none-any.whl:
Publisher:
deliver.yml on dragonejt/iceberg-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iceberg_mcp_server-0.1.1-py3-none-any.whl -
Subject digest:
6ba5e3d070a67ca204af6bcc5c02e3c23dc159ead0c5150ef226af955830fdf1 - Sigstore transparency entry: 731253970
- Sigstore integration time:
-
Permalink:
dragonejt/iceberg-mcp-server@b45259517c28bb1179fb0bf833c9839e70d65f6b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dragonejt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deliver.yml@b45259517c28bb1179fb0bf833c9839e70d65f6b -
Trigger Event:
push
-
Statement type: