关于 @lishenxydlgzs/aws-athena-mcp
@lishenxydlgzs/aws-athena-mcp 是一个用于执行 AWS Athena 查询的 MCP 服务,使 AI 助手能够对 Athena 数据库运行 SQL 并获取结果。它支持保存查询的列出与执行,适合需要通过自然语言分析 Athena 数据的用户。
主要功能
- 01执行 SQL 查询并返回结果
- 02查询执行状态检查
- 03获取已完成查询的结果
- 04列出并运行已保存的查询
- 05可设置最大返回行数
适用场景
- 01通过 AI 助手浏览数据库与表结构
- 02预览表数据或执行聚合分析
- 03查询长时间运行时跟踪执行状态
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 run_query、get_status、get_result、list_saved_queries 和 run_saved_query 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @lishenxydlgzs/aws-athena-mcpOUTPUT_S3_PATHAWS_REGIONAWS_PROFILEAWS_ACCESS_KEY_ID密钥AWS_SECRET_ACCESS_KEY密钥AWS_SESSION_TOKEN密钥ATHENA_WORKGROUPQUERY_TIMEOUT_MSMAX_RETRIESRETRY_DELAY_MS本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 要执行的 SQL 查询 |
| maxRows | number | 否 | 要返回的最大行数(默认值:1000) |
| database | string | 是 | 要查询的 Athena 数据库 |
| timeoutMs | number | 否 | 超时时间(毫秒)(默认值:60000) |
详细介绍
@lishenxydlgzs/aws-athena-mcp
用于运行 AWS Athena 查询的模型上下文协议(MCP)服务。此服务可让 AI 助手对您的 AWS Athena 数据库执行 SQL 查询并获取结果。
用法
-
使用以下任一方法配置 AWS 凭证:
- AWS CLI 配置
- 环境变量(
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY) - IAM 角色(如果在 AWS 上运行)
-
将服务添加到 MCP 配置中:
{
"mcpServers": {
"athena": {
"command": "npx",
"args": ["-y", "@lishenxydlgzs/aws-athena-mcp"],
"env": {
// Required
"OUTPUT_S3_PATH": "s3://your-bucket/athena-results/",
// Optional AWS configuration
"AWS_REGION": "us-east-1", // Default: AWS CLI default region
"AWS_PROFILE": "default", // Default: 'default' profile
"AWS_ACCESS_KEY_ID": "", // Optional: AWS access key
"AWS_SECRET_ACCESS_KEY": "", // Optional: AWS secret key
"AWS_SESSION_TOKEN": "", // Optional: AWS session token
// Optional server configuration
"ATHENA_WORKGROUP": "default_workgroup", // Optional: specify the Athena WorkGroup
"QUERY_TIMEOUT_MS": "300000", // Default: 5 minutes (300000ms)
"MAX_RETRIES": "100", // Default: 100 attempts
"RETRY_DELAY_MS": "500" // Default: 500ms between retries
}
}
}
}
- 此服务提供以下工具:
-
run_query:使用 AWS Athena 执行 SQL 查询- 参数:
- database:要查询的 Athena 数据库
- query:要执行的 SQL 查询
- maxRows:要返回的最大行数(默认值:1000,最大值:10000)
- 返回:
- 如果查询在超时前完成:完整查询结果
- 如果达到超时时间:仅返回供后续检索使用的 queryExecutionId
- 参数:
-
get_status:检查查询执行状态- 参数:
- queryExecutionId:
run_query返回的 ID
- queryExecutionId:
- 返回:
- state:查询状态(QUEUED、RUNNING、SUCCEEDED、FAILED 或 CANCELLED)
- stateChangeReason:状态变更原因(如果有)
- submissionDateTime:查询提交时间
- completionDateTime:查询完成时间(如果已完成)
- statistics:查询执行统计信息(如果有)
- 参数:
-
get_result:检索已完成查询的结果- 参数:
- queryExecutionId:
run_query返回的 ID - maxRows:要返回的最大行数(默认值:1000,最大值:10000)
- queryExecutionId:
- 返回:
- 如果查询已成功完成,则返回完整查询结果
- 如果查询失败或仍在运行,则返回错误
- 参数:
-
list_saved_queries:列出 Athena 中所有已保存(命名)的查询。 -
返回:
- 包含
id、name和可选description的已保存查询数组 - 查询来自配置的
ATHENA_WORKGROUP和AWS_REGION
- 包含
-
run_saved_query:根据 ID 运行先前保存的查询。
-
参数:
namedQueryId:已保存查询的 IDdatabaseOverride:可选,用于覆盖已保存查询的默认数据库maxRows:要返回的最大行数(默认值:1000)timeoutMs:超时时间(毫秒,默认值:60000)
-
返回:
- 行为与
run_query相同:返回完整结果或执行 ID
- 行为与
用法示例
显示所有数据库
给 AI 助手的消息:
List all databases in Athena
MCP parameter:
{
"database": "default",
"query": "SHOW DATABASES"
}
列出数据库中的表
给 AI 助手的消息:
Show me all tables in the default database
MCP parameter:
{
"database": "default",
"query": "SHOW TABLES"
}
获取表结构
给 AI 助手的消息:
What's the schema of the asin_sitebestimg table?
MCP parameter:
{
"database": "default",
"query": "DESCRIBE default.asin_sitebestimg"
}
预览表行
给 AI 助手的消息:
Show some rows from my_database.mytable
MCP parameter:
{
"database": "my_database",
"query": "SELECT * FROM my_table LIMIT 10",
"maxRows": 10
}
使用筛选和聚合的高级查询
给 AI 助手的消息:
Find the average price by category for in-stock products
MCP parameter:
{
"database": "my_database",
"query": "SELECT category, COUNT(*) as count, AVG(price) as avg_price FROM products WHERE in_stock = true GROUP BY category ORDER BY count DESC",
"maxRows": 100
}
检查查询状态
{
"queryExecutionId": "12345-67890-abcdef"
}
获取已完成查询的结果
{
"queryExecutionId": "12345-67890-abcdef",
"maxRows": 10
}
列出已保存的查询
{
"name": "list_saved_queries",
"arguments": {}
}
运行已保存的查询
{
"name": "run_saved_query",
"arguments": {
"namedQueryId": "abcd-1234-efgh-5678",
"maxRows": 100
}
}
要求
- Node.js >= 16
- 具有适当 Athena 和 S3 权限的 AWS 凭证
- 用于存储查询结果的 S3 存储桶
- 命名查询(可选)必须存在于指定的
ATHENA_WORKGROUP和AWS_REGION中
许可证
MIT
仓库
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。