splunk-mcp
Splunk MCP-Tool (Model Context Protocol)
Ein FastMCP-basiertes Tool für die Interaktion mit Splunk Enterprise/Cloud über natürliche Sprache. Dieses Tool bietet eine Reihe von Funktionen zum Durchsuchen von Splunk-Daten, Verwalten von KV-Speichern und Zugriff auf Splunk-Ressourcen über eine intuitive Benutzeroberfläche.
Betriebsarten
Das Tool arbeitet in drei Modi:
SSE-Modus (Standard)
Server-Sent Events-basierte Kommunikation
Bidirektionale Interaktion in Echtzeit
Geeignet für webbasierte MCP-Clients
Standardmodus, wenn keine Argumente angegeben sind
Zugriff über
/sse-Endpunkt
API-Modus
RESTful-API-Endpunkte
Zugriff über das Endpunktpräfix
/api/v1Beginnen Sie mit
python splunk_mcp.py api
STDIO-Modus
Standardmäßige Eingabe-/Ausgabe-basierte Kommunikation
Kompatibel mit Claude Desktop und anderen MCP-Clients
Ideal für die direkte Integration mit KI-Assistenten
Beginnen Sie mit
python splunk_mcp.py stdio
Related MCP server: MCP Server for Splunk
Merkmale
Splunk-Suche : Führen Sie Splunk-Suchen mit Abfragen in natürlicher Sprache aus
Indexverwaltung : Splunk-Indizes auflisten und prüfen
Benutzerverwaltung : Splunk-Benutzer anzeigen und verwalten
KV Store Operations : Erstellen, Auflisten und Verwalten von KV Store-Sammlungen
Asynchrone Unterstützung : Erstellt mit Asynchron-/Wartemustern für bessere Leistung
Detaillierte Protokollierung : Umfassende Protokollierung mit Emoji-Indikatoren für bessere Sichtbarkeit
SSL-Konfiguration : Flexible SSL-Verifizierungsoptionen für unterschiedliche Sicherheitsanforderungen
Verbessertes Debugging : Detaillierte Verbindungs- und Fehlerprotokollierung zur Fehlerbehebung
Umfassende Tests : Unit-Tests, die alle wichtigen Funktionen abdecken
Fehlerbehandlung : Robuste Fehlerbehandlung mit entsprechenden Statuscodes
SSE-Konformität : Vollständig konform mit der MCP SSE-Spezifikation
Verfügbare MCP-Tools
Über die MCP-Schnittstelle stehen folgende Tools zur Verfügung:
Werkzeugverwaltung
list_tools
Listet alle verfügbaren MCP-Tools mit ihren Beschreibungen und Parametern auf
Gesundheitscheck
Gesundheitscheck
Gibt eine Liste der verfügbaren Splunk-Apps zurück, um die Konnektivität zu überprüfen
Klingeln
Einfacher Ping-Endpunkt zur Überprüfung, ob der MCP-Server aktiv ist
Benutzerverwaltung
aktueller_Benutzer
Gibt Informationen über den aktuell authentifizierten Benutzer zurück
Benutzerliste
Gibt eine Liste aller Benutzer und ihrer Rollen zurück
Indexverwaltung
Listenindizes
Gibt eine Liste aller zugänglichen Splunk-Indizes zurück
get_index_info
Gibt detaillierte Informationen zu einem bestimmten Index zurück
Parameter: index_name (Zeichenfolge)
Indizes und Quelltypen
Gibt eine umfassende Liste der Indizes und ihrer Quelltypen zurück
Suchen
Suche_splunk
Führt eine Splunk-Suchabfrage aus
Parameter:
search_query (Zeichenfolge): Splunk-Suchzeichenfolge
earliest_time (Zeichenfolge, optional): Startzeit für das Suchfenster
latest_time (Zeichenfolge, optional): Endzeit für das Suchfenster
max_results (Ganzzahl, optional): Maximale Anzahl der zurückzugebenden Ergebnisse
Liste gespeicherter Suchen
Gibt eine Liste der gespeicherten Suchen in der Splunk-Instanz zurück
KV Store
Liste_kvstore_sammlungen
Listet alle KV-Store-Kollektionen auf
Erstellen Sie eine KVStore-Sammlung
Erstellt eine neue KV-Store-Kollektion
Parameter: collection_name (Zeichenfolge)
delete_kvstore_collection
Löscht eine vorhandene KV-Store-Sammlung
Parameter: collection_name (Zeichenfolge)
SSE-Endpunkte
Beim Ausführen im SSE-Modus sind die folgenden Endpunkte verfügbar:
/sse : Gibt SSE-Verbindungsinformationen im Text-/Ereignisstromformat zurück
Stellt Metadaten zur SSE-Verbindung bereit
Enthält die URL für den Nachrichtenendpunkt
Bietet Protokoll- und Fähigkeitsinformationen
/sse/messages : Der Hauptendpunkt des SSE-Streams
Streamt Systemereignisse wie Heartbeats
Hält die Verbindung dauerhaft aufrecht
Sendet ordnungsgemäß formatierte SSE-Ereignisse
/sse/health : Integritätsprüfungsendpunkt für den SSE-Modus
Gibt Status- und Versionsinformationen im SSE-Format zurück
Fehlerbehandlung
Die MCP-Implementierung beinhaltet eine konsistente Fehlerbehandlung:
Ungültige Suchbefehle oder fehlerhafte Anfragen
Unzureichende Berechtigungen
Ressource nicht gefunden
Validierung ungültiger Eingaben
Unerwartete Serverfehler
Verbindungsprobleme mit dem Splunk-Server
Alle Fehlerantworten enthalten eine detaillierte Meldung, die den Fehler erklärt.
Voraussetzungen
Python 3.10 oder höher
Poesie für das Abhängigkeitsmanagement
Splunk Enterprise/Cloud-Instanz
Entsprechende Splunk-Anmeldeinformationen mit den erforderlichen Berechtigungen
Installation
Option 1: Lokale Installation
Klonen Sie das Repository:
git clone <repository-url>
cd splunk-mcpInstallieren Sie Abhängigkeiten mit Poetry:
poetry installKopieren Sie die Beispielumgebungsdatei und konfigurieren Sie Ihre Einstellungen:
cp .env.example .envAktualisieren Sie die
.envDatei mit Ihren Splunk-Anmeldeinformationen:
SPLUNK_HOST=your_splunk_host
SPLUNK_PORT=8089
SPLUNK_USERNAME=your_username
SPLUNK_PASSWORD=your_password
SPLUNK_SCHEME=https
VERIFY_SSL=true
FASTMCP_LOG_LEVEL=INFOOption 2: Docker-Installation
Rufen Sie das neueste Bild ab:
docker pull livehybrid/splunk-mcp:latestErstellen Sie Ihre
.envDatei wie oben beschrieben oder verwenden Sie Umgebungsvariablen direkt.Mit Docker Compose ausführen:
docker-compose up -dOder direkt mit Docker:
docker run -i \
--env-file .env \
livehybrid/splunk-mcpVerwendung
Lokale Nutzung
Das Tool kann in drei Modi ausgeführt werden:
SSE-Modus (Standard für MCP-Clients):
# Start in SSE mode (default)
poetry run python splunk_mcp.py
# or explicitly:
poetry run python splunk_mcp.py sse
# Use uvicorn directly:
SERVER_MODE=api poetry run uvicorn splunk_mcp:app --host 0.0.0.0 --port 8000 --reloadSTDIO-Modus:
poetry run python splunk_mcp.py stdioDocker-Nutzung
Das Projekt unterstützt sowohl die neuen Befehle docker compose “ (V2) als auch docker-compose (V1). Die folgenden Beispiele verwenden die Syntax von V2, aber beide werden unterstützt.
SSE-Modus (Standard):
docker compose up -d mcpAPI-Modus:
docker compose run --rm mcp python splunk_mcp.py apiSTDIO-Modus:
docker compose run -i --rm mcp python splunk_mcp.py stdioTesten mit Docker
Das Projekt umfasst eine dedizierte Testumgebung in Docker:
Führen Sie alle Tests aus:
./run_tests.sh --dockerFühren Sie bestimmte Testkomponenten aus:
# Run only the MCP server
docker compose up -d mcp
# Run only the test container
docker compose up test
# Run both with test results
docker compose up --abort-on-container-exitDie Testergebnisse sind im Verzeichnis ./test-results verfügbar.
Tipps zur Docker-Entwicklung
Gebäudebilder :
# Build both images
docker compose build
# Build specific service
docker compose build mcp
docker compose build testProtokolle anzeigen :
# View all logs
docker compose logs
# Follow specific service logs
docker compose logs -f mcpDebuggen :
# Run with debug mode
DEBUG=true docker compose up mcp
# Access container shell
docker compose exec mcp /bin/bashHinweis: Wenn Sie Docker Compose V1 verwenden, ersetzen Sie in den obigen Befehlen docker compose durch docker-compose .
Sicherheitshinweise
Umgebungsvariablen :
Übernehmen Sie niemals
.envDateienVerwenden Sie
.env.exampleals VorlageErwägen Sie die Verwendung von Docker-Geheimnissen für die Produktion
SSL-Verifizierung :
VERIFY_SSL=trueempfohlen für die ProduktionKann für Entwicklung/Tests deaktiviert werden
Konfigurieren über Umgebungsvariablen
Hafenlage :
Nur die erforderlichen Ports offen legen
Verwenden Sie nach Möglichkeit das interne Docker-Netzwerk
Berücksichtigen Sie die Netzwerksicherheit in der Produktion
Umgebungsvariablen
Konfigurieren Sie die folgenden Umgebungsvariablen:
SPLUNK_HOST: Ihre Splunk-HostadresseSPLUNK_PORT: Splunk-Verwaltungsport (Standard: 8089)SPLUNK_USERNAME: Ihr Splunk-BenutzernameSPLUNK_PASSWORD: Ihr Splunk-PasswortSPLUNK_SCHEME: Verbindungsschema (Standard: https)VERIFY_SSL: SSL-Verifizierung aktivieren/deaktivieren (Standard: true)FASTMCP_LOG_LEVEL: Protokollierungsebene (Standard: INFO)SERVER_MODE: Servermodus (sse, api, stdio) bei Verwendung von uvicorn
SSL-Konfiguration
Das Tool bietet flexible SSL-Verifizierungsoptionen:
Standardmodus (Sicherer Modus) :
VERIFY_SSL=trueVollständige SSL-Zertifikatsüberprüfung
Hostnamenüberprüfung aktiviert
Empfohlen für Produktionsumgebungen
Entspannter Modus :
VERIFY_SSL=falseSSL-Zertifikatsüberprüfung deaktiviert
Hostnamenüberprüfung deaktiviert
Nützlich zum Testen oder für selbstsignierte Zertifikate
Testen
Das Projekt umfasst eine umfassende Testabdeckung mit pytest und End-to-End-Tests mit einem benutzerdefinierten MCP-Client:
Ausführen von Tests
Grundlegende Testausführung:
poetry run pytestMit Berichterstattung über die Berichterstattung:
poetry run pytest --cov=splunk_mcpMit ausführlicher Ausgabe:
poetry run pytest -vEnd-to-End-SSE-Tests
Das Projekt umfasst ein benutzerdefiniertes MCP-Client-Testskript, das eine Verbindung zum Live-SSE-Endpunkt herstellt und alle Tools testet:
# Test all tools
python test_endpoints.py
# Test specific tools
python test_endpoints.py health_check list_indexes
# List all available tools
python test_endpoints.py --listDieses Skript fungiert als MCP-Client, indem es:
Herstellen einer Verbindung zum
/sse-Endpunkt, um die Nachrichten-URL abzurufenSenden von Toolaufrufen an den Nachrichtenendpunkt
Verarbeiten der SSE-Ereignisse zum Extrahieren von Toolergebnissen
Validieren der Ergebnisse anhand der erwarteten Formate
Dies ermöglicht praxisnahe Tests der SSE-Schnittstelle, wie sie von einem tatsächlichen MCP-Client verwendet würde.
Teststruktur
Das Projekt verwendet drei sich ergänzende Testansätze:
MCP-Integrationstests (
tests/test_api.py) :Testet die MCP-Tools-Schnittstelle über
mcp.call_tool()Überprüft die ordnungsgemäße Werkzeugregistrierung mit FastMCP
Stellt das richtige Antwortformat und die richtige Datenstruktur sicher
Validiert die Fehlerbehandlung auf MCP-Schnittstellenebene
Hinweis: Diese Datei sollte idealerweise in
test_mcp.pyumbenannt werden, um ihren Zweck besser widerzuspiegeln
Direkte Funktionstests (
tests/test_endpoints_pytest.py) :Testet Splunk-Funktionen direkt (unter Umgehung der MCP-Schicht)
Bietet eine umfassendere Abdeckung der Details der Funktionsimplementierung
Testet Randfälle, Parametervariationen und Fehlerbehandlung
Beinhaltet Tests für SSL-Konfiguration, Verbindungsparameter und Timeouts
Verwendet parametrisiertes Testen für eine effiziente Testabdeckung
End-to-End-MCP-Clienttests (
test_endpoints.py) :Verhält sich wie ein echter MCP-Client, der eine Verbindung zum SSE-Endpunkt herstellt
Testet den gesamten Ablauf von der Verbindung über den Tool-Aufruf bis hin zur Antwortanalyse
Validiert die tatsächliche Implementierung des SSE-Protokolls
Testet Tools mit realen Parametern gegen den Live-Server
Konfigurationstests (
tests/test_config.py) :Tests zum Parsen von Umgebungsvariablen
SSL-Verifizierungseinstellungen
Validierung der Verbindungsparameter
Testwerkzeuge
Die Tests unterstützen:
Asynchrones Testen mit pytest-asyncio
Abdeckungsberichte mit pytest-cov
Mocking mit pytest-mock
Parametrisiertes Testen
Testen des Verbindungstimeouts
Fehlerbehebung
Verbindungsprobleme
Grundlegende Konnektivität :
Das Tool führt nun einen grundlegenden TCP-Konnektivitätstest durch
Überprüfen Sie, ob Port 8089 erreichbar ist
Überprüfen Sie das Netzwerk-Routing und die Firewalls
SSL-Probleme :
Wenn SSL-Fehler auftreten, versuchen Sie
VERIFY_SSL=falsefestzulegen.Überprüfen Sie die Gültigkeit des Zertifikats und die Vertrauenskette
Überprüfen, ob der Hostname mit dem Zertifikat übereinstimmt
Authentifizierungsprobleme :
Überprüfen der Splunk-Anmeldeinformationen
Überprüfen Sie die Benutzerberechtigungen
Stellen Sie sicher, dass das Konto nicht gesperrt ist
Debuggen :
Setzen Sie
FASTMCP_LOG_LEVEL=DEBUGfür detaillierte ProtokolleÜberprüfen Sie die Verbindungsprotokolle auf bestimmte Fehlermeldungen
Überprüfen der SSL-Konfigurationsmeldungen
SSE-Verbindungsprobleme :
Überprüfen Sie, ob der SSE-Endpunkt über
/sseerreichbar ist.Überprüfen Sie, ob die Inhaltstyp-Header korrekt sind.
Verwenden Sie Browser-Entwicklertools, um SSE-Verbindungen zu überprüfen
Claude Integration
Claude Desktop-Konfiguration
Sie können Splunk MCP in Claude Desktop integrieren, indem Sie es für den SSE- oder STDIO-Modus konfigurieren. Fügen Sie Ihrer claude_desktop_config.json die folgende Konfiguration hinzu:
STDIO-Modus (empfohlen für Desktop)
{
"mcpServers": {
"splunk": {
"command": "poetry",
"env": {
"SPLUNK_HOST": "your_splunk_host",
"SPLUNK_PORT": "8089",
"SPLUNK_USERNAME": "your_username",
"SPLUNK_PASSWORD": "your_password",
"SPLUNK_SCHEME": "https",
"VERIFY_SSL": "false"
},
"args": [
"--directory",
"/path/to/splunk-mcp",
"run",
"python",
"splunk_mcp.py",
"stdio"
]
}
}
}SSE-Modus
{
"mcpServers": {
"splunk": {
"command": "poetry",
"env": {
"SPLUNK_HOST": "your_splunk_host",
"SPLUNK_PORT": "8089",
"SPLUNK_USERNAME": "your_username",
"SPLUNK_PASSWORD": "your_password",
"SPLUNK_SCHEME": "https",
"VERIFY_SSL": "false",
"FASTMCP_PORT": "8001",
"DEBUG": "true"
},
"args": [
"--directory",
"/path/to/splunk-mcp",
"run",
"python",
"splunk_mcp.py",
"sse"
]
}
}
}Verwendung mit Claude
Nach der Konfiguration können Sie über Claude in natürlicher Sprache mit Splunk interagieren. Beispiele:
Liste der verfügbaren Indizes:
What Splunk indexes are available?Splunk-Daten durchsuchen:
Search Splunk for failed login attempts in the last 24 hoursSystemzustand abrufen:
Check the health of the Splunk systemKV-Stores verwalten:
List all KV store collectionsDie MCP-Tools stehen Claude automatisch zur Verfügung, sodass er diese Vorgänge über Befehle in natürlicher Sprache ausführen kann.
Lizenz
[Ihre Lizenz hier]
Danksagung
FastMCP-Framework
Splunk SDK für Python
Python-Decouple für das Konfigurationsmanagement
SSE Starlette für die SSE-Implementierung
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
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Splunk Enterprise and Splunk Cloud instances through standardized MCP interface. Supports executing SPL queries, managing indexes and saved searches, listing applications, and retrieving server information with flexible authentication options.
- AlicenseAqualityAmaintenanceEnables AI agents to interact seamlessly with Splunk environments through 20+ tools for search, analytics, data discovery, administration, and health monitoring. Features AI-powered troubleshooting workflows and supports multiple Splunk instances with production-ready security.5627Apache 2.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to interact with Splunk instances to execute SPL queries, manage saved searches, and monitor system health. It provides a clean interface for listing dashboards, indexes, and logs through the Model Context Protocol.381
- FlicenseBqualityDmaintenanceA lightweight, extensible MCP server for Splunk Enterprise that enables secure, async, chat-based interaction with Splunk data via Claude Desktop or any MCP-compatible agent.71
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
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/livehybrid/splunk-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server