Skip to main content
Glama
brunofreitas-br

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の型

目的

event_time

string

ISO 8601イベントタイムスタンプ

user_id

string

ユーザーまたはワークロードのID

source_ip

string

IPv4またはIPv6の送信元インジケーター

action

string

観測されたデータレイクアクション

dataset

string

対象データセット

records_returned

bigint

返されたレコード数

result

string

SUCCEEDEDDENIEDなどの結果

correlation_id

string

調査の相関識別子

合成のサンプルは、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のセットアップを参照してください。

設定

変数

デフォルト

説明

AWS_REGION

us-east-1

Athenaクライアントが使用するAWSリージョン

ATHENA_DATABASE

security_lake

Glueデータベースの識別子

ATHENA_TABLE

access_events

ツールを通じて公開される固定テーブル

ATHENA_WORKGROUP

mcp-investigation

制御が適用されたAthenaワークグループ

QUERY_TIMEOUT_SECONDS

15

サーバー側のクエリタイムアウト

POLL_INTERVAL_SECONDS

0.2

Athenaステータスのポーリング間隔

MAX_RESULTS

20

返される最大行数。範囲は1〜100

SOURCE_NAME

aws-athena

クライアントに返される発信元の値

DATA_CLASSIFICATION

configured

クライアントに返される分類

MCP_API_KEY

none

必須の静的ベアラートークン(最小32文字)

MCP_TOKEN_SUBJECT

mcp-client

静的検証器のサブジェクトメタデータ

MCP_TOKEN_CLIENT_ID

athena-investigator

静的検証器のクライアントメタデータ

本番環境に関する考慮事項

同梱されている静的ベアラー検証器は、管理された参照デプロイに適しています。本番環境では:

  • 静的ベアラー認証を、組織がサポートするOAuth/OIDCパターンに置き換えます;

  • ワークロードIDとAWS STSの一時認証情報を使用します;

  • IAMリソースを、正確なワークグループ、カタログオブジェクト、S3プレフィックスに制限します;

  • ワークグループでスキャンバイト数の上限とクエリ結果の暗号化を適用します;

  • ネットワークのインバウンド制限、WAF/APIゲートウェイの制御、集中監査ログを追加します;

  • バックエンドのIAMとは独立して、MCPツール許可リストをレビューします;

  • 返されたソースデータを信頼できないコンテンツとして扱います;

  • 変更を伴うアクションは、別のサーバー、ID、承認フローに分離します。

完全なセキュリティモデルを参照してください。

範囲と制限

  • テーブルスキーマは設計上固定されています。

  • 複数の検索インジケーターはORで結合されます。

  • 結果の取得は、意図的に1ページと設定された最大数に制限されます。

  • このサーバーは、一般的なAthenaクエリインターフェースではありません。

  • このサーバーは、データの取り込み、検出、継続的な相関付けを行わず、SIEMを置き換えるものでもありません。

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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

View all related MCP servers

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).

View all MCP Connectors

Latest Blog Posts

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