@lishenxydlgzs/aws雅典娜mcp
](https://smithery.ai/server/@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数据库 - 查询:要执行的SQL查询 - maxRows:返回的最大行数(默认值:1000,最大值:10000) - 退货: - 如果查询在超时内完成:完整查询结果 - 如果超时:只有queryExecutionId供以后检索
get_status:检查查询执行的状态
- 参数: - queryExecutionId:从run_query返回的ID - 退货: - state:查询状态(已排队、正在运行、成功、失败或取消) - stateChangeReason:状态更改的原因(如果有的话) - submissionDateTime:提交查询的时间 - completionDateTime:查询完成时(如果已完成) - 统计信息:查询执行统计信息(如果可用)
get_result:检索已完成查询的结果
- 参数: - queryExecutionId:从run_query返回的ID - maxRows:返回的最大行数(默认值:1000,最大值:10000) - 退货: - 如果查询已成功完成,则显示完整的查询结果 - 查询失败或仍在运行时出错
list_saved_queries:列出Athena中所有已保存(命名)的查询。
- 退货:
- 一组已保存的查询 id, name,可选 description - 查询从配置的 ATHENA_WORKGROUP 和 AWS_REGION
- run_saved_query:按ID运行以前保存的查询。
- 参数:
- namedQueryId:已保存查询的ID - databaseOverride:可选覆盖已保存查询的默认数据库 - maxRows:要返回的最大行数(默认值:1000) - timeoutMs:超时时间(毫秒)(默认值:60000)
- 退货:
- 行为与 run_query:完整结果或执行ID
______________________________________________________________________
使用示例
显示所有数据库
给AI助手的消息: List all databases in Athena
MCP参数:
{
"database": "default",
"query": "SHOW DATABASES"
}列出数据库中的表
给AI助手的消息: Show me all tables in the default database
MCP参数:
{
"database": "default",
"query": "SHOW TABLES"
}获取表架构
给AI助手的消息: What's the schema of the asin_sitebestimg table?
MCP参数:
{
"database": "default",
"query": "DESCRIBE default.asin_sitebestimg"
}表格行预览
给AI助手的消息: Show some rows from my_database.mytable
MCP参数:
{
"database": "my_database",
"query": "SELECT * FROM my_table LIMIT 10",
"maxRows": 10
}具有过滤和聚合功能的高级查询
给AI助手的消息: Find the average price by category for in-stock products
MCP参数:
{
"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
______________________________________________________________________
许可证
麻省理工学院
