@lishenxydlgzs/aws-athena-mcp
AWS Athenaクエリを実行するためのModel Context Protocol(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 クエリを実行するパラメータ:
データベース: クエリするAthenaデータベース
クエリ: 実行するSQLクエリ
maxRows: 返される行の最大数 (デフォルト: 1000、最大: 10000)
戻り値:
クエリがタイムアウト内に完了した場合: 完全なクエリ結果
タイムアウトに達した場合: 後で取得するための queryExecutionId のみ
get_status: クエリ実行のステータスを確認するパラメータ:
queryExecutionId: run_queryから返されたID
戻り値:
状態: クエリの状態 (QUEUED、RUNNING、SUCCEEDED、FAILED、または CANCELLED)
stateChangeReason: 状態変更の理由(ある場合)
submissionDateTime: クエリが送信された日時
完了日時: クエリが完了した日時 (完了した場合)
統計: クエリ実行統計(利用可能な場合)
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: 保存されたクエリのIDdatabaseOverride: 保存されたクエリのデフォルトデータベースのオーバーライド(オプション)maxRows: 返される行の最大数(デフォルト: 1000)timeoutMs: タイムアウト(ミリ秒)(デフォルト: 60000)
戻り値:
run_queryと同じ動作: 完全な結果または実行 ID
Related MCP server: AWS Athena MCP Server
使用例
すべてのデータベースを表示
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に存在する必要があります。
ライセンス
マサチューセッツ工科大学