cortex-mcp
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: операции на уровне организации + администрирование суперпользователем
Предварительные требования
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/solomonneas/cortex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server