Skip to main content

F6

F6 Threat Intelligence MCP Server

English

PyPI Python License CI

MCP-сервер к API F6 Threat Intelligence. Даёт ИИ-ассистенту доступ к коллекциям TI: утечки, вредоносное ПО, атаки, подозрительные IP, угрозы и профили группировок — поиском по индикаторам и выборкой с фильтрами.

Тулы

Тул Назначение
ti_list_collections Коллекции, доступные учётной записи; заодно проверка ключа и IP
ti_global_search В каких коллекциях встречается индикатор и сколько записей в каждой
ti_get_collection Выборка и поиск по коллекции, постранично
ti_get_updates Изменения в коллекции с заданной точки последовательности
ti_get_sequence_list Стартовые точки для ti_get_updates, в том числе на дату
ti_get_item Одна запись по id
ti_graph_lookup WHOIS-обогащение по IP или домену
ti_describe_collections Справочник коллекций: поля, лимиты, методы; без запроса к API
ti_request Любой документированный read-only эндпоинт под /api/v2

Все тулы только читают. ti_request не пропускает пути, которые меняют данные на стороне TI, и не отдаёт бинарные файлы.

Быстрый старт

Нужен Python 3.10+, логин веб-портала TI и персональный API-ключ (Личный кабинет → Безопасность и доступ → Персональный токен). Адрес, с которого работает сервер, должен быть в списке доверенных IP учётной записи.

{
  "mcpServers": {
    "ti": {
      "command": "uvx",
      "args": ["ti-mcp"],
      "env": {
        "TI_LOGIN": "user@example.com",
        "TI_API_KEY": "<key>"
      }
    }
  }
}

Этот блок подходит для Claude Desktop и Cursor. Для VS Code — файл .vscode/mcp.json:

{
  "servers": {
    "ti": {
      "type": "stdio",
      "command": "uvx",
      "args": ["ti-mcp"],
      "env": {
        "TI_LOGIN": "user@example.com",
        "TI_API_KEY": "<key>"
      }
    }
  }
}

Для Claude Code:

claude mcp add ti \
  -e TI_LOGIN=user@example.com -e TI_API_KEY=<key> \
  -- uvx ti-mcp

Для OpenCode — ключ mcp в ~/.config/opencode/opencode.json (все проекты) или в opencode.json в корне проекта:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ti": {
      "type": "local",
      "command": ["uvx", "ti-mcp"],
      "enabled": true,
      "timeout": 660000,
      "environment": {
        "TI_LOGIN": "user@example.com",
        "TI_API_KEY": "{file:~/.config/ti-mcp/key}"
      }
    }
  }
}

В отличие от конфигов выше, command — массив вместе с аргументами, переменные — в environment, а "type": "local" обязателен. Ключ можно не держать в конфиге: OpenCode подставляет содержимое файла ({file:…}) или переменную окружения ({env:TI_API_KEY}). timeout — в миллисекундах, по умолчанию 30 с на запрос, а один вызов тула может длиться дольше: на 429 и 5xx сервер повторяет запрос до TI_RETRIES раз (по умолчанию 3), каждая попытка ждёт портал до TI_TIMEOUT (120 с), а между попытками выдерживается пауза Retry-After. 660 с покрывают четыре попытки и паузы по минуте; если меняете TI_TIMEOUT или TI_RETRIES, пересчитайте. Проверить подключение — opencode mcp list.

Вместо uvx можно использовать pip install ti-mcp и команду ti-mcp, либо контейнер — docker run -i --rm -e TI_LOGIN -e TI_API_KEY ghcr.io/f6-security/ti-mcp (образ собран под linux/amd64 и linux/arm64).

Чтобы запустить сервер из исходников — например, проверить ещё не вышедшие в релиз изменения, — поставьте его в отдельное окружение из клона репозитория:

git clone https://github.com/F6-Security/ti-mcp.git
cd ti-mcp
python3 -m venv venv
./venv/bin/pip install --require-hashes -r requirements.lock
./venv/bin/pip install --no-deps -e .

На Windows вместо venv/bin/ — venv\Scripts\, в том числе в пути для клиента ниже.

Затем укажите клиенту команду из этого окружения вместо uvx ti-mcp:

claude mcp add ti \
  -e TI_LOGIN=user@example.com -e TI_API_KEY=<key> \
  -- /path/to/ti-mcp/venv/bin/ti-mcp

В JSON-конфиге — "command": "/path/to/ti-mcp/venv/bin/ti-mcp" без args, в OpenCode — "command": ["/path/to/ti-mcp/venv/bin/ti-mcp"]. Пакет установлен в editable-режиме, поэтому правки кода подхватываются при следующем запуске сервера. Для тестового стенда задайте его адрес в TI_BASE_URL.

Первым вызовом сделайте ti_list_collections: он подтверждает, что ключ, IP и доступ к коллекциям в порядке.

Переменные окружения

Переменная По умолчанию Назначение
TI_LOGIN — логин (email) в веб-портале TI
TI_API_KEY — персональный API-ключ
TI_BASE_URL https://ti.f6.security адрес портала; только https://
TI_CA_BUNDLE — PEM-бандл УЦ для проверки сертификата портала, например внутреннего УЦ прокси; заменяет системные УЦ, поэтому в нём должны быть все нужные
TI_PROXY — прокси http://host:port; HTTP_PROXY и HTTPS_PROXY из окружения не читаются
TI_TIMEOUT 120 таймаут запроса, секунд
TI_RETRIES 3 повторов при 429/500/502/503/504, с учётом Retry-After
TI_MIN_FEED_INTERVAL 1 минимальный интервал между запросами к одной коллекции, секунд
TI_RESULT_ID_TTL 150 сколько секунд сервер помнит открытую выборку scroll=true

Примеры запросов

ti_global_search        query="8.8.8.8"
ti_describe_collections collection="ioc/common"
ti_get_collection       collection="ioc/common" query="ip:8.8.8.8"
ti_get_collection       collection="osi/vulnerability" date_from="2026-10-01" extra_params={"has_exploit": 1}
ti_get_collection       collection="apt/threat" limit=10 offset=10
ti_get_updates          collection="malware/cnc" seq_update=16394859

Типичный путь: ti_global_search по индикатору показывает, в каких коллекциях он встречается; ti_describe_collections подсказывает поля и лимиты нужной; ti_get_collection с тем же запросом отдаёт записи.

Фильтр query — свободный текст по всем атрибутам ("8.8.8.8") или атрибут:значение ("domain:example.com"). Атрибуты — поля ответа коллекции, их показывает ti_describe_collections, но работают они не везде: отчёты об угрозах (apt/threat, hi/threat) ищутся только свободным текстом, кроме id: и domain:. Несколько слов без оператора ищутся как одна фраза — соединяйте их AND/OR. Правила поиска коллекции приходят заметкой в каждом ответе. Даты date_from/date_to — YYYY-MM-DD или YYYY-MM-DDTHH:MM:SSZ.

Карточки группировок (apt/threat_actor, hi/threat_actor) приходят из ti_get_collection без history — журнала изменений, который занимает большую часть карточки; полную запись отдаёт ti_get_item.

Страницы ti_get_collection листаются параметром offset с шагом limit до count. Для выгрузки большого набора или полного обхода коллекции передайте scroll=true: сервер сам продолжит выборку при следующем вызове. Для непрерывного отслеживания ленты используйте ti_get_updates с seqUpdate из предыдущего ответа, стартовую точку даёт ti_get_sequence_list.

Безопасность

Всё, что возвращают тулы, попадает в контекст языковой модели: скомпрометированные учётные записи, карты, индикаторы, отчёты об угрозах. Выбирайте провайдера модели с учётом этого и выдавайте серверу ключ пользователя с минимально необходимым набором коллекций.

Ключ уходит только на адрес из TI_BASE_URL и только по https://; ответ больше 1 МБ отклоняется, чтобы один вызов не заполнил контекст.

Модель угроз и порядок сообщения об уязвимостях — SECURITY.md.

Участие в разработке

См. CONTRIBUTING.md.

Лицензия

Apache License 2.0

Metadata

Release files for ti-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ti-mcp 1.0.0
File Size Uploaded Provenance Actions
ti_mcp-1.0.0.tar.gz 87.2 kB With provenance Details for ti_mcp-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ti-mcp 1.0.0
File Interpreter ABI Platform Actions
ti_mcp-1.0.0-py3-none-any.whl Python 3 none any Details for ti_mcp-1.0.0-py3-none-any.whl

Total release size: 127.0 kB

Release files / ti_mcp-1.0.0.tar.gz

Download URL ti_mcp-1.0.0.tar.gz
Size 87.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9ec8b53b70afde5284520e08e5e9e67e4dd0fb6bcfaccf8a07864df5c0622860
BLAKE2b-256 checksum
How to use checksums
c0a2ca98e88a112308c80bf51e1dfc56d11b4c9438f66ac557a5a34db7fa8b91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / ti_mcp-1.0.0-py3-none-any.whl

Download URL ti_mcp-1.0.0-py3-none-any.whl
Size 39.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4fa12c6c77c0c8d543a29b6413cddf7fb51b20ce8aef36db6a80c377db6309e1
BLAKE2b-256 checksum
How to use checksums
17add7d274c3d7a0f491da1baec2d4967ecc193af0557531297bb09c95aae11f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Security for ti-mcp 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ti_mcp-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page