F6 ASM MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@F6 ASM MCP Server summarize critical open issues for my company"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
F6 ASM MCP Server
MCP-сервер для клиентского API F6 ASM (Attack Surface Management). Через него ИИ-ассистент получает доступ к внешнему периметру компании: активам (домены, IP, диапазоны, сертификаты, ПО) и найденным на них проблемам. Можно получать сами записи с фильтрами или сводные цифры.
Тулы
Тул | Назначение |
| Компании, доступные токену. Заодно проверяет адрес, токен и доступ |
| Активы компании с фильтрами, постранично по |
| Проблемы компании с фильтрами, постранично по |
| Доказательства по одной проблеме |
| Сводка по всем активам: тип, статус, уровень проблем |
| Сводка по проблемам: severity, статус, категория, тест, топ хостов и CVE |
| Справочник: типы, статусы, severity, поля, лимиты, особенности API. Работает без запроса к API |
| Остальные эндпоинты, только из фиксированного списка read-only: отчёты, логи, карточка компании, скоринг, утечки |
Все тулы только читают данные. Эндпоинты, которые что-то создают, меняют,
удаляют или переводят статус, asm_request отклоняет ещё до отправки запроса.
Related MCP server: watchTowr Platform MCP Server
Быстрый старт
Понадобятся uv (или Python 3.10+ и pip), адрес вашей
инсталляции ASM и API-токен. uvx asm-mcp скачивает пакет с PyPI и запускает его
в отдельном окружении, ставить ничего заранее не нужно.
{
"mcpServers": {
"asm": {
"command": "uvx",
"args": ["asm-mcp"],
"env": {
"ASM_BASE_URL": "https://asm.example.com",
"ASM_API_TOKEN": "<token>"
}
}
}
}Этот блок подходит для Claude Desktop и Cursor. Для VS Code используется файл
.vscode/mcp.json: ключ servers и "type": "stdio", остальное так же.
Для Claude Code:
claude mcp add asm \
-e ASM_BASE_URL=https://asm.example.com -e ASM_API_TOKEN=<token> \
-- uvx asm-mcpВместо uvx можно поставить пакет командой pip install asm-mcp и указать клиенту
команду asm-mcp.
Установка из исходников в отдельное окружение:
cd asm-mcp
python3 -m venv venv
./venv/bin/pip install --require-hashes -r requirements.lock
./venv/bin/pip install --no-deps -e .После этого укажите клиенту "command": "/path/to/asm-mcp/venv/bin/asm-mcp" без args.
На Windows путь будет venv\Scripts\asm-mcp.exe.
Можно запускать в контейнере:
docker build -t asm-mcp .
docker run -i --rm -e ASM_BASE_URL -e ASM_API_TOKEN asm-mcpПервым вызовом сделайте asm_list_companies. Он показывает, что адрес, токен
и доступ к компаниям в порядке.
Переменные окружения
Переменная | По умолчанию | Назначение |
| — | Адрес инсталляции ASM, только |
| — | API-токен, передаётся как |
| — | PEM-бандл УЦ для внутреннего сертификата. Заменяет системные УЦ, поэтому в нём должны быть все нужные |
| — | Прокси |
|
| Таймаут одного запроса, секунд |
|
| Число повторов при 429/500/502/503/504 с учётом |
|
| Пауза между запросами, секунд. Сервер пропускает 1 запрос/с на токен, для платных клиентов 0.1 с |
|
| Сколько секунд может длиться один вызов тула. Должно быть меньше таймаута MCP-клиента |
|
| Сколько секунд переиспользуется готовая фоновая сводка |
Выключить проверку TLS нельзя: такой настройки нет намеренно. Для внутреннего
УЦ используйте ASM_CA_BUNDLE.
Примеры
asm_list_companies
asm_issues_summary company_id="…"
asm_get_issues company_id="…" severity=["crit"] status=["detected"] fields=["alertBody.asset","testName","alertBody.reason"]
asm_get_assets company_id="…" type=["domain","ip"] status=["confirmed","new"]
asm_get_assets company_id="…" seq_update="1700000000000_0a1b…"
asm_request path="reports/<company_id>/last"
asm_request method="POST" path="dashboard/scores" params={"companyId":"…","dateFrom":"2026-10-01"}Периметр компании — это активы со статусом confirmed или new. Статус
false означает, что актив исключён. Открытые проблемы — это статусы
detected и under review.
Пагинация
asm_get_assets и asm_get_issues идут от старых записей к новым и сами
перелистывают страницы. Один вызов останавливается в одном из трёх случаев:
набрано max_items записей, истёк ASM_TOOL_BUDGET или ответ дошёл до 1 МБ.
Тогда в ответе будет complete: false, причина в reason и курсор в
seqUpdate. Курсор — это seqUpdate последней отданной записи, поэтому при
продолжении записи не пропускаются. Если сохранить seqUpdate после полного
обхода, следующий вызов с ним вернёт только изменения.
Сводки по большим компаниям
Компанию на 10 000+ активов при лимите 1 запрос/с за один вызов не обойти.
Сводка считает, пока хватает ASM_TOOL_BUDGET, а затем передаёт посчитанное
и курсор фоновой задаче в процессе сервера. Ответ приходит с complete: false
и job_id. Повторный вызов с теми же аргументами возвращает прогресс, а после
завершения полный результат. Задачи хранятся только в памяти, файлы не
пишутся. Одновременно идут не больше двух задач.
Обход особенностей API
Фильтр
statusв/issues/updatedпропускает записи с другими статусами. Статус и severity перепроверяются на клиенте, а число отброшенных записей возвращается вdroppedByFilter.Если задан фильтр и
countмаленький, API отвечает пустой страницей. Поэтому при фильтрахcountне бывает меньше 100, а лишнее обрезается на клиенте.Тяжёлые страницы доменов не успевают загрузиться. В этом случае страница запрашивается заново в половину размера, но не меньше 50.
Соответствие severity:
crit/high/medium/low=alertSeverityCrit/Error/Warning/Low=alertBody.statusCritical/High/Medium/Low severity.Тест CVE называется
CVE vulnurability(именно так, с опечаткой).
Безопасность
Всё, что возвращают тулы, попадает в контекст языковой модели: периметр
компании, уязвимости, а через issues/leaks ещё и утёкшие учётные данные.
Выбирайте провайдера модели с учётом этого. Выдавайте серверу токен с доступом
только к нужным компаниям.
Токен отправляется только на адрес из ASM_BASE_URL и только по https://.
Редиректы не выполняются. Ответ больше 1 МБ не передаётся модели.
Модель угроз описана в SECURITY.md.
Участие в разработке
См. CONTRIBUTING.md.
Лицензия
Available Tools
8 toolsasm_assets_summaryARead-onlyIdempotent
Counts over every asset of a company, no records: by type, status and issue level (hasIssues), with assets that have issues per type. Default status: the perimeter (confirmed, new). A large company does not fit in one call: the answer then has complete=false and job_id, the rest is counted in the background, and calling again with the same arguments returns progress and then the full result (reused for ASM_SUMMARY_TTL seconds).
Inputs: company_id (required), type, status.
asm_describeARead-onlyIdempotent
Reference answered locally, no API call: asset types and statuses, issue statuses, the severity mapping, categories and test names, record fields, API limits and quirks, and the read-only routes asm_request may call.
Inputs: section.
asm_get_assetsARead-onlyIdempotent
Assets of a company: POST /api/v2/assets/updated, oldest-first, following the seqUpdate cursor across pages. Filters: type, status, asset, software, version. Returns items with complete, reason and seqUpdate; when complete is false, call again with seq_update to continue. One call stops at max_items, after ~40 s or at 1 MB of output. Without a status filter excluded assets (status 'false') are included — the perimeter is status ['confirmed', 'new']. For totals use asm_assets_summary.
Inputs: company_id (required), type, asset, fields, +7 more.
asm_get_issue_evidenceARead-onlyIdempotent
Evidence of one issue: GET /api/v2/issues/evidence/{issue_id} — what the scanner saw (response headers, banner, certificate, DNS records). issue_id is the alertHash from asm_get_issues.
Inputs: issue_id (required).
asm_get_issuesARead-onlyIdempotent
Issues (security findings) of a company: POST /api/v2/issues/updated, oldest-first, following the seqUpdate cursor. Filters: severity, status, category, test_name, asset, port, issue_hash, cve. Status and severity are re-checked locally because the server filter leaks. Returns items with complete, reason and seqUpdate; when complete is false, call again with seq_update. One call stops at max_items, after ~40 s or at 1 MB. For totals use asm_issues_summary; for proof of one issue asm_get_issue_evidence.
Inputs: company_id (required), cve, port, asset, +11 more.
asm_issues_summaryARead-onlyIdempotent
Counts over the issues of a company, no records: by severity, status, asset type, category, test name, top assets and top CVEs. Default status: open (detected, under review). Same background mechanism as asm_assets_summary for large companies.
Inputs: company_id (required), asset, status, severity.
asm_list_companiesARead-onlyIdempotent
Companies this token may read: GET /api/v2/companies. Each entry has id (the company_id of every other tool), name, website, score, footprint (number of domains and IPs) and the recent score history. Call it first: it confirms ASM_BASE_URL, the token and access.
Inputs: no named parameters.
asm_requestARead-onlyIdempotent
Read-only endpoints without a tool of their own: reports (reports/{company_id}, reports/{company_id}/last, reports/{report_id}/report), company card and perimeter settings (companies/{company_id}, assets/{company_id}), logs (companies/logs, users/logs), clients, partners, POST dashboard/scores and POST issues/leaks. Anything else — every endpoint that creates, updates, removes or changes status — is refused before a request is made. asm_describe section=requests lists each route with its params.
Inputs: path (required), method, params.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
The get_* vs *_summary split is explicitly documented (records vs counts), and evidence is clearly tied to an issue_id, so most tools are distinct. The only soft spot is asm_request, a read-only catch-all that could in principle cover ground adjacent to the dedicated tools, though the descriptions steer agents to prefer specific tools first.
All names share the asm_ prefix and mostly follow verb_noun (list_companies, get_assets, get_issues, get_issue_evidence), with describe/request as reasonable utilities. asm_assets_summary and asm_issues_summary drop the verb and use noun_summary, a minor deviation but still predictable.
Eight tools is well-scoped for a read-only ASM API: one entry point, two paginated record readers, two aggregation tools, one evidence lookup, one local reference, and one escape hatch. Each earns its place with no redundant padding.
The read-only surface covers companies, assets, issues, evidence, and aggregate counts, with asm_request filling in reports, logs, clients, and settings. Minor gaps remain (no single-asset lookup or dedicated report/log tools), but agents can work around them through asm_request and asm_describe.
Maintenance
Related MCP Connectors
Discover exposed assets, leaked secrets, APIs & client-side vulns across your attack surface
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Read-only CVE intelligence, remediation playbooks, and agent setup guides. Not a scanner.
Real-time CVE, exploit, and vulnerability intelligence for AI assistants (350K+ CVEs, 115K+ PoCs)
Related MCP Servers
- AlicenseAqualityCmaintenanceGives AI assistants access to the Exploit Intelligence Platform for vulnerability and exploit intelligence. Supports searching CVEs, exploits, and generating pentest findings.1753 PyPI1MIT
- FlicenseNot gradedqualityCmaintenanceConnects AI assistants to the watchTowr Platform for real-time access to external attack surface data, findings, and threat intelligence. Provides 113 tools for querying and managing assets, findings, hunts, and more.1-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search internet-connected devices, perform IP and host reconnaissance with port, banner and TLS data, run DNS lookups, and retrieve CVE/CPE vulnerability intelligence including CVSS, EPSS and KEV status. It supports credit-aware queries with both stdio and HTTP streaming transports for clients like Claude Code, Codex, Gemini CLI and Claude Desktop.-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to perform internet-facing reconnaissance and vulnerability research by looking up open ports, banners and TLS details for IPs, searching devices with Shodan query syntax, resolving DNS records in batch, and retrieving CVE/CPE intelligence with CVSS, EPSS and KEV status. Tools are read-only, credit-aware, and exposed over stdio or HTTP streaming.MIT