cisco-umbrella-mcp
cisco-umbrella-mcp
Cisco Umbrella MCP Service — это статeless HTTP MCP-сервер, оборачивающий Cisco Umbrella REST API v2 (классический Umbrella, а не более новый продукт Secure Access/SASE), ограниченный 10 эндпоинтами, которые MSPbots использует в настоящее время: отчёты об активности DNS/proxy/firewall/AMP-retrospective, роуминг-компьютеры, обнаружение приложений (приложения/протоколы/категории приложений), список клиентов управляемого провайдера и сводка консоли провайдера.
Технологический стек: Python 3.12 + uv + FastMCP (Starlette/Uvicorn)
Когда агенту следует использовать этот сервис
Cisco Umbrella защищает сеть клиента на уровне DNS/веба — он блокирует вредоносные домены, фильтрует веб-контент по категориям и регистрирует сетевую активность. Агенту следует обращаться к этому MCP для запросов вроде:
«Был ли этот домен запрошен или заблокирован в сети этого клиента в последнее время?» →
cisco_umbrella_get_activity_dns«Какие веб-категории/URL фильтруются или проксируются для этого клиента?» →
cisco_umbrella_get_activity_proxy«Были ли разрешения/блокировки файрвола для сети этого клиента за последний день?» →
cisco_umbrella_get_activity_firewall«Был ли файл, который выглядел чистым, позже помечен как вредоносное ПО?» →
cisco_umbrella_get_activity_amp_retrospective«Перечисли роуминг-ноутбуки этого клиента и их последнюю синхронизацию/статус» →
cisco_umbrella_list_roaming_computers«Перечисли организации клиентов, которыми мы управляем через Cisco Umbrella» / «Каково наше использование пакетов Umbrella среди клиентов?» →
cisco_umbrella_list_customers,cisco_umbrella_get_providers_console
Оговорка: этот набор учётных данных — это ключ корневой организации Managed Provider (MSSP), а не учётные данные отдельного клиента, поэтому инструменты активности/устройств для конкретного клиента, перечисленные выше, на практике могут возвращать пустые результаты — см. раздел Известные пробелы ниже с проверенными деталями.
Related MCP server: cisco-secure-access-mcp
Примечание о методе аутентификации
Классический REST API Cisco Umbrella поддерживает грант OAuth2 client_credentials — чисто серверный обмен, без перенаправления через браузер пользователя. Администратор создаёт пару API Key + Key Secret в панели Umbrella (Admin > API Keys), и этот сервис обменивает эту пару на кратковременный (1 час) bearer-токен при каждом вызове (без refresh-токена, поэтому кэширования между запросами нет — тот же паттерн «повторный вход при каждом вызове», что и в covedataprotection-mcp/webroot-mcp/logmein-mcp).
POST https://api.umbrella.com/auth/v2/token
Authorization: Basic base64(apiKey:keySecret)
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentialsПримечание о регионе: в собственной конфигурации интеграции MSPbots для Cisco Umbrella есть поле dataCenter (us/eu). Проверено напрямую по исходной спецификации OpenAPI, встроенной в документацию разработчика Cisco, для всех 10 эндпоинтов плюс эндпоинт auth/token: каждый из них указывает ровно один хост, https://api.umbrella.com — отдельного EU-хоста для классического Umbrella не существует. (В более новом продукте Cisco «Secure Access» действительно есть своя концепция регионов, но это другой продукт, не тот, на который нацелен этот сервис.) Поэтому этот сервис полностью игнорирует значение dataCenter; оно не нужно ни для одного из этих 10 эндпоинтов.
Быстрый старт
# Install dependencies
cd D:\claude\project\cisco-umbrella-mcp
uv sync
# Run in stdio mode (for Claude Desktop)
$env:UMBRELLA_API_KEY="your_api_key"
$env:UMBRELLA_KEY_SECRET="your_key_secret"
uv run cisco-umbrella-mcpКонфигурация
Скопируйте .env.example в .env и заполните свои значения:
Переменная | По умолчанию | Описание |
| — | Cisco Umbrella API Key (Admin > API Keys) |
| — | Cisco Umbrella Key Secret (показывается один раз при создании) |
|
|
|
|
|
|
|
| Порт HTTP-сервера |
HEADER 授权参数说明
В режиме Gateway каждый запрос должен содержать следующие два HTTP-заголовка:
Header | Тип | Обязателен | По умолчанию | Допустимые значения | Описание поля | Пример |
| string | да | нет | нет | Cisco Umbrella API Key (генерируется на странице Admin > API Keys в панели Umbrella) |
|
| string | да | нет | нет | Cisco Umbrella Key Secret (показывается только один раз при создании; используется вместе с API Key для обмена на токен через client_credentials) |
|
Настройка Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"cisco-umbrella": {
"command": "uv",
"args": ["run", "--directory", "D:/claude/project/cisco-umbrella-mcp", "cisco-umbrella-mcp"],
"env": {
"UMBRELLA_API_KEY": "your_api_key",
"UMBRELLA_KEY_SECRET": "your_key_secret"
}
}
}
}Режимы транспорта
stdio (Claude Desktop / CLI)
$env:UMBRELLA_API_KEY="your_api_key"
$env:UMBRELLA_KEY_SECRET="your_key_secret"
uv run cisco-umbrella-mcpHTTP — одноклиентский
$env:UMBRELLA_API_KEY="your_api_key"
$env:UMBRELLA_KEY_SECRET="your_key_secret"
$env:MCP_TRANSPORT="http"
$env:AUTH_MODE="env"
uv run cisco-umbrella-mcpHTTP — gateway / мультитенантный
$env:MCP_TRANSPORT="http"
$env:AUTH_MODE="gateway"
uv run cisco-umbrella-mcp
# Each request must include: X-Umbrella-Api-Key and X-Umbrella-Key-Secret headersДоступные инструменты (10)
Инструмент | Описание | API | Параметры |
| События DNS-активности |
|
|
| События активности прокси (SWG) |
|
|
| События активности файрвола |
|
|
| События ретроспективной активности AMP |
|
|
| Список роуминг-клиентских конечных точек |
|
|
| Список обнаруженных облачных приложений |
|
|
| Список обнаруженных сетевых протоколов |
|
|
| Список категорий приложений |
|
|
| Список организаций клиентов в рамках этой учётной записи Managed Provider |
|
|
| Получить сводку подписки/использования консоли провайдера (один объект, не список) |
| нет |
from_/to принимают эпохальные миллисекунды, ISO-8601 или относительное смещение (например, "-1days", "-7days", "now"), в соответствии с соглашениями отчётного API Umbrella. (from_ имеет завершающее подчёркивание, потому что from — зарезервированное слово Python; внутри он сопоставляется с литеральным параметром запроса from.)
Известные пробелы
Протестировано на двух реальных учётных записях Managed Provider (MSSP). Из 10 инструментов только 2 подтверждённо работают с проверенными реальными данными; остальные 8 либо заблокированы, либо не проверены (пустые результаты не доказывают корректность — они просто означают, что ошибка не возникла).
✅ Подтверждённо работают (реальные, непустые, перекрёстно проверенные данные):
cisco_umbrella_get_providers_console— реальная сводка подписки на обеих тестовых учётных записях (customerCount: 77иcustomerCount: 47соответственно).cisco_umbrella_list_customers— вернул 77 реальных организаций клиентов (реальные названия компаний) на учётной записи 1. На учётной записи 2 завершился ошибкой403 Access Forbidden— подтверждено декодированием токена этой учётной записи, что ей действительно не хватает областиadmin.customers:read(всего 20 областей против 76 на учётной записи 1). Это не ошибка кода, а реальное различие в разрешениях между ключами.
⚠️ Не проверены — вернули корректно сформированные, но пустые результаты на обеих учётных записях, корректность не доказана: cisco_umbrella_get_activity_dns, _proxy, _firewall, _amp_retrospective, cisco_umbrella_list_roaming_computers. Определения параметров OpenAPI для Activity DNS были перекрёстно сверены напрямую с документацией Cisco (извлечена исходная спецификация, а не сводка) — from/to/limit реализованы точно так, как описано, отсутствующих или неправильно названных параметров нет. Вероятное объяснение: обе тестовые учётные записи — это корневые организации Managed Provider, у которых нет собственного прямого DNS/proxy/firewall/AMP-трафика или роуминг-компьютеров — эти данные находятся в каждой отдельной организации управляемого клиента. В документации Cisco был выполнен поиск параметра/заголовка ограничения области «запрос от имени организации этого клиента» для классического Umbrella — ничего не найдено (концепция ограничения области токена «Multi-Org» существует, но только для отдельного продукта Secure Access/SASE, а не для классического Umbrella). Существует отдельное семейство API «Providers» (/providers/customers/{customerId}/...), которое выглядит как возможный предполагаемый путь к данным конкретного клиента, но оно выходит за рамки подтверждённых для этой сборки 10 эндпоинтов. Для фактического подтверждения этих 5 инструментов требуются реальные учётные данные организации отдельного клиента (не уровня провайдера).
cisco_umbrella_list_applications,_protocols,_application_categories(App Discovery) — подтверждено, что заблокировано, это не ошибка кода. Воспроизводится идентично на обоих тестовых аккаунтах и при прямом вызове через curl с теми же токенами (что исключает проблемы с формированием запроса):403 Access Forbiddenна аккаунте 1,500/403на аккаунте 2. Списки областей действия обоих токенов включалиreports.appdiscovery:read, так что это, скорее всего, ограничение пакета/лицензии (App Discovery как платный дополнительный модуль не входит ни в один из тарифов «Umbrella for MSSPs» обоих аккаунтов), а не проблема прав доступа или параметров.cisco_umbrella_get_providers_consoleвозвращает один объект сводки по подписке, а не список — подтверждено обоими живыми тестами. Несмотря на множественное число в собственном сконфигурированном списке API в MSPbots («Providers Consoles»), перепроверьте это на соответствие тому, что ожидает существующий коллектор MSPbots (массив или одиночный объект).Список необязательных параметров конечной точки обнаружения приложений
Applicationsможет быть не полностью исчерпывающим (пара параметров ближе к концу схемы этой конечной точки не была полностью зафиксирована в ходе исследования) — задокументированные здесь (sources,identity,labels,controllable,categories,subcategory,limit,offset) подтверждены как реальные; возможно, есть ещё один-два, которые пока не добавлены.Область действия ограничена 10 операциями, которые MSPbots использует в настоящее время (подтверждено пользователем), а не всей поверхностью API Umbrella (которая также включает Networks, Internal Domains, Sites, Network Tunnels, Policies, Tagging, отдельный API «Providers» для действий по каждому клиенту и Key Admin API для управления самими ключами API).
Справочник по API
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseCqualityCmaintenanceA Python-based MCP server that enables querying Cisco's Meraki Dashboard API to discover, monitor, and manage Meraki environments.2241MIT
- AlicenseAqualityCmaintenanceA community MCP server for Cisco Secure Access that exposes the Secure Access REST API to AI clients as a curated catalog of tools for Admin, Deployments, Investigate, Policies, and Reports.421Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for Proofpoint Email Protection - email security, threat intelligence, TAP (Targeted Attack Protection), and email filtering API integration402Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server for Cisco Meraki Dashboard, enabling LLMs to discover devices, check health, troubleshoot, and generate reports via natural language.MIT
Related MCP Connectors
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
MCP server for AI access to Swagger by SmartBear.
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/MSPbotsAI/cisco-umbrella-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server