mcp/s3-tables-mcp-server用于分析的S3 Tables管理工具。
什么是MCP Server?
AWS S3 Tables MCP Server是由awslabs开发的Docker镜像,用于管理AWS S3中的分析表格。该镜像提供16种工具,支持创建表、导入数据、查询分析等操作,基于Apache Iceberg格式,适用于S3数据的组织、管理与分析场景,帮助用户高效处理S3中的结构化数据。
| 属性 | 详情 |
|---|---|
| Docker镜像 | mcp/s3-tables-mcp-server |
| 作者 | awslabs |
| 代码仓库 | [***] |
| 属性 | 详情 |
|---|---|
| Dockerfile | [***] |
| 镜像构建者 | Docker Inc. |
| Docker Scout健康评分 | !Docker Scout Health Score |
| 验证签名 | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/s3-tables-mcp-server --key [***] |
| 许可证 | Apache License 2.0 |
该镜像提供16种工具,支持S3 Tables全生命周期管理,主要功能包括:
| 工具名称 | 简短描述 |
|---|---|
append_rows_to_table | 使用PyIceberg/Daft向Iceberg表追加行。 |
create_namespace | 在S3表存储桶中创建新命名空间。 |
create_table | 在S3表存储桶中创建新S3表。 |
create_table_bucket | 创建S3表存储桶。 |
get_bucket_metadata_config | 获取常规用途S3存储桶的元数据表配置。 |
get_maintenance_job_status | 获取表的维护作业状态。 |
get_table_maintenance_config | 获取表的维护配置详情。 |
get_table_metadata_location | 获取S3表元数据的位置。 |
import_csv_to_table | 将CSV文件数据导入S3表。 |
import_parquet_to_table | 将Parquet文件数据导入S3表。 |
list_namespaces | 列出所有S3表存储桶中的命名空间。 |
list_table_buckets | 列出AWS账户的所有S3表存储桶。 |
list_tables | 列出所有表存储桶和命名空间中的S3表。 |
query_database | 使用PyIceberg/Daft对S3表执行SQL查询。 |
rename_table | 重命名S3表或将其移动到不同命名空间。 |
update_table_metadata_location | 更新S3表的元数据位置。 |
append_rows_to_table使用PyIceberg/Daft向Iceberg表追加行。
该工具使用PyIceberg引擎向现有Iceberg表追加数据行。rows参数必须是字典列表,每个字典代表一行数据。追加前需检查表的schema。
示例输入值:
warehouse: 'arn:aws:s3tables:<Region>:<accountID>:bucket/<bucketname>' region: 'us-west-2' namespace: 'retail_data' table_name: 'customers' rows: [{"customer_id": 1, "customer_name": "Alice"}, ...] uri: '[***] catalog_name: 's3tablescatalog' rest_signing_name: 's3tables' rest_sigv4_enabled: 'true'
| 参数 | 类型 | 描述 |
|---|---|---|
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
region | string | S3Tables/Iceberg REST端点的AWS区域 |
rows | array | 要追加的行列表,每行以字典形式表示 |
table_name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
uri | string | Iceberg catalog的REST URI |
warehouse | string | Iceberg catalog的仓库字符串 |
catalog_name | string 可选 | Catalog名称 |
rest_signing_name | string 可选 | REST签名名称 |
rest_sigv4_enabled | string 可选 | 启用SigV4签名 |
create_namespace在S3表存储桶中创建新命名空间。
创建命名空间,用于在S3表存储桶中逻辑组织表。
权限:需拥有s3tables:CreateNamespace权限。
| 参数 | 类型 | 描述 |
|---|---|---|
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
table_bucket_arn | string | 表存储桶ARN |
region_name | string 可选 | 操作执行的AWS区域名称 |
create_table在S3表存储桶中创建新S3表。
在指定S3命名空间和表存储桶中创建新S3表,可配置格式和元数据(包含表schema)。小数类型使用double。若schema不明确,请勿使用metadata参数。
S3表元数据示例:
json{ "metadata": { "iceberg": { "schema": { "type": "struct", "fields": [{ "id": 1, "name": "customer_id", "type": "long", "required": true }, { "id": 2, "name": "customer_name", "type": "string", "required": true }, { "id": 3, "name": "customer_balance", "type": "double", "required": false } ] }, "partition-spec": [ { "source-id": 1, "field-id": 1000, "transform": "month", "name": "sale_date_month" } ], "table-properties": { "description": "Customer information table with customer_id for joining with transactions" } } } }
权限:需拥有s3tables:CreateTable权限;若使用metadata参数,还需s3tables:PutTableData权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
table_bucket_arn | string | 表存储桶ARN |
format | string 可选 | S3表的格式 |
metadata | string 可选 | S3表的元数据 |
region_name | string 可选 | 操作执行的AWS区域名称 |
create_table_bucket创建S3表存储桶。
权限:需拥有s3tables:CreateTableBucket权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 要创建的表存储桶名称。长度3-63字符,仅包含小写字母、数字和连字符。 |
region_name | string 可选 | 操作执行的AWS区域名称 |
get_bucket_metadata_config获取常规用途S3存储桶的元数据表配置。
检索常规用途S3存储桶的元数据表配置,该配置决定元数据的存储和管理方式。响应包含S3表存储桶ARN、S3表ARN、S3表名称、S3表命名空间。
描述:Amazon S3 Metadata通过自动捕获通用存储桶中对象的元数据并存储在只读、全托管的Apache Iceberg表中,加速数据发现。这些只读表称为元数据表。当对象添加、更新或删除时,S3 Metadata自动刷新元数据表。
默认提供三种元数据:
元数据表schema:
权限:需拥有s3:GetBucketMetadataConfiguration权限。
| 参数 | 类型 | 描述 |
|---|---|---|
bucket | string | 要获取元数据表配置的S3存储桶名称 |
region_name | string 可选 | 操作执行的AWS区域名称 |
get_maintenance_job_status获取表的维护作业状态。
获取表的维护作业状态。更多信息参见《Amazon Simple Storage Service用户指南》中的S3 Tables维护。
权限:需拥有s3tables:GetTableMaintenanceJobStatus权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
table_bucket_arn | string | 表存储桶ARN |
region_name | string 可选 | 操作执行的AWS区域名称 |
get_table_maintenance_config获取表的维护配置详情。
获取表的维护配置详情。更多信息参见《Amazon Simple Storage Service用户指南》中的S3 Tables维护。
权限:需拥有s3tables:GetTableMaintenanceConfiguration权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
table_bucket_arn | string | 表存储桶ARN |
region_name | string 可选 | 操作执行的AWS区域名称 |
get_table_metadata_location获取S3表元数据的位置。
获取表元数据的S3 URI位置,元数据包含表的schema和其他配置信息。
权限:需拥有s3tables:GetTableMetadataLocation权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
table_bucket_arn | string | 表存储桶ARN |
region_name | string 可选 | 操作执行的AWS区域名称 |
import_csv_to_table将CSV文件数据导入S3表。
从S3存储的CSV文件读取数据并导入S3表。若表不存在,将根据CSV文件推断schema创建表;若表已存在,CSV文件schema必须与表schema兼容。工具会在导入前验证schema。preserve_case为True时保留列名大小写,否则转换为snake_case。
返回错误字典(含状态和错误消息)的情况:
示例输入值:
warehouse: 'arn:aws:s3tables:<Region>:<accountID>:bucket/<bucketname>' region: 'us-west-2' namespace: 'retail_data' table_name: 'customers' s3_url: 's3://bucket-name/path/to/file.csv' uri: '[***] catalog_name: 's3tablescatalog' rest_signing_name: 's3tables' rest_sigv4_enabled: 'true' preserve_case: False
权限:需拥有:
s3:GetObject权限s3tables:GetTable和s3tables:GetTables权限s3tables:PutTableData权限| 参数 | 类型 | 描述 |
|---|---|---|
namespace | string | 命名空间名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
region | string | S3Tables/Iceberg REST端点的AWS区域 |
s3_url | string | 要预览的文件的S3 URL(格式:s3://bucket-name/key) |
table_name | string | 表名称。长度1-255字符,仅包含字母数字、下划线和连字符。 |
uri | string | Iceberg catalog的REST URI |
warehouse | string | Iceberg catalog的仓库字符串 |
catalog_name | string 可选 | Catalog名称 |
preserve_case | boolean 可选 | 保留列名大小写 |
rest_signing_name | string 可选 | REST签名名称 |
rest_sigv4_enabled | string 可选 | 启用SigV4签名 |
import_parquet_to_table将Parquet文件数据导入S3表。
从S3存储的Parquet文件读取数据并导入S3表。若表不存在,将根据Parquet文件推断schema创建表;若表已存在,Parquet文件schema必须与表schema兼容。工具会在导入前验证schema。preserve_case为True时保留列名大小写,否则转换为snake_case。
返回错误字典(含状态和错误消息)的情况:
返回成功字典:
示例输入值:
warehouse: 'arn:aws:s3tables:<Region>:<accountID>:bucket/<bucketname>' region: 'us-west-2' namespace: 'retail_data' table_name: 'customers' s3_url: 's3://bucket-name/path/to/file.parquet' uri: '[***] catalog_name: 's3tablescatalog' rest_signing_name: 's3tables' rest_sigv4_enabled:

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务