内容
# 模型上下文协议 (MCP) 实现
本仓库包含模型上下文协议 (MCP) 的实现,包括与外部工具和服务交互的客户端和服务器组件。
## 仓库结构
### 根目录
- `client.py` - 独立的 MCP 客户端实现
- `README.md` - 本文件
### MCP 客户端 (`mcp-client/`)
一个基于 Python 的 MCP 客户端,连接到 MCP 服务器并使用 Claude AI 处理查询。
**功能:**
- 连接到 MCP 服务器 (Python 或 Node.js)
- 交互式聊天循环进行查询
- 工具执行和结果处理
- 与 Anthropic 的 Claude API 集成
**关键组件:**
- `client.py` - 主要客户端实现,包含 MCPClient 类
- `pyproject.toml` - 项目依赖和配置
### MCP Iceberg 服务器 (`mcp-iceberg-server/`)
一个专门的 MCP 服务器,用于通过 AWS Glue 操作 Apache Iceberg 表。
**功能:**
- 数据库和表管理
- 模式检查和元数据检索
- 带过滤功能的数据查询
- 使用自定义模式创建表
- 数据插入和更新操作
- 快照历史跟踪
**关键组件:**
- `iceberg_mcp_server.py` - 使用 FastMCP 的主要服务器实现
- `pyproject.toml` - 项目依赖和配置
**可用工具:**
- `list_databases()` - 列出可用的数据库
- `list_tables()` - 列出数据库中的表
- `get_table_schema()` - 获取表模式详细信息
- `get_table_data()` - 查询表数据并设置限制
- `query_table()` - 按列值过滤表数据
- `get_table_snapshots()` - 查看表快照历史
- `create_table()` - 使用自定义模式创建新表
- `insert_data()` - 向表中插入或更新数据
## 使用方法
### MCP 客户端
```bash
cd mcp-client
python client.py <path_to_server_script>
```
### MCP Iceberg 服务器
```bash
cd mcp-iceberg-server
python iceberg_mcp_server.py
```
## 配置
Iceberg 服务器支持通过环境变量进行配置:
- `AWS_DEFAULT_REGION` - AWS 区域 (默认: us-east-1)
- `ICEBERG_CATALOG` - 目录名称 (默认: s3tablescatalog)
- `ICEBERG_DATABASE` - 数据库名称 (默认: pyiceberg)
- `ICEBERG_TABLE_BUCKET` - 表的 S3 存储桶 (默认: claude-table-bucket)
- `LF_ROLE_ARN` - Lake Formation 角色 ARN,用于权限设置