Skip to main content
Glama
deslicer

MCP Server for Splunk

apps.py3.31 kB
""" Tool for listing Splunk applications. """ from typing import Any from fastmcp import Context from src.core.base import BaseTool, ToolMetadata from src.core.utils import log_tool_execution class ListApps(BaseTool): """ List all installed Splunk apps. """ METADATA = ToolMetadata( name="list_apps", description=( "Retrieve comprehensive inventory of all installed Splunk applications including metadata " "(name, label, version, description, author, visibility status). " "Use this tool when you need to list all apps in the Splunk environment, such as for " "auditing, management, or troubleshooting compatibility. " "This tool requires no arguments.\n\n" "Returns detailed app catalog with 54+ apps typically found in enterprise environments, " "including core Splunk apps, add-ons (TAs), custom applications, and third-party integrations." ), category="admin", tags=["apps", "administration", "management", "inventory", "catalog", "audit"], requires_connection=True, ) async def execute(self, ctx: Context) -> dict[str, Any]: """ Retrieve comprehensive inventory of all Splunk applications. Provides detailed metadata for each app including: - name: Internal app directory name - label: Display name shown in Splunk Web - version: App version number (if available) - description: App purpose and functionality - author: App developer/vendor - visible: UI visibility ("1" = visible, "0" = hidden) Returns: Dict containing: - status: "success" or "error" - count: Total number of apps found - apps: List of app objects with detailed metadata Typical enterprise environments contain 50+ apps including: - Core Splunk apps (search, launcher, dmc) - Technology Add-ons (Splunk_TA_*) - Custom business applications - Third-party integrations and visualizations """ log_tool_execution("list_apps") is_available, service, error_msg = self.check_splunk_available(ctx) if not is_available: return self.format_error_response(error_msg) self.logger.info("Retrieving list of Splunk apps") await ctx.info("Retrieving list of Splunk apps") try: apps = [] for app in service.apps: apps.append( { "name": app.name, "label": app.content.get("label"), "version": app.content.get("version"), "description": app.content.get("description"), "author": app.content.get("author"), "visible": app.content.get("visible"), } ) await ctx.info(f"Found {len(apps)} apps") return self.format_success_response({"count": len(apps), "apps": apps}) except Exception as e: self.logger.error(f"Failed to list apps: {str(e)}") await ctx.error(f"Failed to list apps: {str(e)}") return self.format_error_response(str(e))

Latest Blog Posts

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/deslicer/mcp-for-splunk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server