Skip to main content
Glama
nks1097

Splunk Enterprise MCP Server

by nks1097

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPLUNK_HOSTYesHostname or IP address of the Splunk Enterprise instance
SPLUNK_PORTNoSplunk port, e.g. 8000 for Splunk Web Proxy or 8089 for the REST API
SPLUNK_TOKENNoJWT Bearer token for authentication (alternative to username/password)
MCP_READ_ONLYNoRead-only mode; when true, destructive operations are blocked. Default is true.true
MCP_TRANSPORTNoMCP transport protocol, e.g. stdio
SPLUNK_SCHEMENoConnection scheme, e.g. http or https
SPLUNK_PASSWORDNoSplunk password for basic authentication
SPLUNK_USERNAMENoSplunk username for basic authentication
SPLUNK_VERIFY_TLSNoSet to false to disable TLS certificate verification, e.g. for self-signed certificates

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
splunk_searchA

Execute a synchronous blocking SPL search within an explicit time window.

Args: spl: SPL search string (e.g. 'index=_internal | stats count by sourcetype'). earliest_time: Earliest time bound (e.g. '-24h@h', '-15m', '1710000000'). latest_time: Latest time bound (e.g. 'now', '@h'). count: Maximum number of results to retrieve (capped by SPLUNK_MAX_RESULTS). offset: Offset index for pagination.

splunk_search_streamB

Stream search results progressively via the Splunk export endpoint.

Args: spl: SPL search string. earliest_time: Earliest time bound. latest_time: Latest time bound. count: Maximum number of events to stream.

splunk_search_asyncB

Initiate an asynchronous search job in the background and return its Job SID immediately.

Args: spl: SPL query. earliest_time: Earliest time bound. latest_time: Latest time bound. max_count: Optional maximum count limit.

splunk_search_statusB

Query execution status, progress percentage, and statistics of a Search Job by SID.

Args: sid: Search Job ID.

splunk_search_resultsB

Retrieve paginated results for a completed or running Search Job.

Args: sid: Search Job ID. offset: Offset into results. count: Number of results to fetch.

splunk_search_eventsC

Retrieve raw events associated with a Search Job.

Args: sid: Search Job ID. offset: Offset into events. count: Number of events to fetch.

splunk_search_previewB

Retrieve preliminary preview results for an in-progress search job.

Args: sid: Search Job ID. count: Number of preview results to fetch.

splunk_search_cancelC

Cancel an active authorized search job.

Args: sid: Search Job ID to cancel. confirm: Confirmation flag for cancellation.

splunk_search_explainB

Validate SPL structure, analyze risk, performance anti-patterns, and cost estimation.

Args: spl: SPL query to analyze. earliest_time: Optional earliest time bound.

splunk_search_historyB

Query recent search history and jobs dispatched by the current user.

Args: count: Maximum number of history jobs to list.

splunk_list_indexesA

List accessible Splunk indexes with disk size, event count, and disabled status.

Args: count: Number of indexes to list. offset: Pagination offset.

splunk_get_indexB

Query configuration, retention policies, and storage paths for a specific index.

Args: name: Index name (e.g. 'main', '_internal', 'wineventlog').

splunk_index_statsB

Retrieve aggregate storage volume and event statistics across all accessible indexes.

splunk_list_sourcetypesB

Discover sourcetypes with event count and last seen recency.

Args: index: Optional index filter (e.g. 'main', '_internal'). count: Maximum number of sourcetypes to retrieve.

splunk_list_sourcesB

Discover event sources across indexes with event counts.

Args: index: Optional index filter. count: Maximum number of sources to list.

splunk_list_hostsA

Discover hosts reporting data into Splunk with event counts and latest observed timestamp.

Args: index: Optional index filter. count: Maximum number of hosts to list.

splunk_get_field_summaryB

Obtain statistical distribution of fields and top values for an index and sourcetype.

Args: index: Target index name. sourcetype: Optional sourcetype filter. sample_count: Number of events to sample for summary.

splunk_get_data_freshnessC

Evaluate data recency, latest event timestamp, and ingestion latency.

Args: index: Target index. sourcetype: Optional sourcetype.

splunk_search_data_gapsB

Detect time gaps in ingested data streams where expected events are missing.

Args: index: Index to analyze. sourcetype: Optional sourcetype filter. time_span: Bucket duration for binning (e.g. '15m', '1h'). earliest_time: Earliest search window.

splunk_sample_eventsA

Retrieve representative raw event samples without full table scans.

Args: index: Target index. sourcetype: Optional sourcetype filter. count: Number of sample events (default 10, max 100).

splunk_list_saved_searchesB

List saved searches, scheduled reports, and alerts.

Args: app: Optional Splunk app context (e.g. 'search'). count: Number of saved searches to list. offset: Pagination offset.

splunk_get_saved_searchA

Retrieve full configuration, search query, schedule, and actions of a saved search.

Args: name: Name of the saved search.

splunk_create_saved_searchA

Create a new saved search or scheduled report (requires write mode).

Args: name: Unique name for the saved search. search: SPL search query. description: Description of the report/saved search. cron_schedule: Cron expression (e.g. '0 * * * *'). is_scheduled: Whether to enable automatic schedule. app: App namespace (default 'search').

splunk_update_saved_searchB

Update settings or query of an existing saved search.

Args: name: Name of saved search to update. search: Optional new SPL query. description: Optional new description. cron_schedule: Optional new cron expression. is_scheduled: Enable/disable scheduled execution. disabled: Enable/disable the saved search.

splunk_delete_saved_searchA

Delete an existing saved search (requires write mode and human confirmation).

Args: name: Name of the saved search to delete. confirm: Confirmation flag.

splunk_dispatch_saved_searchB

Dispatch and immediately run a saved search, returning its newly generated job SID.

Args: name: Name of the saved search. trigger_actions: Whether to fire configured alert actions (e.g. email, webhook).

splunk_list_alertsB

List configured alerts and recent fired alert records.

Args: count: Maximum number of alerts to return.

splunk_get_alert_historyB

Retrieve historical fired alert events over a time window.

Args: alert_name: Optional name filter for specific alert. earliest_time: Earliest time range (default '-7d@d'). count: Maximum history events.

splunk_acknowledge_alertB

Acknowledge or update status of an alert finding (requires write mode).

Args: alert_id: Fired alert ID. comment: Operational acknowledgement comment.

splunk_manage_alert_suppressionB

Configure or inspect suppression windows for an alert to prevent notification storms.

Args: alert_name: Name of saved search alert. suppression_period: Time duration to suppress (e.g. '1h', '30m'). enabled: Enable or disable suppression.

splunk_list_dashboardsB

List dashboards (Simple XML or Dashboard Studio) in the Splunk instance.

Args: app: Optional Splunk app filter. count: Number of dashboards to retrieve. offset: Pagination offset.

splunk_get_dashboardC

Retrieve full XML or JSON definition of a dashboard.

Args: name: Dashboard view name/id. app: Optional app namespace.

splunk_create_dashboardA

Create a new Simple XML or Dashboard Studio dashboard (requires write mode).

Args: name: Unique dashboard view ID. label: Display title of dashboard. xml_data: XML or JSON dashboard definition. app: App namespace (default 'search').

splunk_update_dashboardA

Update an existing dashboard definition (requires write mode).

Args: name: Name of dashboard to update. xml_data: Updated XML/JSON definition. label: Optional new display title. app: Optional app namespace.

splunk_delete_dashboardB

Delete a dashboard (requires write mode and human confirmation).

Args: name: Name of dashboard to delete. app: Optional app namespace. confirm: Confirmation flag.

splunk_list_reportsC

List scheduled and ad-hoc reports in the environment.

Args: app: Optional app filter. count: Maximum number of reports to retrieve.

splunk_run_reportB

Execute a named report and retrieve its generated results.

Args: name: Name of the report/saved search. count: Maximum results to return.

splunk_list_eventtypesB

List eventtypes, classifications, and search patterns.

Args: count: Maximum number of eventtypes.

splunk_list_tagsA

List tags assigned to fields and event classifications.

Args: count: Maximum number of tags.

splunk_list_macrosC

List configured search macros, arguments, and definition strings.

Args: count: Maximum number of macros.

splunk_get_server_infoA

Retrieve Splunk server runtime info, version, OS, license state, and topology roles.

splunk_get_server_healthB

Retrieve Splunk system health report, status features, and subsystem warnings.

splunk_list_appsB

List installed Splunk apps and add-ons with versions and status.

splunk_get_app_detailsB

Get metadata, configurations, and permissions for a specific Splunk app.

Args: name: App folder name (e.g. 'search', 'SplunkForwarder').

splunk_list_usersB

List configured user accounts, roles, realnames, and authentication types with secrets redacted.

splunk_get_userA

Get details, assigned roles, and permissions of a specific user.

Args: username: Username to inspect.

splunk_list_rolesC

List configured roles, inherited roles, and allowed search indexes.

splunk_get_role_capabilitiesB

Get granular capabilities and restrictions assigned to a specific role.

Args: role_name: Name of the role (e.g. 'admin', 'user', 'power').

splunk_list_configurationsB

List available .conf configuration files accessible through REST properties.

splunk_get_configurationB

Read stanzas and properties from a configuration file with secrets scrubbed.

Args: conf_file: Name of conf file (e.g. 'server', 'props', 'transforms', 'inputs'). stanza: Optional specific stanza name.

splunk_list_inputsC

List configured data inputs (TCP, UDP, monitor, scripts, HTTP Event Collector).

Args: count: Maximum number of inputs.

splunk_get_inputA

Get configuration and status of a specific input stanza.

Args: input_type: Input type (e.g. 'monitor', 'tcp/raw', 'http', 'script'). name: Stanza name or port.

splunk_list_forwardersB

List connected Universal and Heavy Forwarders observed in the indexing pipeline.

Args: count: Maximum number of forwarders.

splunk_get_forwarder_statusB

Inspect transmission volume, connection drops, and status for a specific forwarder.

Args: hostname: Forwarder hostname.

splunk_check_forwarder_connectivityA

Detect missing forwarders that stopped transmitting data beyond expected threshold.

Args: threshold_minutes: Minutes without data before flagging as disconnected (default 15).

splunk_get_ingestion_metricsA

Retrieve historical ingestion throughput (MB/hour) broken down by index.

Args: time_span: Bucket span (e.g. '15m', '1h'). earliest_time: Earliest search window.

splunk_get_ingestion_lagB

Measure pipeline processing lag between event occurrence timestamp and indexing time.

Args: index: Index to evaluate. sourcetype: Optional sourcetype filter. count: Sample size of events.

splunk_get_parsing_errorsB

Detect timestamp parsing, line-breaking, and regex extraction errors recorded in _internal.

Args: earliest_time: Search window (default '-24h@h').

splunk_check_source_coverageC

Verify that expected data sources are active and currently indexing data.

Args: expected_sources: List of expected source or sourcetype strings. index: Target index. lookback: Time interval to inspect.

splunk_diagnose_ingestionB

Composite diagnostic: evaluate overall pipeline health, queue sizes, drop rates, and bottlenecks.

splunk_detect_failed_loginsB

Detect and aggregate failed authentication events across Splunk audit, Windows, and Linux logs.

Args: index: Optional specific index (defaults to searching _audit and default indexes). earliest_time: Earliest search window (default '-24h@h'). count: Maximum aggregated rows to return.

splunk_detect_brute_forceB

Detect potential brute force attacks or credential stuffing based on repeated failed logins.

Args: threshold: Minimum failed attempts to flag (default 5). time_window: Bin duration (default '15m'). earliest_time: Time range to analyze (default '-4h').

splunk_investigate_ipA

Forensic investigation of an IP address across firewall, proxy, authentication, and web logs.

Args: ip_address: Target IP address to investigate. earliest_time: Time window to scan (default '-24h@h'). count: Maximum events to return.

splunk_investigate_userB

Audit user actions, accessed resources, IP origins, and privilege usage.

Args: username: Target username. earliest_time: Time range to audit. count: Maximum results.

splunk_investigate_hostB

Investigate system logs, processes, network connections, and errors for a host.

Args: hostname: Target host name or FQDN. earliest_time: Earliest search window. count: Maximum events.

splunk_search_iocA

Search for Indicators of Compromise (hashes, domains, IPs, URLs) across all indexed data.

Args: ioc_value: The IOC string (e.g. SHA256 hash, malicious domain, external IP). ioc_type: Optional type description ('hash', 'ip', 'domain'). earliest_time: Time range (default '-7d@d').

splunk_correlate_eventsB

Correlate multi-source events occurring within a synchronized time window around an entity.

Args: entity_value: Target identifier (e.g. IP, username, hostname). window_minutes: Time window in minutes before and after timestamp. timestamp: Anchor epoch or ISO timestamp (default current time).

splunk_detect_anomaliesC

Execute statistical anomaly detection (outliers based on standard deviation) over time series.

Args: index: Index to inspect. sourcetype: Optional sourcetype. field_to_analyze: Metric or field (default 'count'). time_span: Aggregation bucket (default '1h').

splunk_get_security_alertsB

Query security alerts, high-severity trigger events, and findings.

Args: severity: Optional severity filter ('critical', 'high', 'medium'). earliest_time: Time window (default '-24h@h'). count: Maximum alert items.

splunk_build_incident_timelineC

Composite tool: construct a high-fidelity chronological timeline for an incident entity.

Args: entity_type: Type of entity ('ip', 'user', or 'host'). entity_value: The entity string (e.g. '10.0.0.5', 'jsmith', 'srv-db-01'). earliest_time: Incident timeline start. latest_time: Incident timeline end. max_events: Maximum chronological timeline events.

splunk_get_search_performanceC

Inspect search head performance, execution times, and resource utilization.

Args: earliest_time: Search audit window (default '-4h').

splunk_detect_slow_searchesC

Identify slow or expensive searches exceeding duration threshold.

Args: min_duration_seconds: Threshold in seconds to flag (default 30). earliest_time: Search window. count: Maximum slow searches to list.

splunk_get_search_concurrencyB

Inspect active concurrent historical and real-time searches against system limits.

splunk_get_scheduler_healthC

Inspect search scheduler health, skipped searches, delayed executions, and quota blocks.

Args: earliest_time: Scheduler audit window (default '-4h').

splunk_get_internal_errorsA

Query recent internal daemon errors and warnings from index=_internal.

Args: log_level: Log severity filter ('ERROR', 'WARN', 'FATAL'). earliest_time: Time window (default '-4h'). count: Maximum errors to return.

splunk_get_license_usageA

Retrieve daily license quota, consumed bytes, warnings, and pool allocations.

splunk_get_storage_usageA

Inspect filesystem disk partitions, storage volume in $SPLUNK_DB, and retention capacities.

splunk_get_cluster_healthA

Check health status of indexer cluster or search head cluster (or report standalone topology).

splunk_get_replication_statusB

Check bucket replication status, cluster fix-up tasks, and peer synchronizations.

splunk_diagnose_performanceB

Composite tool: multi-dimensional assessment of CPU, memory, scheduler, disk, and search latency.

splunk_create_indexA

Create a new Splunk index with storage capacity and retention limits (requires write mode).

Args: name: Unique name of the new index. max_size_mb: Maximum index size in Megabytes (default 10,000 MB). frozen_retention_days: Optional retention window in days before aging to frozen.

splunk_update_index_settingsA

Update settings, quotas, or disable/enable an index (requires write mode).

Args: name: Name of index to update. max_size_mb: Optional new maximum size in Megabytes. frozen_retention_days: Optional new retention in days. disabled: Set index disabled or enabled.

splunk_manage_inputA

Enable or disable a configured data input stanza (requires write mode).

Args: input_type: Type of input (e.g. 'monitor', 'tcp/raw', 'http'). name: Name or port of the input stanza. action: 'enable' or 'disable'.

splunk_manage_userA

Create, update, or remove a Splunk user (requires write mode and human confirmation).

Args: username: Target username. action: 'create', 'update', or 'delete'. roles: List of roles to assign (e.g. ['user', 'power']). password: User password for creation/update (scrubbed from audit logs). realname: Optional display real name. email: Optional email address. confirm: Confirmation flag for user management.

splunk_manage_roleB

Create, modify, or delete a security role (requires write mode and human confirmation).

Args: role_name: Role identifier. action: 'create', 'update', or 'delete'. capabilities: List of granted capabilities. allowed_indexes: Allowed searchable indexes. confirm: Confirmation flag.

splunk_manage_appA

Enable or disable a Splunk application (requires write mode and human confirmation).

Args: app_name: Target app folder name. action: 'enable' or 'disable'. confirm: Confirmation flag.

splunk_validate_configurationA

Audit and validate a configuration file for syntax errors or stanza duplicates.

Args: conf_file: Configuration file name (e.g. 'props', 'transforms', 'inputs').

splunk_export_search_resultsC

Export search results in structured format (JSON, CSV, or raw events).

Args: spl: SPL search query. output_format: 'json', 'csv', or 'raw'. earliest_time: Optional earliest time. count: Maximum count of events to export.

splunk_submit_eventA

Submit a synthetic test log event into a Splunk index via receiver endpoint (requires write mode).

Args: event_data: Raw log text or JSON payload. index: Destination index (default 'main'). sourcetype: Sourcetype marker. host: Optional origin host string.

splunk_replay_saved_searchB

Replay and re-execute a saved search query over a custom historical time range.

Args: name: Saved search name. earliest_time: Historical start time (e.g. '-7d@d', '1710000000'). latest_time: Historical end time (e.g. 'now', '-1d@d').

splunk_natural_language_to_splB

Convert natural language questions or operational requirements into secure, optimized SPL.

Args: prompt: User's analytical goal (e.g. 'top 10 IP addresses by failed login count'). target_index: Optional target index hint (e.g. '_audit', 'main', 'firewall'). time_range: Intended time window (default '-24h@h').

splunk_optimize_splB

Analyze an SPL query, detect performance anti-patterns, and generate an optimized version.

Args: spl: SPL search string to optimize.

splunk_explain_search_resultsA

Interpret search results, highlight statistical distributions, and summarize key findings.

Args: results: Array of result dictionaries from a search. question: Optional analytical question being answered.

splunk_compare_time_periodsC

Compare event volume or metric values between two distinct time periods.

Args: metric_spl: Search query ending in stats count or metric. period1_earliest: Current period start. period1_latest: Current period end. period2_earliest: Comparison period start. period2_latest: Comparison period end.

splunk_detect_data_quality_issuesB

Audit an index and sourcetype for null values, timestamp skew, and format discrepancies.

Args: index: Index to audit. sourcetype: Optional sourcetype filter.

splunk_generate_operational_reportA

Generate an executive Markdown operational health report covering license, errors, and storage.

splunk_execute_workflowB

Execute an automated investigation or operational workflow pipeline.

Args: workflow_name: Workflow to run ('incident_triage', 'ingestion_audit', 'capacity_review'). parameters: Workflow specific parameters (e.g. {'entity': '10.0.0.1'}).

splunk_preview_changeB

Preview the impact of a configuration or administrative modification before executing it.

Args: operation: Operation type (e.g. 'update_index', 'delete_saved_search', 'modify_role'). target: Target resource identifier. proposed_settings: Proposed parameter values to evaluate.

splunk_audit_tool_activityA

Query recent MCP server tool invocations, execution duration, and audit logs.

Args: limit: Number of audit records to retrieve (default 50). tool_filter: Optional tool name filter. only_failures: Only retrieve failed tool executions.

splunk_test_connectionA

Verify end-to-end connectivity, TLS, authentication, server version, and operational permissions.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 100 tools

Disambiguation3/5

The tool set has many overlapping areas: synchronous, async, streaming, exported, previewed, and saved-search execution tools all coexist, as do composite diagnostics and their granular component tools. Descriptions and predictable names help, but an agent can easily choose the wrong search, alert, report, or investigation tool among the roughly 100 options.

Naming Consistency4/5

Almost every tool uses the splunk_ prefix and snake_case, with mostly verb_noun patterns such as splunk_get_saved_search, splunk_create_index, and splunk_detect_brute_force. Minor deviations appear in noun-oriented names like splunk_search_status and splunk_index_stats, and some overloaded verbs like manage are broader than others.

Tool Count1/5

A total of 100 tools is an extreme mismatch for a single MCP surface, far beyond the typical 3-15 well-scoped range. Although Splunk is a broad platform, exposing nearly every operation as a separate tool creates a high cognitive and selection burden.

Completeness4/5

Coverage is unusually broad: search lifecycle, saved searches, alerts, indexes, dashboards, users, roles, apps, ingestion diagnostics, security investigations, performance, and audit are all represented. Some lifecycle gaps remain, such as creating or modifying inputs/configuration, installing apps, and lookup or data model management, but most core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues