Looker Admin MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "LOOKERSDK_BASE_URL=${LOOKERSDK_BASE_URL}" -e "LOOKERSDK_CLIENT_ID=${LOOKERSDK_CLIENT_ID}" -e "LOOKERSDK_CLIENT_SECRET=${LOOKERSDK_CLIENT_SECRET}" looker-admin -- docker run --rm -i -e MCP_MODE=stdio -e "LOOKERSDK_BASE_URL=${.env:LOOKERSDK_BASE_URL}" -e "LOOKERSDK_CLIENT_ID=${.env:LOOKERSDK_CLIENT_ID}" -e "LOOKERSDK_CLIENT_SECRET=${.env:LOOKERSDK_CLIENT_SECRET}" -e "LOOKERSDK_VERIFY_SSL=${.env:LOOKERSDK_VERIFY_SSL}" looker-mcp:latest
Required:LOOKERSDK_BASE_URLLOOKERSDK_CLIENT_IDLOOKERSDK_CLIENT_SECRET+ 1 optional
README.md

Provides 60+ admin tools for managing Looker users, groups, roles, and content.

Looker Admin MCP

MCP server for Looker administration. Provides 60+ admin tools for user, group, role, schedule, alert, and content access management through the Model Context Protocol (MCP).

Note: This server focuses on administration tasks, complementing Google's MCP Toolbox for Databases which handles analytics and data querying.

Features

Category Tools Operations
User Management 9 CRUD, role assignment
Group Management 9 CRUD, membership
Role Management 11 Roles, permissions, model sets
Scheduled Plans 8 CRUD, run-once
Alerts 7 CRUD, follow/unfollow
Content Access 8 Folders, permissions
System 8 Sessions, user attributes

Safety

Destructive operations (delete_user, delete_group, delete_role, etc.) require confirm=True parameter to execute.

# Example: Delete a user
delete_user(user_id=123)                    # Returns warning, doesn't delete
delete_user(user_id=123, confirm=True)      # Actually deletes

Prerequisites

Quick Start

  1. Clone and setup:

    git clone <repository-url>
    cd looker-mcp
    uv venv && source .venv/bin/activate
    uv pip install -e .
    
  2. Configure credentials:

    cp .env.example .env
    # Edit .env with your Looker credentials
    
  3. Build Docker image:

    ./docker-build-run.sh build
    

MCP Client Configuration

Add to your client's MCP config (e.g., .cursor/mcp.json):

{
    "mcpServers": {
        "looker-admin": {
            "command": "docker",
            "args": [
                "run", "--rm", "-i",
                "-e", "MCP_MODE=stdio",
                "-e", "LOOKERSDK_BASE_URL=${.env:LOOKERSDK_BASE_URL}",
                "-e", "LOOKERSDK_CLIENT_ID=${.env:LOOKERSDK_CLIENT_ID}",
                "-e", "LOOKERSDK_CLIENT_SECRET=${.env:LOOKERSDK_CLIENT_SECRET}",
                "-e", "LOOKERSDK_VERIFY_SSL=${.env:LOOKERSDK_VERIFY_SSL}",
                "looker-mcp:latest"
            ]
        }
    }
}

Available Tools

User Management (9 tools)

  • looker_me - Get current authenticated user
  • list_users - List all users with pagination
  • search_users - Search by email, name, status
  • get_user - Get user details
  • create_user - Create new user
  • update_user - Update user info
  • delete_user - Delete user (requires confirm=True)
  • get_user_roles - Get user's roles
  • set_user_roles - Assign roles to user

Group Management (9 tools)

  • list_groups - List all groups
  • search_groups - Search groups by name
  • get_group - Get group details
  • create_group - Create new group
  • update_group - Rename group
  • delete_group - Delete group (requires confirm=True)
  • list_group_users - List members in group
  • add_user_to_group - Add user to group
  • remove_user_from_group - Remove user from group

Role Management (11 tools)

  • list_roles - List all roles
  • get_role - Get role details with permissions
  • create_role - Create new role
  • update_role - Update role
  • delete_role - Delete role (requires confirm=True)
  • list_permission_sets - List permission sets
  • get_permission_set - Get permission set details
  • list_model_sets - List model sets
  • get_model_set - Get model set details
  • create_model_set - Create new model set
  • list_role_users - List users with a role

Scheduled Plans (8 tools)

  • list_scheduled_plans - List all schedules
  • get_scheduled_plans_for_dashboard - Get dashboard schedules
  • get_scheduled_plans_for_look - Get look schedules
  • get_scheduled_plan - Get schedule details
  • create_scheduled_plan - Create new schedule
  • update_scheduled_plan - Update schedule
  • delete_scheduled_plan - Delete schedule (requires confirm=True)
  • run_scheduled_plan_once - Run schedule immediately

Alerts (7 tools)

  • search_alerts - Find alerts
  • get_alert - Get alert details
  • create_alert - Create new alert
  • update_alert - Update alert
  • delete_alert - Delete alert (requires confirm=True)
  • follow_alert - Subscribe to alert
  • unfollow_alert - Unsubscribe from alert

Content Access (8 tools)

  • list_folders - List folders
  • get_folder - Get folder details
  • get_folder_children - Get folder contents
  • get_folder_ancestors - Get folder hierarchy
  • search_folders - Search folders
  • get_content_metadata_access - Get permissions
  • update_content_metadata_access - Set permissions
  • get_content_access - Get detailed access rules

System Admin (8 tools)

  • list_user_sessions - List active sessions
  • delete_user_session - Kill session (requires confirm=True)
  • list_user_attributes - List user attrib

Tools (10)

list_usersList all users with pagination
create_userCreate new user
delete_userDelete user (requires confirm=True)
list_groupsList all groups
add_user_to_groupAdd user to group
list_rolesList all roles
list_scheduled_plansList all schedules
search_alertsFind alerts
list_foldersList folders
update_content_metadata_accessSet permissions for content

Environment Variables

LOOKERSDK_BASE_URLrequiredThe base URL for your Looker instance
LOOKERSDK_CLIENT_IDrequiredLooker API Client ID
LOOKERSDK_CLIENT_SECRETrequiredLooker API Client Secret
LOOKERSDK_VERIFY_SSLWhether to verify SSL certificates

Configuration

claude_desktop_config.json
{"mcpServers": {"looker-admin": {"command": "docker", "args": ["run", "--rm", "-i", "-e", "MCP_MODE=stdio", "-e", "LOOKERSDK_BASE_URL=${.env:LOOKERSDK_BASE_URL}", "-e", "LOOKERSDK_CLIENT_ID=${.env:LOOKERSDK_CLIENT_ID}", "-e", "LOOKERSDK_CLIENT_SECRET=${.env:LOOKERSDK_CLIENT_SECRET}", "-e", "LOOKERSDK_VERIFY_SSL=${.env:LOOKERSDK_VERIFY_SSL}", "looker-mcp:latest"]}}}

Try it

List all users currently in the 'Data Analysts' group.
Find all scheduled plans that are currently failing or inactive.
Create a new role with read-only access to the 'Finance' model set.
Search for all folders that contain the word 'Sales' and list their permissions.
Delete the user with ID 456, ensuring the confirmation parameter is set.

Frequently Asked Questions

What are the key features of Looker Admin MCP?

Comprehensive user and group management including CRUD operations.. Full role and permission set administration.. Management of scheduled plans and alerts.. Content access control for folders and metadata.. System-level administration including session management..

What can I use Looker Admin MCP for?

Automating user onboarding and role assignment for new data team members.. Auditing and updating folder permissions across the Looker instance.. Bulk managing scheduled reports and alerts during system maintenance.. Quickly identifying and terminating suspicious or stale user sessions..

How do I install Looker Admin MCP?

Install Looker Admin MCP by running: ./docker-build-run.sh build

What MCP clients work with Looker Admin MCP?

Looker Admin MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Looker Admin MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare