MCP Server for Splunk
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPLUNK_HOST | Yes | Your Splunk host | |
| SPLUNK_PORT | No | Your Splunk port | |
| SPLUNK_SCHEME | No | Your Splunk scheme (http/https) | |
| SPLUNK_PASSWORD | Yes | Your Splunk password | |
| SPLUNK_USERNAME | Yes | Your Splunk username | |
| SPLUNK_VERIFY_SSL | No | Whether to verify SSL 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_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. |
| list_appsA | Retrieve installed Splunk applications including name, label, version, description, author, and visibility. If has_more is true, call again with offset=next_offset. |
| list_usersA | Retrieve Splunk users and their properties (username, realname, email, roles, type, defaultApp). If has_more is true, call again with offset=next_offset. |
| meA | 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:
|
| enhance_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. |
| manage_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. |
| create_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. |
| create_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. |
| delete_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. |
| list_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. |
| list_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. |
| update_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. |
| get_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. |
| list_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. |
| create_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). |
| discover_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:
|
| get_admin_guideC | Get detailed Splunk administration documentation for specific topics. Returns comprehensive administration guides with configuration, management, and best practices as an embedded resource. |
| get_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. |
| get_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:
|
| get_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. |
| get_troubleshooting_guideB | Get detailed Splunk troubleshooting documentation for specific topics. Returns comprehensive troubleshooting guides with diagnostics, solutions, and best practices as an embedded resource. |
| list_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:
Use this tool to discover what admin documentation is available before calling get_admin_guide with specific topics. |
| list_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:
Use this tool first to discover what documentation is available before requesting specific topics. |
| list_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:
Note: This list includes the most common commands, but get_spl_reference supports many more SPL commands beyond those listed here. |
| list_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:
Use this tool to discover what troubleshooting documentation is available before calling get_troubleshooting_guide with specific topics. |
| get_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. |
| get_config_specA | Get detailed Splunk configuration file specification documentation. Returns comprehensive reference with all configuration options, syntax, and examples. |
| get_studio_topicA | Get Dashboard Studio documentation for a specific topic. Returns comprehensive documentation with examples, schema details, and best practices. |
| list_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. |
| list_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. |
| list_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. |
| get_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'. |
| create_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. |
| get_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. |
| list_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) |
| list_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. |
| list_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 '. |
| get_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. |
| list_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. |
| list_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. |
| list_sourcetypesA | Discover sourcetypes using the metadata command. Large environments are paged. If has_more is true, call again with offset=next_offset. |
| create_saved_searchA | Create a saved search (report/automation) with optional scheduling and sharing. Use this to persist useful SPL queries and optionally schedule them via cron.\n\nOutputs: creation status and the applied configuration.\nSecurity: visibility and execution are constrained by permissions and chosen sharing level. |
| delete_saved_searchC | Delete a saved search with confirmation and safety checks |
| execute_saved_searchA | Run a saved search by name with optional time overrides and mode selection. Use this to execute existing reports/automations quickly. Choose 'oneshot' for immediate results or 'job' for progress tracking and large result sets.\n\nOutputs: first result page, paging fields, job_id, and Splunk Web job links. If has_more is true, call get_search_job_results with job_id and offset=next_offset.\nSecurity: execution and results are constrained by the authenticated user's permissions. |
| get_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 |
| get_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. |
| run_splunk_searchA | Run a Splunk search as a tracked job with progress and stats. Use this for complex or long‑running queries (joins, transforms, large scans) where you need job status, scan/event counts, and reliable result retrieval. Prefer this over oneshot when the query may exceed ~30s or requires progress visibility. Waits up to MCP_SEARCH_WAIT_SECONDS (default 15) then returns job_id even if the job is still running. If is_done is false, poll get_search_job_info, then get_search_job_results. If has_more is true after completion, page with offset=next_offset. count/max_results of 0 is treated as the default page size (50), max 100. Security: results are constrained by the authenticated user's permissions. |
| list_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. |
| run_oneshot_searchA | Run a Splunk search, wait for completion, and return one page of results. A job is kept so later pages can be fetched with get_search_job_results. Prefer run_splunk_search for long-running queries. If has_more is true, call get_search_job_results with job_id and offset=next_offset. |
| update_saved_searchA | Update an existing saved search's configuration including query, scheduling, and other properties. Allows selective modification of saved search parameters while preserving unchanged settings. Supports updating search logic, time ranges, scheduling configuration, and visibility settings for flexible search management.\n\nArgs:\n name (str): Name of the saved search to update (required)\n search (str, optional): New SPL search query\n description (str, optional): New description text\n earliest_time (str, optional): New default earliest time (e.g., '-24h@h', '-7d', '2024-01-01T00:00:00')\n latest_time (str, optional): New default latest time (e.g., 'now', '@d', '2024-01-02T00:00:00')\n is_scheduled (bool, optional): Enable or disable scheduled execution\n cron_schedule (str, optional): New cron expression for scheduling\n is_visible (bool, optional): Show or hide in Splunk UI\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', 'updated', 'changes_made', and 'updated_at' fields. |
| get_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. |
| get_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. |
| list_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:
Workflow Sources:
Key Information Provided:
When to use
Arguments
Outputs
Perfect for discovering available troubleshooting capabilities and selecting the right workflow for specific Splunk problems. |
| workflow_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:
Key Capabilities:
Validation Features:
When to use
Arguments
Outputs
Perfect for workflow contributors who need guided assistance in creating well-structured, validated workflows for contrib or core catalogs. |
| workflow_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:
Key Information Provided:
When to use
Arguments
Outputs
Perfect for workflow contributors who need to understand the requirements and structure for creating custom diagnostic workflows. |
| sentry_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. |
| user_agent_infoA | Return request headers and context details for debugging. Includes all HTTP headers (with sensitive values masked) and core context metadata. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| mcp_overview | Generate an overview of MCP server capabilities |
| tool_usage_guide | Guide for using specific MCP tools |
| workflow_creation_guide | Guide for creating custom workflows |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| dashboard_studio_discovery | Discovery index of all Dashboard Studio documentation topics and resource templates |
| splunk_cheat_sheet | Splunk SPL cheat sheet with commands, regex, and query examples |
| documentation_discovery | Discover available Splunk documentation resources |
| spl_reference | Splunk SPL command and function reference documentation |
| cim_discovery | Discover available Splunk CIM data models for data normalization |
| README Documentation | Project README file with enhanced formatting |
| Changelog | Project changelog and version history |
| Splunk Health Status | Real-time health monitoring for Splunk components (includes filtered customer indexes) |
| Splunk Apps Installed | Information about installed Splunk applications and add-ons with capability analysis |
| Splunk Indexes | List of accessible Splunk indexes (excluding internal indexes) |
| Splunk Saved Searches | List of accessible Splunk saved searches |
| Recent Search Results | Recent search results from client's Splunk instance |
| Splunk Cheat Sheet | Comprehensive Splunk cheat sheet with search commands, SPL syntax, and common patterns |
| SPL Reference | Comprehensive SPL (Search Processing Language) reference with syntax and examples |
| Splunk Troubleshooting Guide | Comprehensive troubleshooting guide for common Splunk issues and solutions |
| Splunk Administration Guide | Comprehensive administration guide for Splunk deployment and management |
| health_check_resource | Health check endpoint for Docker and load balancers |
| server_info | Server information and capabilities |
| hot_reload | Hot reload components for development (only works when MCP_HOT_RELOAD=true) |
TDQS
Scored across 57 tools
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.
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.
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.
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.