项目简介
Iceberg REST Catalog MCP 服务器是一个实现了 Model Context Protocol (MCP) 的后端服务,专门用于为大型语言模型 (LLM) 客户端提供访问 Apache Iceberg REST Catalog 数据目录的能力。通过标准化的 MCP 协议,LLM 可以安全、便捷地获取 Iceberg 数据目录的元数据信息,例如命名空间、表、表结构和表属性等,从而增强 LLM 在数据分析和处理方面的能力。
主要功能点
- 支持 Iceberg REST Catalog: 目前主要支持通过 REST 接口访问 Iceberg 数据目录。
- 提供元数据查询工具: 内置了一系列工具,允许 LLM 客户端查询 Iceberg 数据目录的各种元数据信息:
- 'namespaces': 获取 Iceberg catalog 中的所有命名空间。
- 'tables': 获取指定命名空间下的所有表。
- 'table_schema': 获取指定表的 Schema 信息。
- 'table_properties': 获取指定表的属性信息,例如总大小和记录数。
- 'table_partitions': 获取指定表的所有分区信息。
- 标准 MCP 协议: 采用 JSON-RPC over Stdio 通信,符合 MCP 协议规范,易于与各种 MCP 客户端集成。
- 易于部署和配置: 提供预编译的二进制版本和源码构建方式,配置简单,可以通过环境变量指定 REST Catalog 的 URI。
安装步骤
-
下载预编译二进制文件 (推荐): 访问 https://github.com/morristai/iceberg-mcp/releases 下载适用于您操作系统的 'iceberg-mcp-rest' 二进制文件。
-
从源码构建:
- 确保您已安装 Rust 和 Cargo 构建工具。
- 克隆仓库到本地: 'git clone https://github.com/morristai/iceberg-mcp.git'
- 进入项目目录: 'cd iceberg-mcp'
- 使用 Cargo 构建 Release 版本: 'cargo build --release --bin iceberg-mcp-rest'
- 构建成功后,可执行文件位于 'target/release/iceberg-mcp-rest'。
服务器配置
MCP 服务器需要配置在 MCP 客户端中,例如 Claude Desktop。以下是在 'claude_desktop_config.json' 中配置 'iceberg-mcp-rest' 服务器的示例:
{ "mcpServers": { "iceberg-mcp-rest": { "command": "PATH-TO-BINARY/iceberg-mcp-rest", "env": { "REST_URI": "http://localhost:8080" } } } }
配置参数说明:
- '"iceberg-mcp-rest"': 服务器名称,您可以自定义,用于在客户端中标识该服务器。
- '"command"': 请替换 'PATH-TO-BINARY/iceberg-mcp-rest' 为您实际的 'iceberg-mcp-rest' 可执行文件的路径。 如果您下载的是预编译版本,请指定下载文件存放的路径。如果您是从源码构建的,请指定 'target/release/iceberg-mcp-rest' 的路径。
- '"env"': 环境变量配置。
- '"REST_URI"': 请替换 'http://localhost:8080' 为您的 Apache Iceberg REST Catalog 服务的 URI。 例如,如果您的 REST Catalog 服务运行在 'http://your-iceberg-rest-catalog:8080',则应配置为 '"REST_URI": "http://your-iceberg-rest-catalog:8080"'。
重要提示:
- 确保您的 Apache Iceberg REST Catalog 服务已启动并可访问。
- MCP 客户端 (如 Claude Desktop) 需要能够访问 'iceberg-mcp-rest' 可执行文件。
基本使用方法
-
启动 MCP 服务器: 当 MCP 客户端 (如 Claude Desktop) 启动并加载配置后,'iceberg-mcp-rest' 服务器将自动启动。您可以在终端中查看服务器的日志输出,确认服务器是否成功启动并连接到 REST Catalog。
-
在 LLM 中使用工具: 在支持 MCP 协议的 LLM 应用中,您可以指示 LLM 使用 'iceberg-mcp-rest' 服务器提供的工具来查询 Iceberg 数据目录信息。例如,您可以向 LLM 提问:
- "列出 Iceberg 中可用的命名空间" (LLM 可能会调用 'namespaces' 工具)
- "展示命名空间 'my_namespace' 下的所有表" (LLM 可能会调用 'tables' 工具并传入 'namespace' 参数)
- "获取表 'my_namespace.my_table' 的结构信息" (LLM 可能会调用 'table_schema' 工具并传入 'namespace' 和 'table_name' 参数)
- "查询表 'my_namespace.my_table' 的属性" (LLM 可能会调用 'table_properties' 工具)
LLM 将根据您的指令,自动调用相应的工具,并将结果返回给您。 您可以通过查看 MCP 客户端的日志或服务器日志来跟踪工具的调用过程和结果。
信息
分类
数据库与文件