Skip to main content
Glama
MCP Server for Splunk

MCP Server for Splunk

by deslicer

MCP for Splunk: open-source Splunk MCP server

An open-source Splunk MCP server (Model Context Protocol) that lets AI assistants and agents search, explore and manage Splunk Enterprise and Splunk Cloud Platform.

PyPI Python FastMCP MCP License

Python integrations: see the package namespace migration guide.

mcp-for-splunk exposes Splunk's REST API as MCP tools, resources and prompts. Any MCP-compatible client, such as Cursor, Claude Desktop, VS Code or your own agent, can run SPL, discover indexes and sourcetypes, read configuration, manage saved searches, alerts, dashboards and KV Store, and look up Splunk and CIM documentation. It runs over stdio or Streamable HTTP. In HTTP mode, each request can carry its own Splunk credentials in headers, so one server can serve several users or Splunk environments.

Looking for Splunk's vendor-supported MCP server? That's the Splunk MCP Server app on Splunkbase (app 7931), which runs inside Splunk at /services/mcp. This project is a separate, community-maintained server that runs outside Splunk and talks to the management port (8089).

Contents

Related MCP server: Splunk MCP for SOC Operations

Quickstart

Requirements: Python 3.11+ (Python 3.10 is no longer supported), uv or pip, and a Splunk Enterprise or Splunk Cloud Platform instance with REST API (port 8089) access. Docker is optional.

Option A: install from PyPI

pip install mcp-server-for-splunk          # or: uv tool install mcp-server-for-splunk

export SPLUNK_HOST=your-splunk.example.com
export SPLUNK_PORT=8089
export SPLUNK_TOKEN=<splunk-bearer-token>  # or SPLUNK_USERNAME + SPLUNK_PASSWORD

mcp-server --transport stdio               # for desktop clients that spawn the server
mcp-server                                 # Streamable HTTP on http://localhost:8001/mcp/

The installed mcp-server command accepts --transport {http,stdio}, --host and --port. The HTTP port defaults to MCP_SERVER_PORT or 8001.

Option B: run from a source checkout

git clone https://github.com/deslicer/mcp-for-splunk.git
cd mcp-for-splunk
cp env.example .env                        # then edit the Splunk settings

./scripts/smart-install.sh --dry-run       # macOS/Linux: preview missing prerequisites
./scripts/smart-install.sh                 # install them (Python, uv, Git, Node)

uv run mcp-server --local --detached       # start the server (checkout default port 8003)
uv run mcp-server --test                   # verify; add --detailed for tools/resources
uv run mcp-server --stop                   # stop this project's services

On Windows, use the same uv run mcp-server โ€ฆ commands from PowerShell (see scripts/build_and_run.ps1 and the Windows guide). In a checkout, mcp-server asks whether to run the full Docker stack or a local process. The local endpoint is http://localhost:8003/mcp/.

Configuration

Copy env.example to .env. The main variables:

Variable

Purpose

Default

SPLUNK_HOST, SPLUNK_PORT

Splunk management endpoint

8089 port

SPLUNK_SCHEME

https or http

SPLUNK_TOKEN

Bearer token; takes precedence over username/password

SPLUNK_USERNAME, SPLUNK_PASSWORD

Basic credentials

SPLUNK_SESSION_TOKEN

Existing splunkd session token (advanced)

SPLUNK_VERIFY_SSL

TLS verification. The client defaults to true when this is unset. env.example sets false for local labs with self-signed certs

true when unset

SPLUNK_WEB_URL / SPLUNK_WEB_PORT / SPLUNK_WEB_LOCALE

Used to build links to dashboards and jobs

MCP_SERVER_HOST, MCP_SERVER_PORT

HTTP bind address

0.0.0.0, 8001 (installed) / 8003 (checkout)

MCP_STATELESS_HTTP, MCP_JSON_RESPONSE

Stateless HTTP and JSON responses for wider client compatibility

true in env.example

MCP_DEFAULT_TOOLSETS

Toolsets for clients that send no X-MCP-Toolsets header (splunk, splunk,itsi, all)

splunk

MCP_SEARCH_WAIT_SECONDS

How long run_splunk_search / run_oneshot_search wait before returning

15

MCP_AUTH_DISABLED, MCP_AUTH_PROVIDER

Inbound MCP authentication

MCP_LOG_LEVEL

Log level

INFO

For stdio clients, you can also pass MCP_SPLUNK_HOST, MCP_SPLUNK_PORT, MCP_SPLUNK_USERNAME, MCP_SPLUNK_PASSWORD, MCP_SPLUNK_TOKEN, MCP_SPLUNK_SCHEME and MCP_SPLUNK_VERIFY_SSL in the client's env block.

Connect a client

stdio (Cursor, Claude Desktop, VS Code and similar)

{
  "mcpServers": {
    "splunk": {
      "command": "mcp-server",
      "args": ["--transport", "stdio"],
      "env": {
        "MCP_SPLUNK_HOST": "your-splunk.example.com",
        "MCP_SPLUNK_PORT": "8089",
        "MCP_SPLUNK_TOKEN": "<splunk-bearer-token>",
        "MCP_SPLUNK_VERIFY_SSL": "true"
      }
    }
  }
}

Streamable HTTP with per-request credentials

Start the server once, then let each client send its own Splunk target in headers:

{
  "mcpServers": {
    "splunk-http": {
      "url": "http://localhost:8001/mcp/",
      "headers": {
        "X-Splunk-Host": "your-splunk.example.com",
        "X-Splunk-Port": "8089",
        "X-Splunk-Scheme": "https",
        "X-Splunk-Token": "<splunk-bearer-token>",
        "X-Splunk-Verify-SSL": "true"
      }
    }
  }
}

Supported headers: X-Splunk-Host, X-Splunk-Port, X-Splunk-Scheme, X-Splunk-Token, X-Splunk-Username, X-Splunk-Password, X-Splunk-Session-Token, X-Splunk-Verify-SSL, X-Splunk-Web-Url, X-Splunk-Web-Port, X-Splunk-Web-Locale, X-MCP-Toolsets. Sessionless mode is the default. Send a stable X-Session-ID if you want config cached across requests. See HTTP client connection modes. If you run from a checkout, use port 8003.

Tools

The core server registers these tools (source: src/mcp_server_for_splunk/tools/). Tools that write to Splunk are marked โœ๏ธ. Your Splunk role's permissions still apply.

Area

Tool

What it does

Search

run_oneshot_search

Run SPL and wait up to MCP_SEARCH_WAIT_SECONDS for results

run_splunk_search

Run SPL as a tracked job with progress and stats

get_search_job_info

Status, properties and messages for a job (sid)

get_search_job_results

One page of results from a completed job

Saved searches

list_saved_searches

Saved searches with owner, schedule and permissions

get_saved_search_details

Full configuration of one saved search

execute_saved_search

Run a saved search by name

create_saved_search โœ๏ธ

Create a saved search, optionally scheduled

update_saved_search โœ๏ธ

Update query, schedule or sharing

delete_saved_search โœ๏ธ

Delete a saved search (with confirmation)

Alerts

list_triggered_alerts

Fired alerts and details

list_alert_actions

Installed alert actions, including custom ones

create_alert โœ๏ธ / update_alert โœ๏ธ / delete_alert โœ๏ธ

Manage alerts (scheduled saved searches with triggers)

Metadata

list_indexes

Accessible indexes

list_sourcetypes

Sourcetypes via metadata (paged)

list_sources

Sources via metadata (paged)

get_metadata

Distinct metadata values for an index

Dashboards

list_dashboards

Simple XML and Dashboard Studio dashboards

get_dashboard_definition

Raw definition of a dashboard

create_dashboard โœ๏ธ

Create a Simple XML or Dashboard Studio dashboard

KV Store

list_kvstore_collections

Collections and schema

get_kvstore_data

Query documents with filters

create_kvstore_collection โœ๏ธ

Create a collection

Lookups

list_lookup_files

CSV lookup files

list_lookup_definitions

Lookup definitions (transforms)

Admin

list_apps

Installed apps

manage_apps โœ๏ธ

Enable, disable or restart apps

list_users

Users and roles

me

The authenticated user

get_configurations

Read settings from .conf files

create_config โœ๏ธ

Create or update a stanza in a .conf file at app level

get_splunk_health

Connectivity and health status

enhance_tool_description

Developer helper that improves tool descriptions

Docs and CIM

list_cim_data_models / get_cim_reference

CIM data models and field specifications

get_spl_reference / list_spl_commands / get_splunk_cheat_sheet

SPL reference

list_config_files / get_config_spec

.conf file specs

list_admin_topics / get_admin_guide

Admin documentation

list_troubleshooting_topics / get_troubleshooting_guide

Troubleshooting documentation

list_dashboard_studio_topics / get_studio_topic

Dashboard Studio documentation

list_available_topics / discover_splunk_docs / get_splunk_documentation

Discover and fetch Splunk docs by URI

Workflows

list_workflows / workflow_builder / workflow_requirements / get_executed_workflows

Discover, author and validate troubleshooting workflow JSON

Workflow JSON definitions are for discovery, validation and external orchestration. The built-in workflow_runner was removed with the move to FastMCP 4 / MCP SDK v2. See the workflows guide and the tools reference.

Resources and prompts

  • Resources: Splunk documentation (splunk-docs://โ€ฆ, including SPL reference, troubleshooting and admin topics), configuration specs (splunk-spec://{config}), CIM data models, Dashboard Studio docs and embedded docs. See docs/reference/resources.md.

  • Prompts: mcp_overview, workflow_creation_guide, tool_usage_guide.

  • llms.txt: a guide for LLMs on using this server.

ITSI MCP server

A server for Splunk IT Service Intelligence lives in mcp_itsi/ and is published as mcp-itsi-server. Run it as a plugin of this server (pip install "mcp-server-for-splunk[itsi]", enabled per client with X-MCP-Toolsets: splunk,itsi or MCP_DEFAULT_TOOLSETS) or standalone (pip install mcp-itsi-server). It uses the same X-Splunk-* headers. See the ITSI getting started guide.

Run with Docker

docker-compose.yml runs the MCP server behind Traefik on http://localhost:8003/mcp, together with the MCP Inspector. docker-compose-splunk.yml adds a Splunk container (so1) for local testing; bring your own Splunk license if you need one. See the deployment guide.

Optional: Sentry and OpenTelemetry

  • pip install "mcp-server-for-splunk[sentry]" and set SENTRY_DSN. See Sentry monitoring.

  • pip install "mcp-server-for-splunk[otel]" and set OTEL_EXPORTER_OTLP_ENDPOINT. See OpenTelemetry tracing.

Contributing

uv run generate-tool     # scaffold a new tool
uv run validate-tools    # validate tool implementations

See CONTRIBUTING.md, contrib/README.md, AGENTS.md, the Code of Conduct, the Security policy and Governance. Questions and bugs go to GitHub Issues.

About

Maintained by Deslicer. Deslicer uses this server in its product, where it's documented at deslicer.ai/docs/integrations/splunk-mcp. Splunk is a trademark of Splunk LLC; this project is not affiliated with or endorsed by Splunk.

License

Apache 2.0

Available Tools

57 tools
create_alertCreate AlertA

Create a Splunk alert (a scheduled saved search with trigger conditions). Actions can be any installed alert action, including custom ones, and more than one action is allowed. Call list_alert_actions first for custom action names and param keys.

Inputs: name (required), search (required), cron_schedule (required), app, +13 more.

create_configCreate ConfigA

Creates or updates a stanza in a Splunk .conf file at the app level. Uses REST first, with SDK fallback. Defaults to the current session owner and app 'search' when not provided. Will only overwrite existing keys when overwrite=true; otherwise, only new keys are added.

Inputs: stanza (required), settings (required), conf_file (required), app, +2 more.

create_dashboardCreate DashboardA

Create a new dashboard in Splunk. Accepts Classic Simple XML (string) or Dashboard Studio JSON (object/string) via eai:data. Optionally overwrite if it exists and set sharing/permissions (ACL).

Inputs: name (required), definition (required), app, label, +8 more.

create_kvstore_collectionCreate Kvstore CollectionA

Create a KV Store collection with optional fields and indexing. Use this to provision a new collection for lookups or persisted configuration in a specific app.

Inputs: app (required), collection (required), fields, replicated, +2 more.

delete_alertDelete AlertA

Delete a Splunk alert. Alerts are saved searches, so this removes that saved search. Requires confirm=true. Use app and owner when the name exists in more than one namespace.

Inputs: name (required), app, owner, confirm.

discover_splunk_docsDiscover Splunk DocsA

Discover all available Splunk documentation resources with examples and usage patterns. Returns a comprehensive guide showing available documentation types, URI patterns, and quick access links. Perfect for understanding what documentation is available and how to access it through the documentation tools.

Returns embedded resource with discovery guide including:

  • Static documentation resources (cheat sheet, etc.)

  • Dynamic documentation patterns (SPL reference, troubleshooting, admin guides)

  • Version support information

  • Quick access examples for common documentation needs

  • Usage patterns for agentic frameworks

Inputs: no named parameters.

enhance_tool_descriptionEnhance Tool DescriptionA

Analyzes existing MCP tools and enhances their descriptions with detailed argument definitions, parameter examples, and usage patterns. Use this tool when you need to improve or generate better documentation for a tool, such as adding examples or clarifying parameters. This tool examines the current tool's metadata, inspects its execute method signature, and generates comprehensive documentation improvements.

Inputs: tool_name (required), generate_examples, include_response_format.

get_admin_guideGet Admin GuideC

Get detailed Splunk administration documentation for specific topics. Returns comprehensive administration guides with configuration, management, and best practices as an embedded resource.

Inputs: topic (required), version, auto_detect_version.

get_cim_referenceGet Cim ReferenceB

Get detailed Splunk CIM data model documentation with field specifications and configuration examples. Returns comprehensive reference including field mappings, tagging requirements, and implementation guidance.

Inputs: model (required), version.

get_config_specGet Config SpecA

Get detailed Splunk configuration file specification documentation. Returns comprehensive reference with all configuration options, syntax, and examples.

Inputs: config (required).

get_configurationsGet ConfigurationsA

Retrieves Splunk configuration settings from specified .conf files. Use this tool when you need to access or inspect Splunk configurations, such as for troubleshooting, auditing, or understanding settings in files like props.conf or inputs.conf. Access settings from any Splunk configuration file (props.conf, transforms.conf, inputs.conf, outputs.conf, etc.) either by entire file or specific stanza. Returns structured configuration data showing all settings and their values.

Inputs: conf_file (required), app, owner, stanza.

get_dashboard_definitionGet Dashboard DefinitionA

Get the raw definition of a specific dashboard. Returns the complete dashboard source (Simple XML or Dashboard Studio JSON), type, app context, owner, and Splunk Web viewing URL.

Inputs: name (required), app, owner.

get_executed_workflowsGet Executed WorkflowsA

Retrieve executed workflows for the current session. If 'id' is provided, returns that single record (if it belongs to this session). If 'workflow_id' is provided, filters the list to that workflow. Otherwise returns a paginated list of latest results per workflow for this session.

Inputs: id, limit, offset, workflow_id.

get_kvstore_dataGet Kvstore DataA

Get documents from a KV Store collection with optional MongoDB-style query filtering. Use this to fetch lookup/configuration data or narrow results by field values.

Inputs: collection (required), app, query.

get_metadataGet MetadataA

Retrieve distinct metadata values for a given index to aid query construction. Use this when you need hosts, sourcetypes, or sources in an index. If has_more is true, call again with offset=next_offset.

Inputs: index (required), field, limit, offset, +2 more.

get_saved_search_detailsGet Saved Search DetailsA

Get comprehensive details about a specific saved search including configuration, metadata, scheduling, permissions, and alert actions. Returns detailed information about saved search properties, execution settings, and access control configuration. Essential for troubleshooting, auditing, and understanding saved search configurations.\n\nArgs:\n name (str): Name of the saved search to inspect (required)\n app (str, optional): Application context for saved search lookup\n owner (str, optional): Owner context for saved search lookup\n\nResponse Format:\nReturns dictionary with 'status', 'name', 'details', and 'retrieved_at' fields. The 'details' field contains comprehensive nested information including:\n- basic_info: Name, description, search query, visibility\n- scheduling: Schedule configuration and timing\n- dispatch: Time range and execution settings\n- permissions: Access control and sharing settings\n- actions: Email, script, and other alert actions\n- alert: Alert conditions and suppression settings\n- metadata: Creation timestamps and authorship

Inputs: name (required), app, owner.

get_search_job_infoGet Search Job InfoA

Get status/properties/messages for a Splunk search job by job id (sid). Use this after run_splunk_search returns a job_id when you want to poll progress or inspect errors without re-running the search.

Inputs: job_id (required), include_raw_content.

get_search_job_resultsGet Search Job ResultsA

Fetch one page of results from a completed Splunk search job. Use after run_oneshot_search, run_splunk_search, or execute_saved_search when has_more is true. Pass job_id and offset=next_offset.

Inputs: job_id (required), count, offset.

get_spl_referenceGet Spl ReferenceB

Get detailed reference documentation for specific SPL (Search Processing Language) commands. Returns comprehensive documentation with syntax, examples, and usage patterns as an embedded resource.

Inputs: command (required), version, auto_detect_version.

get_splunk_cheat_sheetGet Splunk Cheat SheetA

Get the comprehensive Splunk SPL cheat sheet with commands, regex patterns, and usage examples. Returns the complete cheat sheet as an embedded resource with actual markdown content, perfect for quick reference during SPL query development and troubleshooting.

Returns embedded resource with complete SPL reference content including:

  • Core SPL commands and syntax

  • Regular expression patterns

  • Statistical functions

  • Time modifiers and formatting

  • Search optimization tips

  • Common use cases and examples

Inputs: no named parameters.

get_splunk_documentationGet Splunk DocumentationA

Retrieve any Splunk documentation by URI pattern. This tool wraps existing documentation resources and returns embedded resources with actual content, making them compatible with agentic frameworks that don't support MCP resources natively. Supports all documentation types including cheat sheets, troubleshooting guides, SPL references, and admin guides.

Inputs: doc_uri (required), auto_detect_version.

get_splunk_healthGet Splunk HealthA

Check Splunk server connectivity and return comprehensive health status information including server version, connection status, and system information. Supports both server-configured connections and custom connection parameters for testing different Splunk instances. Essential for connectivity troubleshooting and server validation.\n\nArgs:\n splunk_host (str, optional): Splunk server hostname or IP address (e.g., 'localhost', 'splunk.example.com', '10.1.1.100')\n splunk_port (int, optional): Splunk management port, typically 8089 (e.g., 8089, 8000, 9997)\n splunk_username (str, optional): Splunk username for authentication (e.g., 'admin', 'splunk', 'analyst')\n splunk_password (str, optional): Splunk password for authentication\n splunk_scheme (str, optional): Connection scheme - 'http' or 'https'\n splunk_verify_ssl (bool, optional): Whether to verify SSL certificates\n\nNote: If connection parameters are not provided, uses the server's configured connection.\n\nResponse Format:\nReturns dictionary with 'status', 'version', 'server_name', and 'connection_source' fields. Status can be 'connected' or 'error'.

Inputs: splunk_host, splunk_port, splunk_scheme, splunk_password, +2 more.

get_studio_topicGet Studio TopicA

Get Dashboard Studio documentation for a specific topic. Returns comprehensive documentation with examples, schema details, and best practices.

Inputs: topic (required), version.

get_troubleshooting_guideGet Troubleshooting GuideB

Get detailed Splunk troubleshooting documentation for specific topics. Returns comprehensive troubleshooting guides with diagnostics, solutions, and best practices as an embedded resource.

Inputs: topic (required), version, auto_detect_version.

list_admin_topicsList Admin TopicsA

List all available admin guide topics with descriptions. Returns a structured list of administration topics that can be used with the get_admin_guide tool. Each topic includes:

  • Topic key for use in API calls

  • Description of what the topic covers

  • Example usage

Use this tool to discover what admin documentation is available before calling get_admin_guide with specific topics.

Inputs: no named parameters.

list_alert_actionsList Alert ActionsA

List alert actions installed on the connected Splunk instance, including custom actions. Returns name, label, description, is_custom, app, and param_keys. Call this before create_alert or update_alert when using a custom action so you pass the correct action name and param keys.

Outputs: 'alert_actions' array and 'count'. Security: results are constrained by the authenticated user's permissions.

Inputs: no named parameters.

list_appsList AppsA

Retrieve installed Splunk applications including name, label, version, description, author, and visibility. If has_more is true, call again with offset=next_offset.

Inputs: count, offset, search_filter.

list_available_topicsList Available TopicsA

List all available documentation topics and URI patterns for discovery. This tool helps LLMs and agentic frameworks understand what documentation topics are available across different categories:

Returns structured information about:

  • Available troubleshooting topics with descriptions

  • Available admin guide topics

  • Common SPL commands with examples

  • URI patterns for accessing documentation

  • Version support information

Use this tool first to discover what documentation is available before requesting specific topics.

Inputs: no named parameters.

list_cim_data_modelsList Cim Data ModelsA

List all available Splunk Common Information Model (CIM) data models. Returns structured information about all 26 CIM data models including name, description, use cases, required tags, and deprecation status. Use this to discover what CIM models are available before calling get_cim_reference.

Inputs: no named parameters.

list_config_filesList Config FilesA

List common Splunk configuration files (.conf) with descriptions. Returns structured information about configuration files that can be used with get_config_spec() to retrieve detailed specification documentation.

Inputs: no named parameters.

list_dashboardsList DashboardsA

List dashboards in Splunk (Simple XML and Dashboard Studio). Returns metadata including name, label, type (classic/studio), app, owner, permissions, sharing level, last updated, and Splunk Web viewing URLs.

Inputs: app, count, owner, offset, +4 more.

list_dashboard_studio_topicsList Dashboard Studio TopicsA

List all available Dashboard Studio documentation topics. Returns structured information about available topics including cheatsheet, definition schema, visualizations guide, and configuration options. Use this to discover what Dashboard Studio documentation is available.

Inputs: no named parameters.

list_indexesList IndexesA

Retrieve accessible data indexes from the Splunk instance. Use this to discover which indexes you can query when building searches. Excludes internal indexes (name starts with _) unless include_internal is true. If has_more is true, call again with offset=next_offset.

Inputs: count, offset, search_filter, include_internal.

list_kvstore_collectionsList Kvstore CollectionsA

List KV Store collections with basic schema details. Use this to discover available KV stores for lookups, configuration, or caching, optionally filtering by app.

Outputs: array of collections with name, fields, accelerated_fields, replicated; and total count. Security: results are constrained by the authenticated user's permissions.Args: app (str, optional): Optional app name to filter collections count (int, optional): Page size. Default 50. Maximum 200. Values above 200 are capped to 200; 0 uses 50. Do not send a count larger than 200. offset (int, optional): Result offset (default 0)

Inputs: app, count, offset.

list_lookup_definitionsList Lookup DefinitionsB

List lookup definitions (transforms) in Splunk. Returns metadata including name, type, associated filename, fields configuration, app, owner, and permissions. Lookup definitions specify how CSV files or external lookups are used in searches.

Inputs: app, count, owner, offset, +1 more.

list_lookup_filesList Lookup FilesA

List CSV lookup table files in Splunk. Returns metadata including name, filename, app, owner, sharing/permissions, and last updated time. Use this to discover available lookup files. To view the actual CSV content, use run_splunk_search with '| inputlookup '.

Inputs: app, count, owner, offset, +1 more.

list_saved_searchesList Saved SearchesA

List saved searches with ownership, schedule, visibility, and permission metadata. If has_more is true, call again with offset=next_offset. Full SPL is truncated to 200 characters; use get_saved_search_details for the complete search.

Inputs: app, count, owner, offset, +3 more.

list_sourcesList SourcesA

Discover data sources using the metadata command. Sources can be numerous; results are paged. If has_more is true, call again with offset=next_offset.

Inputs: count, index, offset.

list_sourcetypesList SourcetypesA

Discover sourcetypes using the metadata command. Large environments are paged. If has_more is true, call again with offset=next_offset.

Inputs: count, index, offset.

list_spl_commandsList Spl CommandsA

List common SPL (Search Processing Language) commands with descriptions. Returns a structured list of SPL commands that can be used with the get_spl_reference tool. Each command includes:

  • Command name for use in API calls

  • Description of what the command does

  • Example usage

Note: This list includes the most common commands, but get_spl_reference supports many more SPL commands beyond those listed here.

Inputs: no named parameters.

list_triggered_alertsList Triggered AlertsA

List fired alerts and their details. Use this to review recent triggered alerts, including saved search name, trigger time, owner/app, and trigger reason. Supports a name filter and a max results cap. Note: Splunk's fired alerts feed may not strictly filter by time; earliest/latest are advisory.

Inputs: count, search, latest_time, earliest_time.

list_troubleshooting_topicsList Troubleshooting TopicsA

List all available troubleshooting topics with descriptions. Returns a structured list of troubleshooting topics that can be used with the get_troubleshooting_guide tool. Each topic includes:

  • Topic key for use in API calls

  • Human-readable title

  • Description of what the topic covers

  • Example usage

Use this tool to discover what troubleshooting documentation is available before calling get_troubleshooting_guide with specific topics.

Inputs: no named parameters.

list_usersList UsersA

Retrieve Splunk users and their properties (username, realname, email, roles, type, defaultApp). If has_more is true, call again with offset=next_offset.

Inputs: count, offset, search_filter.

list_workflowsList WorkflowsA

List all available workflows from core and contrib sources.

This tool provides a comprehensive listing of troubleshooting workflows available in the MCP Server for Splunk system. It discovers and lists both built-in core workflows and user-contributed workflows from the contrib directory.

Output Formats:

  • detailed: Complete workflow information with descriptions and metadata (default)

  • summary: Brief overview with workflow IDs, names, and basic statistics

  • ids_only: Simple list of workflow IDs for programmatic use

  • by_category: Workflows organized by category (security, performance, etc.)

Workflow Sources:

  • Core Workflows: Built-in system workflows (missing_data_troubleshooting, performance_analysis)

  • Contrib Workflows: User-contributed workflows from contrib/workflows/ directory

Key Information Provided:

  • Workflow ID and human-readable name

  • Description and purpose of each workflow

  • Number of tasks and dependency information

  • Source (core vs contrib) and validation status

  • Category and organizational information

  • Integration instructions for dynamic troubleshoot agent

When to use

  • Use when you need to discover which workflows exist before running one

  • Use to filter by category or get just workflow IDs for programmatic selection

Arguments

  • format_type (optional): "detailed" (default), "summary", "ids_only", or "by_category"

  • include_core (optional): Include built-in workflows (default: true)

  • include_contrib (optional): Include contrib workflows (default: true)

  • category_filter (optional): Filter by category (e.g., "security", "performance")

Outputs

  • Workflow listings in the requested format, discovery metadata, and category summaries

  • Note: Only workflows available in this server are listed (core + any contrib present)

Perfect for discovering available troubleshooting capabilities and selecting the right workflow for specific Splunk problems.

Inputs: format_type, include_core, category_filter, include_contrib.

manage_appsManage AppsA

Manage Splunk application lifecycle operations including enable, disable, restart, and reload actions. Use this tool when you need to change the state of a Splunk app, such as enabling a disabled app, restarting for configuration changes, or troubleshooting issues. This tool provides essential app management capabilities for maintaining Splunk environments, troubleshooting app issues, and controlling app availability. Operations affect app state and may require Splunk restart for some changes to take effect.

Inputs: action (required), app_name (required).

meMeA

Retrieve information about the currently authenticated Splunk user. Use this tool whenever you need to check the current user's details, permissions, roles, or capabilities, such as for debugging access issues, understanding available actions, or verifying user context in Splunk environments. This tool requires no arguments.

Response Format: Returns a dictionary with 'status' field indicating success/error and 'data' containing:

  • username: Current authenticated username

  • realname: Full display name

  • email: Email address

  • roles: Array of assigned role names

  • type: User type (e.g., 'Splunk')

  • defaultApp: Default application for the user

  • capabilities: Array of capabilities granted through roles

Inputs: no named parameters.

sentry_testSentry TestA

Test Sentry integration by sending traces, spans, and optionally errors.

This tool creates a complete transaction with nested spans to verify that tracing is working correctly in your Sentry dashboard.

Inputs: test_type, trigger_error. Returns: object

update_alertUpdate AlertA

Update an existing Splunk alert (a scheduled saved search with trigger conditions and optional actions). Omit any field you do not want to change. Search, schedule, trigger, and tracking fields are always patched.

actions_mode (only applies when actions is sent): patch (default): Change only the listed actions and params. Other actions and unspecified params on those actions stay as they are. Use this to change one setting (for example only email.to). Set enabled=false on an action to turn that action off without touching the others. override: The actions list becomes the full set. Listed actions are enabled with the given params; any action currently on the alert but missing from the list is disabled. Use this when you want the alert to have exactly these actions.

Call list_alert_actions first for custom actions and their param names.

Inputs: name (required), app, owner, search, +14 more.

user_agent_infoUser Agent InfoA

Return request headers and context details for debugging.

Includes all HTTP headers (with sensitive values masked) and core context metadata.

Inputs: no named parameters. Returns: result

workflow_builderWorkflow BuilderA

Interactive tool for creating, editing, and validating custom workflows.

This tool provides comprehensive workflow development capabilities for creating custom troubleshooting workflows that integrate with the MCP Server for Splunk dynamic troubleshooting system. It supports multiple modes of operation to accommodate different workflow development needs.

Modes:

  • create: Interactive workflow creation with guided prompts

  • edit: Modify existing workflow definitions with validation

  • validate: Comprehensive validation of workflow structure and dependencies

  • template: Generate pre-built workflow templates for common use cases

  • process: Process and validate finished workflow definitions

Key Capabilities:

  • Step-by-step workflow creation with validation

  • Template generation for common workflow patterns

  • Comprehensive validation including dependency analysis

  • JSON output generation with proper formatting

  • Integration testing and compatibility verification

  • Processing of complete workflow definitions

Validation Features:

  • Schema compliance verification

  • Circular dependency detection

  • Tool availability checking

  • Context variable validation

  • Integration compatibility assessment

When to use

  • Use to create new workflows from templates or from scratch

  • Use to edit or validate an existing workflow JSON before contributing or running it

  • Use to generate templates and examples for standard categories (security, performance, data quality)

Arguments

  • mode (optional): "create", "edit", "validate", "template", or "process" (default: "create")

  • workflow_data (optional): JSON string or object when editing/validating/processing

  • template_type (optional): Template key when mode="template" (e.g., "minimal", "security")

  • file_path (optional): Path to workflow file when mode="validate"

Outputs

  • Structured results including validation summaries, templates, or processed workflow data

  • Ready-to-validate workflow JSON for discovery via list_workflows

Perfect for workflow contributors who need guided assistance in creating well-structured, validated workflows for contrib or core catalogs.

Inputs: mode, file_path, template_type, workflow_data.

workflow_requirementsWorkflow RequirementsA

Get comprehensive requirements and schema information for creating custom workflows.

This tool provides detailed documentation for creating custom troubleshooting workflows that integrate with the MCP Server for Splunk dynamic troubleshooting system. It includes complete schema definitions, available tools, context variables, validation rules, and integration guidelines.

Output Formats:

  • detailed: Complete requirements with examples and explanations (default)

  • schema: JSON schema definitions for validation tools

  • quick: Quick reference for experienced contributors

  • examples: Example workflow structures and common patterns

Key Information Provided:

  • WorkflowDefinition and TaskDefinition schema structures

  • Complete list of available Splunk tools with descriptions

  • Context variables and their usage patterns

  • Validation rules and constraints

  • Integration points with dynamic troubleshoot agent

  • Best practices for workflow design and task creation

When to use

  • Use at the beginning of authoring to understand schemas and constraints

  • Use during development for quick reference to context variables and available tools

  • Use in CI/validation tooling to fetch schemas for automated checks

Arguments

  • format_type (optional): "detailed" (default), "schema", "quick", or "examples"

Outputs

  • Full schema and best practices (detailed), just schemas (schema), quick cheat sheet (quick), or examples

Perfect for workflow contributors who need to understand the requirements and structure for creating custom diagnostic workflows.

Inputs: format_type.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    B3.2/5.0

    Scored across 57 tools

    Disambiguation2/5

    There are large clusters of near-overlapping tools, especially around documentation (discover_splunk_docs, list_available_topics, get_splunk_documentation, list_admin_topics/get_admin_guide, list_troubleshooting_topics/get_troubleshooting_guide) and workflow management (list_workflows, workflow_builder, workflow_requirements, get_executed_workflows). Search execution also has three similar entry points (run_splunk_search, run_oneshot_search, execute_saved_search), making tool selection error-prone.

    Naming Consistency4/5

    Most tools follow a clear list/get/create/update/delete/run prefix pattern with snake_case, so the overall convention is predictable. Minor deviations like 'me', 'workflow_builder', 'workflow_requirements', 'sentry_test', and 'user_agent_info' break the verb_noun pattern but are a small minority.

    Tool Count1/5

    With 57 tools, this server is far beyond the 16-25 heavy range and crosses the 50+ extreme threshold. The sheer number makes discovery and selection difficult, especially when many tools serve documentation or workflow meta-purposes rather than core Splunk operations.

    Completeness2/5

    Search, saved search, and alert lifecycles are well covered, but other claimed areas are incomplete: dashboards can be created/list/retrieved but not deleted, KV store collections can be created/list/read but not written to or deleted, and lookups, indexes, and users are mostly read-only. These gaps will cause agent dead ends in administrative workflows.

    Maintenance

    ActivityActive
    ResponsivenessUsually handled

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables 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.
      -
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI-driven SOC investigations by providing automated Splunk querying, threat intelligence enrichment, and response actions through natural language. Includes tools for IP pivoting, lateral movement detection, and label harvesting.
      31
      1
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to interact with Splunk SIEM and TheHive SOAR through a unified MCP interface, providing 12 tools for alert triage, case management, and security operations.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to search, manage, and analyze data in Splunk instances through the Model Context Protocol. Supports SPL queries, index management, alerts, dashboards, and more.
      2,353 PyPI
      1
      Apache 2.0