Skip to main content
Glama

list_users

Retrieve all user accounts from Splunk Enterprise/Cloud to manage access and permissions. Requires administrator privileges.

Instructions

List all Splunk users (requires admin privileges)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function for the 'list_users' MCP tool. It connects to Splunk, iterates over all users, extracts their details including roles and capabilities, and returns a list of user dictionaries. Registered via @mcp.tool() decorator.
    @mcp.tool()
    async def list_users() -> List[Dict[str, Any]]:
        """List all Splunk users (requires admin privileges)"""
        try:
            service = get_splunk_connection()
            logger.info("👥 Fetching Splunk users...")
                    
            users = []
            for user in service.users:
                try:
                    if hasattr(user, 'content'):
                        # Ensure roles is a list
                        roles = user.content.get('roles', [])
                        if roles is None:
                            roles = []
                        elif isinstance(roles, str):
                            roles = [roles]
                        
                        # Ensure capabilities is a list
                        capabilities = user.content.get('capabilities', [])
                        if capabilities is None:
                            capabilities = []
                        elif isinstance(capabilities, str):
                            capabilities = [capabilities]
                        
                        user_info = {
                            "username": user.name,
                            "real_name": user.content.get('realname', "N/A") or "N/A",
                            "email": user.content.get('email', "N/A") or "N/A",
                            "roles": roles,
                            "capabilities": capabilities,
                            "default_app": user.content.get('defaultApp', "search") or "search",
                            "type": user.content.get('type', "user") or "user"
                        }
                        users.append(user_info)
                        logger.debug(f"✅ Successfully processed user: {user.name}")
                    else:
                        # Handle users without content
                        user_info = {
                            "username": user.name,
                            "real_name": "N/A",
                            "email": "N/A",
                            "roles": [],
                            "capabilities": [],
                            "default_app": "search",
                            "type": "user"
                        }
                        users.append(user_info)
                        logger.warning(f"⚠️ User {user.name} has no content, using default values")
                except Exception as e:
                    logger.warning(f"⚠️ Error processing user {user.name}: {str(e)}")
                    continue
                
            logger.info(f"✅ Found {len(users)} users")
            return users
            
        except Exception as e:
            logger.error(f"❌ Error listing users: {str(e)}")
            raise

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

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