cortex-mcp
MCP-сервер (Model Context Protocol) для Cortex от StrangeBee/TheHive Project. Cortex автоматизирует анализ наблюдаемых объектов (IP-адреса, URL-адреса, хеши, домены, адреса электронной почты, файлы) с помощью анализаторов и выполняет ответные действия через респондеры. Этот MCP-сервер предоставляет LLM полный доступ к конвейеру анализа и администрирования Cortex.
Функции
31 инструмент MCP, охватывающий всю поверхность API Cortex
4 ресурса MCP для просмотра состояния Cortex
4 промпта MCP с пошаговыми рабочими процессами (настройка, расследование, сортировка)
Полный жизненный цикл анализаторов/респондеров: просмотр определений, включение, настройка, отключение
Автоматическое определение типов данных наблюдаемых объектов (IP, домен, хеш, URL, email)
Массовый анализ с использованием всех применимых анализаторов с агрегацией таксономии
Очистка заданий с поддержкой пробного запуска (dry-run)
Управление ключами API пользователей (создание, обновление, получение)
CRUD-операции для организаций с управлением статусом
Поддержка двух ключей API: операции на уровне организации + администрирование суперпользователем
Related MCP server: misp-mcp
Предварительные требования
Node.js 20 или новее
Запущенный экземпляр Cortex (рекомендуется v3.x)
Ключ API Cortex с соответствующими разрешениями
Установка
git clone https://github.com/solomonneas/cortex-mcp.git
cd cortex-mcp
npm install
npm run buildКонфигурация
Переменная | Обязательно | По умолчанию | Описание |
| Да | - | Базовый URL Cortex (например, |
| Да | - | Ключ API для обычных операций (уровень администратора организации) |
| Нет | - | Ключ API суперпользователя для управления организациями/пользователями/определениями |
| Нет |
| Установите |
| Нет |
| Тайм-аут запроса в секундах |
Использование
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"cortex": {
"command": "cortex-mcp",
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}
}
}Claude Code
claude mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- cortex-mcpДобавьте --scope user, чтобы сделать его доступным из любого каталога, а не только из текущего проекта.
OpenClaw
Если вы запускаете сервер из исходного кода, а не из установленного через npm бинарного файла, укажите command/args на собранный dist/index.js:
openclaw mcp set cortex '{
"command": "node",
"args": ["/absolute/path/to/cortex-mcp/dist/index.js"],
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}'Или при глобальной установке через npm:
openclaw mcp set cortex '{
"command": "cortex-mcp",
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}'Затем перезапустите шлюз OpenClaw, чтобы новый сервер был подхвачен:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "cortex" is registeredHermes Agent
Hermes Agent считывает конфигурацию MCP из ~/.hermes/config.yaml в ключе mcp_servers. Добавьте запись:
mcp_servers:
cortex:
command: "cortex-mcp"
env:
CORTEX_URL: "http://cortex.example.com:9001"
CORTEX_API_KEY: "your-org-admin-key"
CORTEX_SUPERADMIN_KEY: "your-superadmin-key"Или при запуске из исходного кода вместо глобальной установки npm:
mcp_servers:
cortex:
command: "node"
args: ["/absolute/path/to/cortex-mcp/dist/index.js"]
env:
CORTEX_URL: "http://cortex.example.com:9001"
CORTEX_API_KEY: "your-org-admin-key"
CORTEX_SUPERADMIN_KEY: "your-superadmin-key"Затем перезагрузите MCP внутри сессии Hermes:
/reload-mcpCodex CLI
Codex CLI регистрирует MCP-серверы через codex mcp add:
codex mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- cortex-mcpИли при запуске из исходного кода:
codex mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- node /absolute/path/to/cortex-mcp/dist/index.jsCodex записывает запись в ~/.codex/config.toml в разделе [mcp_servers.cortex]. Проверьте с помощью:
codex mcp listАвтономный режим
export CORTEX_URL=http://cortex.example.com:9001
export CORTEX_API_KEY=your-org-admin-key
npm startИнструменты MCP (31)
Статус
Инструмент | Описание |
| Получить состояние работоспособности, версию и конфигурацию экземпляра Cortex |
Инструменты анализаторов
Инструмент | Описание |
| Список всех включенных анализаторов, опционально отфильтрованных по типу данных |
| Получить подробную информацию о конкретном анализаторе по ID |
| Отправить наблюдаемый объект на анализ конкретному анализатору |
| Запустить анализатор по имени, а не по ID (удобная обертка) |
| Отправить файл (по пути или в формате base64) на анализ анализатору |
Инструменты определений анализаторов
Инструмент | Описание |
| Просмотр всех 260+ доступных определений анализаторов с фильтрацией (по типу данных, бесплатные/без настройки, поиск) |
| Включить определение анализатора в текущей организации с настройкой |
| Отключить (удалить) включенный анализатор |
Инструменты заданий
Инструмент | Описание |
| Получить статус и детали задания анализа |
| Получить полный отчет о завершенном задании анализа |
| Дождаться завершения задания и вернуть отчет |
| Список последних заданий анализа с опциональными фильтрами |
| Получить артефакты (извлеченные IOC) из завершенного задания |
| Удалить конкретное задание |
| Массовое удаление заданий по статусу или возрасту (с пробным запуском) |
Инструменты респондеров
Инструмент | Описание |
| Список всех включенных респондеров, опционально отфильтрованных по типу данных |
| Выполнить действие респондера для сущности TheHive |
Инструменты определений респондеров
Инструмент | Описание |
| Просмотр всех 137+ доступных определений респондеров с фильтрацией |
| Включить определение респондера с настройкой |
| Отключить (удалить) включенный респондер |
Массовые операции
Инструмент | Описание |
| Запустить ВСЕ применимые анализаторы с автоматически определенным типом данных и агрегированными результатами таксономии |
Управление организацией (суперпользователь)
Инструмент | Описание |
| Список всех организаций |
| Получить детали организации |
| Создать новую организацию |
| Обновить описание или статус организации |
Управление пользователями (суперпользователь)
Инструмент | Описание |
| Список всех пользователей во всех организациях |
| Получить детали пользователя |
| Создать нового пользователя в организации |
| Создать новый ключ API для пользователя (предыдущий аннулируется) |
| Получить текущий ключ API пользователя |
Ресурсы MCP (4)
URI | Описание |
| Включенные анализаторы с их возможностями |
| Все 260+ доступных определений анализаторов с требованиями к конфигурации |
| Все 137+ доступных определений респондеров с требованиями к конфигурации |
| Последние 50 заданий анализа |
Промпты MCP (4)
Промпт | Описание |
| Пошаговый рабочий процесс для анализа наблюдаемого объекта через Cortex |
| Рабочий процесс глубокого расследования подозрительного IOC |
| Мастер настройки для новых экземпляров Cortex (включение бесплатных анализаторов, настройка ключей API) |
| Структурированный рабочий процесс сортировки оповещений с анализом нескольких объектов и оценкой рисков |
Примеры
Настройка анализаторов с нуля
1. Use cortex_list_analyzer_definitions with freeOnly=true to find analyzers
that need no API keys.
2. Use cortex_enable_analyzer to enable "Abuse_Finder_3_0" with empty config.
3. Use cortex_analyze_observable with data "8.8.8.8" to analyze the IP.Автоматическое определение типа наблюдаемого объекта
Use cortex_analyze_observable with data "185.220.101.42"
(no dataType needed - auto-detects as IP)Очистка старых неудачных заданий
Use cortex_cleanup_jobs with status "Failure", dryRun true to preview,
then dryRun false to delete.Анализ файла
Use cortex_run_analyzer_file with analyzerId "Yara_3_0",
filePath "/tmp/suspicious.exe" to scan with YARA rules.Управление ключами API
Use cortex_renew_user_key with userId "analyst1" to rotate their API key.Сортировка оповещения безопасности
Use the triage-alert prompt with alertDescription "Suspicious outbound traffic
detected" and observables "185.220.101.42, evil.example.com, 44d88612fea8a8f36de82e1278abb02f"Поддерживаемые типы данных
Тип | Примеры | Автоматическое определение |
|
| ✅ |
|
| ✅ |
|
| ✅ |
| MD5, SHA1, SHA256, SHA512 | ✅ |
|
| ✅ |
|
| Как домен |
|
| Вручную |
|
| Вручную |
| Загрузка бинарных файлов | Вручную |
| CVE, пользовательские типы | Вручную |
Тестирование
npm test # Unit tests (36 tests)
npm run test:watch # Watch mode
npm run lint # Type check
# Integration tests (requires live Cortex instance)
CORTEX_URL=http://cortex:9001 \
CORTEX_API_KEY=your-key \
CORTEX_SUPERADMIN_KEY=your-superadmin-key \
npx vitest run tests/integration.test.tsСтруктура проекта
cortex-mcp/
src/
index.ts # MCP server entry point
config.ts # Environment config + validation
client.ts # Cortex REST API client (full surface)
types.ts # Cortex API type definitions
resources.ts # MCP resources (4)
prompts.ts # MCP prompts (2)
tools/
analyzers.ts # Analyzer tools (list, get, run, run-by-name)
analyzer-definitions.ts # Definition browsing, enable, disable
jobs.ts # Job management + cleanup
responders.ts # Responder tools (list, run)
responder-definitions.ts # Definition browsing, enable, disable
bulk.ts # Bulk analysis with auto-detect
status.ts # Health/version check
organizations.ts # Org CRUD (superadmin)
users.ts # User CRUD + key management (superadmin)
tests/
client.test.ts # API client unit tests
tools.test.ts # Tool handler unit tests
integration.test.ts # Live instance integration tests (21 tests)
scripts/
proxmox_install.sh # Proxmox LXC deployment scriptРазвертывание
Proxmox LXC
bash -c "$(wget -qLO - https://raw.githubusercontent.com/solomonneas/cortex-mcp/main/scripts/proxmox_install.sh)"Лицензия
MIT
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
- AlicenseAqualityAmaintenanceAn MCP server that extracts Indicators of Compromise (IoCs) from unstructured text and checks their reputation across multiple threat intelligence services. It enables real-time analysis of IPs, domains, hashes, and URLs, providing enriched context for security workflows within LLMs.519MIT
- AlicenseAqualityAmaintenanceAn MCP server that enables LLMs to interact with MISP for threat intelligence sharing, IOC lookups, and event management. It provides tools for investigating indicators, discovering correlations, and exporting intelligence in formats like STIX and Suricata.36312MIT
- FlicenseNot gradedqualityDmaintenanceA security-focused MCP server that enables automated log retrieval and threat analysis using LangGraph orchestration and RAG. It allows users to detect suspicious activity and generate structured security insights by integrating LLM reasoning with log data and runbook documentation.
- AlicenseNot gradedqualityDmaintenanceMCP server that provides condensed and normalized data from OpenCTI to LLMs, enabling lookup of observables, adversaries, and reports with enriched context.16MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
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/lidless-labs/cortex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server