Skip to content

kokevidaurre/looker-admin-mcp

Repository files navigation

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 attributes
  • get_user_attribute - Get attribute details
  • get_user_attribute_values - Get user's attribute values
  • set_user_attribute_value - Set attribute value
  • get_api_versions - Get API versions
  • get_looker_version - Get Looker instance version

Project Structure

src/looker_admin_mcp/
├── client/
│   ├── sdk.py              # SDK initialization
│   └── models.py           # TypedDicts for responses
├── server/
│   ├── looker.py           # Main server + error handling
│   ├── main.py             # Entry point
│   └── transports.py       # Stdio/SSE transport
└── tools/
    ├── user.py             # User management (9 tools)
    ├── groups.py           # Group management (9 tools)
    ├── roles.py            # Role management (11 tools)
    ├── schedules.py        # Scheduled plans (8 tools)
    ├── alerts.py           # Alert management (7 tools)
    ├── content_access.py   # Folder/permissions (8 tools)
    └── system.py           # System admin (8 tools)

Environment Variables

LOOKERSDK_BASE_URL=https://your-looker-instance.com
LOOKERSDK_CLIENT_ID=your_client_id
LOOKERSDK_CLIENT_SECRET=your_client_secret
LOOKERSDK_VERIFY_SSL=true
LOOKERSDK_TIMEOUT=120  # Optional

Complementary Tools

This server handles administration. For analytics/data:

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors