项目简介

'aws-athena-mcp' 是一个基于 Model Context Protocol (MCP) 的服务器,它使得AI助手能够执行AWS Athena SQL查询并获取结果。通过此服务器,AI助手可以方便地与您的AWS Athena数据进行交互,用于数据分析、报表生成等多种场景。

主要功能点

  • 执行SQL查询 (run_query): 允许AI助手向指定的AWS Athena数据库发送SQL查询请求。您可以指定数据库名称、SQL查询语句以及最大返回行数。如果查询在超时时间内完成,将返回完整结果;否则,仅返回查询执行ID,以便后续获取状态或结果。
  • 获取查询状态 (get_status): 允许AI助手查询特定查询执行ID的状态。返回状态包括QUEUED, RUNNING, SUCCEEDED, FAILED, CANCELLED等,以及状态变更原因和执行统计信息。
  • 获取查询结果 (get_result): 允许AI助手根据查询执行ID获取已完成查询的完整结果。如果查询仍在运行或失败,则会返回相应的错误信息。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js (>= 16)。您可以从 nodejs.org 下载并安装。
  2. 配置 AWS 凭证: 您需要配置AWS 凭证,以便服务器可以访问您的 AWS Athena 资源。有以下几种方式:
    • AWS CLI 配置: 如果您已安装并配置 AWS CLI,服务器将自动使用您的 CLI 配置。
    • 环境变量: 您可以设置 'AWS_ACCESS_KEY_ID' 和 'AWS_SECRET_ACCESS_KEY' 环境变量。
    • IAM 角色: 如果服务器运行在 AWS 环境中 (如 EC2, Lambda),可以配置 IAM 角色授予访问 Athena 的权限。
  3. 安装 MCP 服务器: 无需手动安装,MCP 客户端通常会负责拉起和管理 MCP 服务器进程。

服务器配置

您需要在 MCP 客户端的配置文件中添加 'aws-athena-mcp' 服务器的配置信息。以下是一个示例配置,请根据您的实际情况进行调整:

{
  "mcpServers": {
    "athena": {
      "command": "npx",
      "args": ["-y", "@lishenxydlgzs/aws-athena-mcp"],
      "env": {
        // 必填:指定 Athena 查询结果存储的 S3 路径,请替换为您的 S3 bucket 路径
        "OUTPUT_S3_PATH": "s3://your-bucket/athena-results/",

        // 可选:AWS 区域,默认为 AWS CLI 默认区域
        "AWS_REGION": "us-east-1",

        // 可选:AWS Profile 名称,默认为 'default'
        "AWS_PROFILE": "default",

        // 可选:AWS Access Key ID,如果使用环境变量或 IAM 角色,则无需配置
        "AWS_ACCESS_KEY_ID": "",

        // 可选:AWS Secret Access Key,如果使用环境变量或 IAM 角色,则无需配置
        "AWS_SECRET_ACCESS_KEY": "",

        // 可选:AWS Session Token,如果使用环境变量或 IAM 角色,则无需配置
        "AWS_SESSION_TOKEN": "",

        // 可选:查询超时时间,单位毫秒,默认 300000 (5 分钟)
        "QUERY_TIMEOUT_MS": "300000",

        // 可选:最大重试次数,默认 100
        "MAX_RETRIES": "100",

        // 可选:重试延迟时间,单位毫秒,默认 500
        "RETRY_DELAY_MS": "500"
      }
    }
  }
}

配置说明:

  • 'server name': '"athena"' - 服务器名称,在 MCP 客户端中用于引用此服务器。您可以自定义名称。
  • 'command': '"npx"' - 用于执行 Node.js 包的命令。
  • 'args': '["-y", "@lishenxydlgzs/aws-athena-mcp"]' - 指定要执行的 npm 包名称。'-y' 参数用于跳过 'npx' 的安装确认提示。
  • 'env': 环境变量配置,用于配置 AWS 认证、S3 结果输出路径以及服务器运行参数。

基本使用方法

配置完成后,AI 助手可以通过 MCP 协议与 'aws-athena-mcp' 服务器进行通信,调用 'run_query', 'get_status', 'get_result' 等工具来执行 Athena 查询。

例如,AI 助手可以使用 'run_query' 工具执行 SQL 查询,参数需要包含 'database' (数据库名称) 和 'query' (SQL 查询语句)。服务器将返回查询结果或查询执行 ID。

如果 'run_query' 返回了查询执行 ID,AI 助手可以使用 'get_status' 工具查询查询状态,或使用 'get_result' 工具在查询完成后获取结果。

具体的工具调用和参数格式请参考 README.md 文件中的 "Usage Examples" 部分。

信息

分类

数据库与文件