Apache Iceberg MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ICEBERG_MCP_HOST | No | HTTP bind host; '[::1]' normalizes to '::1'. | 127.0.0.1 |
| ICEBERG_MCP_PORT | No | HTTP bind port. | 3000 |
| ICEBERG_OAUTH2_URI | No | External OAuth token endpoint. | unset |
| ICEBERG_SOURCE_DIR | No | Local Iceberg checkout. | valid sibling ../iceberg, else disabled |
| ICEBERG_CATALOG_URI | No | REST Catalog root; HTTPS outside loopback. | unset |
| ICEBERG_CATALOG_TOKEN | No | Outbound catalog bearer token. Do not set together with ICEBERG_CATALOG_TOKEN_FILE. | unset |
| ICEBERG_JAVADOC_CACHE | No | 'off' disables the on-disk Javadoc cache. | on |
| ICEBERG_MCP_LOG_LEVEL | No | stderr detail: 'error', 'info', or 'debug'. | info |
| ICEBERG_MCP_TRANSPORT | No | Transport: 'stdio' or 'http'. | stdio |
| ICEBERG_MCP_AUTH_TOKEN | No | Inbound HTTP bearer token. Do not set together with ICEBERG_MCP_AUTH_TOKEN_FILE. | unset |
| ICEBERG_JAVADOC_VERSION | No | Default release semver or 'nightly'. | 1.11.0 |
| ICEBERG_JAVADOC_BASE_URL | No | HTTPS operator-controlled root for Javadocs. | official Iceberg Javadoc root |
| ICEBERG_CATALOG_WAREHOUSE | No | Warehouse sent only during config discovery. | unset |
| ICEBERG_JAVADOC_CACHE_DIR | No | Javadoc cache directory. | ~/.cache/iceberg-mcp-server/javadoc |
| ICEBERG_OAUTH2_CREDENTIAL | No | OAuth client_id:client_secret string. Do not set together with ICEBERG_OAUTH2_CREDENTIAL_FILE. | unset |
| ICEBERG_CATALOG_TOKEN_FILE | No | Path to file containing outbound catalog bearer token. Do not set together with ICEBERG_CATALOG_TOKEN. | unset |
| ICEBERG_MAX_RESPONSE_CHARS | No | Tool/resource output limit, 4,096 to 100,000. | 30000 |
| ICEBERG_REQUEST_TIMEOUT_MS | No | Upstream timeout, 1,000 to 120,000 ms. | 15000 |
| ICEBERG_MCP_ALLOWED_ORIGINS | No | Comma-separated exact origins allowed for HTTP requests. | loopback origins for the port |
| ICEBERG_MCP_AUTH_TOKEN_FILE | No | Path to file containing inbound HTTP bearer token. Do not set together with ICEBERG_MCP_AUTH_TOKEN. | unset |
| ICEBERG_JAVADOC_CACHE_TTL_MS | No | Age before an entry is revalidated. | 86400000 |
| ICEBERG_MCP_MAX_REQUEST_BYTES | No | HTTP request limit, 4 KiB to 10 MiB. | 1048576 |
| ICEBERG_OAUTH2_CREDENTIAL_FILE | No | Path to file containing OAuth client_id:client_secret. Do not set together with ICEBERG_OAUTH2_CREDENTIAL. | unset |
| ICEBERG_SOURCE_INDEX_MAX_BYTES | No | Source text kept in memory, 0 to 1 GiB. | 64000000 |
| ICEBERG_CATALOG_ALLOW_MUTATIONS | No | Register catalog mutation tools. Set to 'true' to expose state-changing and destructive tools. | false |
| ICEBERG_JAVADOC_CACHE_MAX_BYTES | No | Javadoc cache ceiling, 1 MB to 10 GB. | 268435456 |
| ICEBERG_JAVADOC_INDEX_MAX_BYTES | No | Search index byte limit, 1 MB to 256 MB. | 32000000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| iceberg_api_list_versionsB | List the configured stable/nightly Javadoc identities and optional local source revision. |
| iceberg_api_browseA | Browse the complete published package, type, or member index with exact package and label-prefix filters. |
| iceberg_api_searchA | Ranked case-insensitive search across published Iceberg packages, types, member names, signatures, and identities. |
| iceberg_api_get_typeA | Get one exact published Java type with declaration, description, deprecation, detailed members, links, and stability evidence. |
| iceberg_api_get_memberA | Get one exact member by its published label or Javadoc anchor within an exact Java type. |
| iceberg_api_compare_versionsA | Compare exact published package, type, or member identities between two Iceberg Javadoc versions. |
| iceberg_source_get_typeA | Read a bounded, line-numbered source window for an indexed Java type from the configured Iceberg checkout. |
| iceberg_source_searchA | Perform a bounded literal (not regex) search across indexed production Java source files. |
| iceberg_source_find_implementationsA | Find bounded lexical extends/implements declarations for a Java type; results are evidence, not semantic compiler analysis. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| iceberg-java-usage | Ground a Java implementation task in exact Iceberg API types, members, stability, and optional source evidence. |
| iceberg-api-migration | Compare exact published API identities before planning an Iceberg Java version migration. |
| iceberg-catalog-investigation | Investigate REST Catalog configuration and metadata read-only before considering any mutation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bsisduck/iceberg-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server