Athena Investigation MCP Server
Athena Investigation MCP Server
固定されたAmazon Athenaテーブルに対する、ガバナンスに基づく調査のための限定的な読み取り専用のModel Context Protocol (MCP)サーバーです。
このサーバーは、任意のSQLの代わりに、調査向けの2つのツールを意図的に公開しています:
search_lake_access_eventsは、正確なユーザー、IP、または相関インジケーターを検索します。summarize_lake_access_correlationは、1つの正確な相関IDに対するアクションとデータセットを集計します。
これは参照実装であり、AWSまたはMicrosoftの公式製品ではありません。
なぜこの設計なのか
AIエージェントに汎用的なexecute_sqlツールを与えると、必要以上に広範な能力が生まれます。このサーバーは、モデルに公開する契約を小さく保ちつつ、AWS側で認可とコスト管理を担います。
flowchart LR
Client[MCP client] -->|Streamable HTTP + bearer| Server[Athena Investigation MCP]
Server -->|Parameterized queries| Athena[Amazon Athena]
Athena --> Glue[AWS Glue Data Catalog]
Athena --> S3[(Amazon S3)]
Server --> Provenance[Rows + query ID + bytes scanned]MCPはツールの契約です。AWS IAM、Athenaワークグループ、データガバナンス、SIEMを置き換えるものではありません。
Related MCP server: MCP Athena Analytics Server
セキュリティ特性
読み取り専用のツールは正確に2つだけ公開されます。
ツールはSQLテキストを受け付けません。
イベント検索には、少なくとも1つの正確なインジケーターが必要です。
Athenaを呼び出す前に、インジケーターの構文とIPアドレスが検証されます。
値はAthenaの実行パラメーターを介して渡されます。
要求された結果は、サーバー側の最大値に制限されます。
クエリのタイムアウトはサーバー側で強制されます。
レスポンスには、ソース、分類、ワークグループ、クエリ実行ID、スキャンされたバイト数、結果数が含まれます。
MCP_API_KEYが欠落している場合、または32文字未満の場合は、HTTPの起動時にフェイルクローズします。コンテナは非rootユーザーとして実行されます。
これらの制御は1つのレイヤーにすぎません。専用のAWSプリンシパル、コスト制限付きのAthenaワークグループ、プライベートなS3バケット、レビュー済みのMCPツール許可リストを備えてデプロイしてください。
想定されるAthenaスキーマ
設定されたテーブルは、次の列を公開する必要があります:
列 | Athenaの型 | 目的 |
|
| ISO 8601イベントタイムスタンプ |
|
| ユーザーまたはワークロードのID |
|
| IPv4またはIPv6の送信元インジケーター |
|
| 観測されたデータレイクアクション |
|
| 対象データセット |
|
| 返されたレコード数 |
|
|
|
|
| 調査の相関識別子 |
合成のサンプルは、examples/athenaにあります。
クイックスタート
1. AWSを準備する
テーブル、プライベートなデータバケット、プライベートなクエリ結果バケット、専用のAthenaワークグループを作成します。ワークグループにスキャンバイト数の上限を設定します。
AWSセットアップと、最小権限のIAMポリシーの例を参照してください。
2. インストール
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[test]'3. 設定
export AWS_REGION=us-east-1
export ATHENA_DATABASE=security_lake
export ATHENA_TABLE=access_events
export ATHENA_WORKGROUP=mcp-investigation
export MAX_RESULTS=20
export QUERY_TIMEOUT_SECONDS=15
export SOURCE_NAME=aws-athena
export DATA_CLASSIFICATION=synthetic
export MCP_API_KEY="$(openssl rand -hex 32)"AWS認証情報は、標準のboto3認証情報チェーンを通じて解決されます。ワークロードIDまたはロールフェデレーションを通じて取得した一時的な認証情報を優先してください。
4. 実行
uvicorn athena_investigation_mcp.app:app \
--host 127.0.0.1 \
--port 8000エンドポイント:
MCP:
http://127.0.0.1:8000/mcpヘルスチェック:
http://127.0.0.1:8000/health
5. テスト
python -m pytest -q
export MCP_URL=http://127.0.0.1:8000/mcp
export MCP_TOKEN="$MCP_API_KEY"
python smoke_test.py設定されたデータに対して両方のツールを実行するには、SMOKE_CORRELATION_IDを設定します。
コンテナ
docker build -t athena-investigation-mcp-server .
docker run --rm -p 8000:8000 \
-e AWS_REGION \
-e ATHENA_DATABASE \
-e ATHENA_TABLE \
-e ATHENA_WORKGROUP \
-e DATA_CLASSIFICATION \
-e MCP_API_KEY \
athena-investigation-mcp-server長期間有効なAWSキーをイメージにコピーする代わりに、プラットフォームのワークロードIDサポートを使用してください。
MCPクライアント統合
Streamable HTTP MCPクライアントは、以下を使用して/mcpに接続できます:
Authorization: Bearer <MCP_API_KEY>Microsoft Copilot Studioの手順については、Copilot Studioのセットアップを参照してください。
設定
変数 | デフォルト | 説明 |
|
| Athenaクライアントが使用するAWSリージョン |
|
| Glueデータベースの識別子 |
|
| ツールを通じて公開される固定テーブル |
|
| 制御が適用されたAthenaワークグループ |
|
| サーバー側のクエリタイムアウト |
|
| Athenaステータスのポーリング間隔 |
|
| 返される最大行数。範囲は1〜100 |
|
| クライアントに返される発信元の値 |
|
| クライアントに返される分類 |
| none | 必須の静的ベアラートークン(最小32文字) |
|
| 静的検証器のサブジェクトメタデータ |
|
| 静的検証器のクライアントメタデータ |
本番環境に関する考慮事項
同梱されている静的ベアラー検証器は、管理された参照デプロイに適しています。本番環境では:
静的ベアラー認証を、組織がサポートするOAuth/OIDCパターンに置き換えます;
ワークロードIDとAWS STSの一時認証情報を使用します;
IAMリソースを、正確なワークグループ、カタログオブジェクト、S3プレフィックスに制限します;
ワークグループでスキャンバイト数の上限とクエリ結果の暗号化を適用します;
ネットワークのインバウンド制限、WAF/APIゲートウェイの制御、集中監査ログを追加します;
バックエンドのIAMとは独立して、MCPツール許可リストをレビューします;
返されたソースデータを信頼できないコンテンツとして扱います;
変更を伴うアクションは、別のサーバー、ID、承認フローに分離します。
完全なセキュリティモデルを参照してください。
範囲と制限
テーブルスキーマは設計上固定されています。
複数の検索インジケーターは
ORで結合されます。結果の取得は、意図的に1ページと設定された最大数に制限されます。
このサーバーは、一般的なAthenaクエリインターフェースではありません。
このサーバーは、データの取り込み、検出、継続的な相関付けを行わず、SIEMを置き換えるものでもありません。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceProvides structured access to OCSF-normalized security data stored in Amazon Security Lake, enabling AI assistants to search for IP addresses, GuardDuty findings, and explore available data sources.2
- FlicenseNot gradedqualityDmaintenanceEnables secure querying of analytics data stored in AWS Athena/S3 through natural language, with multiple security layers including query validation, resource limits, and automatic PII redaction to prevent data breaches and destructive operations.
- FlicenseAqualityDmaintenanceEnables searching and analyzing AWS CloudWatch logs with support for configurable log groups, time-based searches, and service-specific log stream filtering.5
- AlicenseNot gradedqualityBmaintenanceEnables security analysts to investigate Microsoft Entra ID security logs through natural language, exposing read-only tools for user context, sign-ins, risky users, risk detections, directory audits, and conditional access policies.MIT
Related MCP Connectors
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Query Churn Solution cancellation-flow metrics, revenue, and feedback analytics (read-only).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brunofreitas-br/athena-investigation-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server