cisco-umbrella-mcp
cisco-umbrella-mcp
Cisco Umbrella MCP Service — ein zustandsloser HTTP-MCP-Server, der die Cisco Umbrella REST API v2 (klassisches Umbrella, nicht das neuere Secure Access/SASE-Produkt) kapselt, begrenzt auf die 10 Endpunkte, die MSPbots derzeit verwendet: DNS-/Proxy-/Firewall-/AMP-Retrospektiv-Aktivitätsberichte, Roaming-Computer, App-Discovery (Anwendungen/Protokolle/Anwendungskategorien), Kundenliste des Managed Providers und die Provider-Konsolenübersicht.
Tech-Stack: Python 3.12 + uv + FastMCP (Starlette/Uvicorn)
Wann sollte ein Agent dies verwenden
Cisco Umbrella schützt das Netzwerk eines Kunden auf DNS-/Web-Ebene — es blockiert bösartige Domains, filtert Webinhalte nach Kategorie und protokolliert Netzwerkaktivitäten. Ein Agent sollte dieses MCP für Anfragen wie diese verwenden:
"Wurde diese Domain kürzlich im Netzwerk dieses Kunden abgefragt oder blockiert?" →
cisco_umbrella_get_activity_dns"Welche Webkategorien/URLs werden für diesen Kunden gefiltert oder über den Proxy geleitet?" →
cisco_umbrella_get_activity_proxy"Gab es in den letzten 24 Stunden Firewall-Zulassungen/-Blockierungen für das Netzwerk dieses Kunden?" →
cisco_umbrella_get_activity_firewall"Wurde eine Datei, die sauber aussah, später als Malware eingestuft?" →
cisco_umbrella_get_activity_amp_retrospective"Liste die Roaming-Laptops dieses Kunden und ihren letzten Synchronisierungsstatus auf" →
cisco_umbrella_list_roaming_computers"Liste die Kundenorganisationen auf, die wir unter Cisco Umbrella verwalten" / "Wie ist unsere Umbrella-Paketnutzung über alle Kunden hinweg?" →
cisco_umbrella_list_customers,cisco_umbrella_get_providers_console
Hinweis: Dieser Anmeldedatensatz ist ein Managed-Provider-Key (MSSP) der Root-Organisation, kein kundenspezifischer Anmeldedatensatz. Die kundenbezogenen Aktivitäts-/Geräte-Tools oben können daher in der Praxis leer zurückkommen — siehe Bekannte Lücken unten für die verifizierten Details.
Related MCP server: cisco-secure-access-mcp
Hinweis zur Authentifizierungsmethode
Die klassische REST-API von Cisco Umbrella unterstützt den OAuth2 client_credentials-Grant — ein reiner Server-zu-Server-Austausch ohne Browser-Weiterleitung des Benutzers. Ein Administrator erstellt ein Paar aus API-Key und Key-Secret im Umbrella-Dashboard (Admin > API Keys), und dieser Dienst tauscht dieses Paar bei jedem Aufruf gegen ein kurzlebiges (1 Stunde) Bearer-Token ein (kein Refresh-Token, also kein Caching über Anfragen hinweg — dasselbe „Bei jedem Aufruf neu anmelden"-Muster wie 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_credentialsHinweis zur Region: Die eigene Integrationskonfiguration von MSPbots für Cisco Umbrella enthält ein Feld dataCenter (us/eu). Direkt gegen die rohe OpenAPI-Spezifikation verifiziert, die in Ciscos eigenen Entwicklerdokumenten für alle 10 Endpunkte plus den Auth-/Token-Endpunkt eingebettet ist: Jeder von ihnen listet genau einen Host, https://api.umbrella.com — es gibt keinen separaten EU-Host für klassisches Umbrella. (Ciscos neueres Produkt „Secure Access" hat zwar ein eigenes Regionskonzept, aber das ist ein anderes Produkt als das, auf das dieser Dienst abzielt.) Dieser Dienst ignoriert daher den Wert von dataCenter vollständig; er wird für keinen dieser 10 Endpunkte benötigt.
Schnellstart
# 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-mcpKonfiguration
Kopieren Sie .env.example in .env und füllen Sie Ihre Werte aus:
Variable | Standard | Beschreibung |
| — | Cisco Umbrella API-Key (Admin > API Keys) |
| — | Cisco Umbrella Key-Secret (wird bei der Erstellung nur einmal angezeigt) |
|
|
|
|
|
|
|
| HTTP-Server-Port |
HEADER-Autorisierungsparameter
Im Gateway-Modus muss jede Anfrage die folgenden zwei HTTP-Header enthalten:
Header | Typ | Erforderlich | Standard | Enumerationswerte | Feldbeschreibung | Beispiel |
| string | Ja | Keine | Keine | Cisco Umbrella API-Key (im Umbrella-Dashboard unter Admin > API Keys generiert) |
|
| string | Ja | Keine | Keine | Cisco Umbrella Key-Secret (wird bei der Erstellung nur einmal angezeigt; wird zusammen mit dem API-Key für den client_credentials-Tokenaustausch verwendet) |
|
Claude Desktop Einrichtung
Fügen Sie Folgendes zu claude_desktop_config.json hinzu:
{
"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"
}
}
}
}Transportmodi
stdio (Claude Desktop / CLI)
$env:UMBRELLA_API_KEY="your_api_key"
$env:UMBRELLA_KEY_SECRET="your_key_secret"
uv run cisco-umbrella-mcpHTTP — Einzelmandant
$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 / Mehrfachmandant
$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 headersVerfügbare Tools (10)
Tool | Beschreibung | API | Parameter |
| DNS-Aktivitätsereignisse |
|
|
| Proxy-Aktivitätsereignisse (SWG) |
|
|
| Firewall-Aktivitätsereignisse |
|
|
| AMP-Retrospektiv-Aktivitätsereignisse |
|
|
| Roaming-Client-Endpunkte auflisten |
|
|
| Erkannte Cloud-Anwendungen auflisten |
|
|
| Erkannte Netzwerkprotokolle auflisten |
|
|
| Anwendungskategorien auflisten |
|
|
| Kundenorganisationen unter diesem Managed-Provider-Konto auflisten |
|
|
| Provider-Konsolen-Abonnement-/Nutzungsübersicht abrufen (einzelnes Objekt, keine Liste) |
| keine |
from_/to akzeptieren Epochen-Millisekunden, ISO-8601 oder einen relativen Offset (z. B. "-1days", "-7days", "now"), gemäß den Konventionen der Umbrella-Reporting-API. (from_ hat einen nachgestellten Unterstrich, weil from ein reserviertes Wort in Python ist — es wird intern auf den Literal-Query-Parameter from abgebildet.)
Bekannte Lücken
Getestet gegen zwei echte Managed-Provider-Konten (MSSP). Von den 10 Tools sind nur 2 mit verifizierten echten Daten bestätigt funktionsfähig; die anderen 8 sind entweder blockiert oder unverifiziert (leere Ergebnisse beweisen keine Korrektheit — sie bedeuten nur, dass kein Fehler ausgelöst wurde).
✅ Bestätigt funktionsfähig (echte, nicht leere, kreuzvalidierte Daten):
cisco_umbrella_get_providers_console— echte Abonnementübersicht auf beiden Testkonten (customerCount: 77bzw.customerCount: 47).cisco_umbrella_list_customers— lieferte 77 echte Kundenorganisationen (echte Firmennamen) auf Konto 1. Fehlgeschlagen mit403 Access Forbiddenauf Konto 2 — durch Dekodierung des Tokens dieses Kontos bestätigt, dass ihm tatsächlich der Bereichadmin.customers:readfehlt (20 Bereiche insgesamt gegenüber 76 auf Konto 1). Kein Codefehler; ein echter Unterschied in den Berechtigungen pro Schlüssel.
⚠️ Unverifiziert — lieferte wohlgeformte, aber leere Ergebnisse auf beiden Konten, nicht als korrekt nachgewiesen: cisco_umbrella_get_activity_dns, _proxy, _firewall, _amp_retrospective, cisco_umbrella_list_roaming_computers. Die Live-OpenAPI-Parameterdefinitionen für Activity DNS wurden direkt gegen Ciscos eigene Dokumentation kreuzgeprüft (die rohe Spezifikation abgerufen, nicht zusammengefasst) — from/to/limit sind exakt wie implementiert, keine fehlenden oder falsch benannten Parameter. Die wahrscheinliche Erklärung ist, dass beide Testkonten Managed-Provider-Root-Organisationen sind, die selbst keinen direkten DNS-/Proxy-/Firewall-/AMP-Verkehr oder Roaming-Computer haben — diese Daten liegen jeweils unter jeder einzelnen verwalteten Kundenorganisation. In Ciscos Dokumentation wurde nach einem Parameter/Header zur Bereichsbegrenzung „Abfrage als diese Kundenorganisation" für klassisches Umbrella gesucht — keiner gefunden (ein „Multi-Org"-Token-Bereichskonzept existiert, aber nur für das separate Secure Access/SASE-Produkt, nicht für klassisches Umbrella). Es gibt eine eigene „Providers"-API-Familie (/providers/customers/{customerId}/...), die wie der vorgesehene Weg zu kundenspezifischen Daten aussieht, aber sie liegt außerhalb des für diesen Build bestätigten 10-Endpunkt-Umfangs. Es wird ein echter Anmeldedatensatz einer einzelnen Kundenorganisation (nicht auf Provider-Ebene) benötigt, um diese 5 tatsächlich zu bestätigen.
cisco_umbrella_list_applications,_protocols,_application_categories(App Discovery) — bestätigt blockiert, kein Code-Fehler. Auf beiden Testkonten und per direktemcurlmit denselben Tokens identisch reproduziert (was Probleme bei der Anfragekonstruktion ausschließt):403 Access Forbiddenauf Konto 1,500/403auf Konto 2. Die Scope-Listen beider Tokens enthieltenreports.appdiscovery:read, daher handelt es sich höchstwahrscheinlich um eine Paket-/Berechtigungseinschränkung (App Discovery als kostenpflichtiges Add-on, das in keinem der „Umbrella for MSSPs“-Tarife der Konten enthalten ist), nicht um ein Berechtigungs- oder Parameterproblem.cisco_umbrella_get_providers_consolegibt ein einzelnes Abonnement-Zusammenfassungsobjekt zurück, keine Liste — durch beide Live-Tests bestätigt. Trotz des Pluralnamens in MSPbots‘ eigener konfigurierter API-Liste („Providers Consoles“) sollte dies gegen das geprüft werden, was MSPbots‘ bestehender Collector erwartet (Array vs. einzelnes Objekt).Die optionale Parameterliste des
Applications-App-Discovery-Endpunkts ist möglicherweise nicht vollständig erschöpfend (einige Parameter am Ende des Schemas dieses Endpunkts wurden während der Recherche nicht vollständig erfasst) — die hier dokumentierten (sources,identity,labels,controllable,categories,subcategory,limit,offset) sind als real bestätigt; es könnten noch ein oder zwei weitere fehlen.Der Umfang ist auf die 10 Operationen beschränkt, die MSPbots derzeit verwendet (vom Benutzer bestätigt), nicht auf die vollständige API-Oberfläche von Umbrella (die auch Networks, Internal Domains, Sites, Network Tunnels, Policies, Tagging, die separate „Providers“-API für kundenbezogene Aktionen und die Key Admin API zur Verwaltung der API-Schlüssel selbst umfasst).
API-Referenz
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