Skip to main content
Glama
brunofreitas-br

Athena Investigation MCP Server

Athena Investigation MCP Server

Узкоспециализированный сервер только для чтения, реализующий Model Context Protocol (MCP), для контролируемых расследований по фиксированной таблице Amazon Athena.

Сервер намеренно предоставляет два инструмента, ориентированных на расследования, вместо произвольных SQL-запросов:

  • search_lake_access_events ищет по точным индикаторам пользователя, IP-адреса или корреляции.

  • summarize_lake_access_correlation агрегирует действия и наборы данных для одного точного идентификатора корреляции.

Это эталонная реализация, а не официальный продукт AWS или Microsoft.

Почему такое решение

Предоставление ИИ-агенту универсального инструмента 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

Свойства безопасности

  • Публикуются ровно два инструмента только для чтения.

  • Инструменты никогда не принимают SQL-текст.

  • Для поиска событий требуется как минимум один точный индикатор.

  • Синтаксис индикаторов и IP-адреса проверяются до вызова Athena.

  • Значения передаются через параметры выполнения Athena.

  • Запрошенные результаты ограничиваются серверным максимумом.

  • Тайм-аут запроса обеспечивается сервером.

  • Ответы включают источник, классификацию, рабочую группу, идентификатор выполнения запроса, объём просканированных байт и количество результатов.

  • При запуске HTTP-сервер завершается ошибкой по принципу fail closed, если MCP_API_KEY отсутствует или его длина меньше 32 символов.

  • Контейнер запускается от пользователя, отличного от root.

Эти меры контроля — лишь один уровень защиты. Разворачивайте сервер с выделенным участником AWS, рабочей группой Athena с ограничением затрат, приватными бакетами S3 и проверенным списком разрешённых MCP-инструментов.

Ожидаемая схема Athena

Настроенная таблица должна предоставлять следующие столбцы:

Столбец

Тип Athena

Назначение

event_time

string

Временная метка события в формате ISO 8601

user_id

string

Идентификатор пользователя или рабочей нагрузки

source_ip

string

Индикатор источника IPv4 или IPv6

action

string

Наблюдаемое действие в озере данных

dataset

string

Целевой набор данных

records_returned

bigint

Количество возвращённых записей

result

string

Исход, например SUCCEEDED или DENIED

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. Предпочтительно использовать временные учётные данные, полученные через удостоверение рабочей нагрузки или федерацию ролей.

4. Запуск

uvicorn athena_investigation_mcp.app:app \
  --host 127.0.0.1 \
  --port 8000

Конечные точки:

  • MCP: http://127.0.0.1:8000/mcp

  • Health: 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 в образ.

Интеграция с MCP-клиентом

Любой MCP-клиент, поддерживающий Streamable HTTP, может подключиться к /mcp с помощью:

Authorization: Bearer <MCP_API_KEY>

Инструкции для Microsoft Copilot Studio см. в разделе настройка Copilot Studio.

Конфигурация

Переменная

По умолчанию

Описание

AWS_REGION

us-east-1

Регион AWS, используемый клиентом Athena

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

нет

Обязательный статический bearer-токен, минимум 32 символа

MCP_TOKEN_SUBJECT

mcp-client

Метаданные субъекта для статического верификатора

MCP_TOKEN_CLIENT_ID

athena-investigator

Метаданные клиента для статического верификатора

Рекомендации для production

Включённый статический верификатор bearer-токенов подходит для контролируемого эталонного развёртывания. В production:

  • заменяйте статическую bearer-аутентификацию на поддерживаемую в вашей организации схему OAuth/OIDC;

  • используйте удостоверение рабочей нагрузки и временные учётные данные AWS STS;

  • ограничивайте ресурсы IAM конкретной рабочей группой, объектами каталога и префиксами S3;

  • применяйте в рабочей группе ограничение на объём просканированных байт и шифрование результатов запросов;

  • добавляйте ограничения на входящий сетевой трафик, средства контроля WAF/API gateway и централизованные журналы аудита;

  • проверяйте список разрешённых MCP-инструментов независимо от IAM на бэкенде;

  • рассматривайте возвращаемые исходные данные как недоверенное содержимое;

  • выносите изменяющие действия в отдельный сервер, отдельную учётную запись и отдельный процесс согласования.

См. полную модель безопасности.

Область применения и ограничения

  • Схема таблицы фиксирована намеренно.

  • Несколько переданных поисковых индикаторов объединяются через OR.

  • Получение результатов намеренно ограничено одной страницей и настроенным максимумом.

  • Этот сервер не является универсальным интерфейсом запросов 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