Looker MCP Server for Cloudflare Workers
54 tools available in the Looker MCP server. Each tool can be called by AI assistants to perform specific actions.
looker_run_lookRun a look and get the results.
Args:
Returns: Query results in the specified format.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"description": "Row limit"
},
"look_id": {
"type": "string",
"description": "Look ID to run"
}
}
}looker_run_scheduled_plan_onceTrigger a scheduled plan to run immediately (one-time execution).
Args:
Returns: The scheduled plan execution result.
{
"type": "object",
"required": [
"scheduled_plan_id"
],
"properties": {
"scheduled_plan_id": {
"type": "string",
"description": "Scheduled plan ID to run"
}
}
}looker_move_lookMove a look to a different folder.
Args:
Returns: The moved look.
{
"type": "object",
"required": [
"look_id",
"folder_id"
],
"properties": {
"look_id": {
"type": "string",
"description": "Look ID to move"
},
"folder_id": {
"type": "string",
"description": "Destination folder ID"
}
}
}looker_copy_lookCopy a look to create a duplicate.
Args:
Returns: The newly created look copy.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"look_id": {
"type": "string",
"description": "Look ID to copy"
},
"folder_id": {
"type": "string",
"description": "Destination folder ID"
}
}
}looker_list_dashboardsList all dashboards from Looker with pagination.
Returns a paginated list of dashboards.
Args:
Returns: List of dashboards with id, title, folder, created date, and view count.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Number of dashboards to return"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset for pagination"
}
}
}looker_get_dashboardGet a single dashboard by ID.
Args:
Returns: The dashboard details including title, description, elements, filters, and layouts.
{
"type": "object",
"required": [
"dashboard_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID"
}
}
}looker_create_dashboardCreate a new dashboard in Looker.
Args:
Returns: The created dashboard.
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Dashboard title"
},
"folder_id": {
"type": "string",
"description": "Folder ID"
},
"show_title": {
"type": "boolean",
"description": "Show title"
},
"description": {
"type": "string",
"description": "Description"
},
"query_timezone": {
"type": "string",
"description": "Query timezone"
},
"background_color": {
"type": "string",
"description": "Background color"
},
"refresh_interval": {
"type": "string",
"description": "Refresh interval"
},
"show_filters_bar": {
"type": "boolean",
"description": "Show filters bar"
}
}
}looker_search_foldersSearch for folders by name or parent.
Args:
Returns: List of matching folders.
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Search by name"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"parent_id": {
"type": "string",
"description": "Filter by parent folder ID"
}
}
}looker_update_dashboardUpdate an existing dashboard.
Args:
Returns: The updated dashboard.
{
"type": "object",
"required": [
"dashboard_id"
],
"properties": {
"title": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"folder_id": {
"type": "string"
},
"show_title": {
"type": "boolean"
},
"description": {
"type": "string"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID to update"
},
"background_color": {
"type": "string"
},
"refresh_interval": {
"type": "string"
},
"show_filters_bar": {
"type": "boolean"
}
}
}looker_delete_dashboardDelete a dashboard from Looker.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"dashboard_id"
],
"properties": {
"dashboard_id": {
"type": "string",
"description": "Dashboard ID to delete"
}
}
}looker_search_dashboardsSearch for dashboards by title or folder.
Args:
Returns: List of matching dashboards.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"title": {
"type": "string",
"description": "Search by title"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Filter by folder ID"
}
}
}looker_copy_dashboardCopy a dashboard to create a duplicate.
Args:
Returns: The newly created dashboard copy.
{
"type": "object",
"required": [
"dashboard_id"
],
"properties": {
"folder_id": {
"type": "string",
"description": "Destination folder ID"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID to copy"
}
}
}looker_move_dashboardMove a dashboard to a different folder.
Args:
Returns: The moved dashboard.
{
"type": "object",
"required": [
"dashboard_id",
"folder_id"
],
"properties": {
"folder_id": {
"type": "string",
"description": "Destination folder ID"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID to move"
}
}
}looker_list_foldersList all folders in Looker with pagination.
Returns a paginated list of folders.
Args:
Returns: List of folders with id, name, parent_id, and child count.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Number of folders to return"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset for pagination"
}
}
}looker_get_folderGet a single folder by ID.
Args:
Returns: The folder details including name, parent, children, looks, and dashboards.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Folder ID"
}
}
}looker_create_folderCreate a new folder in Looker.
Args:
Returns: The created folder.
{
"type": "object",
"required": [
"name",
"parent_id"
],
"properties": {
"name": {
"type": "string",
"description": "Folder name"
},
"parent_id": {
"type": "string",
"description": "Parent folder ID"
}
}
}looker_update_folderUpdate an existing folder.
Args:
Returns: The updated folder.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"name": {
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Folder ID to update"
},
"parent_id": {
"type": "string"
}
}
}looker_delete_folderDelete a folder from Looker.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"folder_id": {
"type": "string",
"description": "Folder ID to delete"
}
}
}looker_get_folder_childrenGet all child folders of a folder.
Args:
Returns: List of child folders.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Parent folder ID"
}
}
}looker_get_folder_looksGet all looks in a folder.
Args:
Returns: List of looks in the folder.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Folder ID"
}
}
}looker_get_folder_dashboardsGet all dashboards in a folder.
Args:
Returns: List of dashboards in the folder.
{
"type": "object",
"required": [
"folder_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Folder ID"
}
}
}looker_delete_scheduled_planDelete a scheduled plan from Looker.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"scheduled_plan_id"
],
"properties": {
"scheduled_plan_id": {
"type": "string",
"description": "Scheduled plan ID to delete"
}
}
}looker_list_looksList all looks from Looker with pagination.
Returns a paginated list of looks.
Args:
Returns: List of looks with id, title, folder, created date, and view count.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Number of looks to return"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset for pagination"
}
}
}looker_get_lookGet a single look by ID.
Args:
Returns: The look details including title, description, query, folder, and metadata.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"look_id": {
"type": "string",
"description": "Look ID"
}
}
}looker_create_lookCreate a new look in Looker.
Args:
Returns: The created look.
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Look title"
},
"query_id": {
"type": "string",
"description": "Query ID to associate with the look"
},
"folder_id": {
"type": "string",
"description": "Folder ID"
},
"description": {
"type": "string",
"description": "Description"
},
"is_run_on_load": {
"type": "boolean",
"description": "Run query on load"
}
}
}looker_update_lookUpdate an existing look.
Args:
Returns: The updated look.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"title": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"look_id": {
"type": "string",
"description": "Look ID to update"
},
"folder_id": {
"type": "string"
},
"description": {
"type": "string"
},
"is_run_on_load": {
"type": "boolean"
}
}
}looker_delete_lookDelete a look from Looker.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"look_id": {
"type": "string",
"description": "Look ID to delete"
}
}
}looker_search_looksSearch for looks by title or folder.
Args:
Returns: List of matching looks.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"title": {
"type": "string",
"description": "Search by title"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"folder_id": {
"type": "string",
"description": "Filter by folder ID"
}
}
}looker_create_queryCreate a new query object in Looker.
Args:
Returns: The created query object with its ID.
{
"type": "object",
"required": [
"model",
"view",
"fields"
],
"properties": {
"view": {
"type": "string",
"description": "Explore/view name"
},
"limit": {
"type": "string",
"description": "Row limit"
},
"model": {
"type": "string",
"description": "LookML model name"
},
"sorts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Sort fields"
},
"total": {
"type": "boolean",
"description": "Include totals"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to include"
},
"pivots": {
"type": "array",
"items": {
"type": "string"
},
"description": "Pivot fields"
},
"filters": {
"type": "object",
"description": "Field filters"
}
}
}looker_get_queryGet details of an existing query by ID.
Args:
Returns: The query object with model, view, fields, filters, etc.
{
"type": "object",
"required": [
"query_id"
],
"properties": {
"query_id": {
"type": "string",
"description": "Query ID"
}
}
}looker_run_queryRun an existing query and get results.
Args:
Returns: Query results in the specified format.
{
"type": "object",
"required": [
"query_id"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"description": "Row limit"
},
"query_id": {
"type": "string",
"description": "Query ID to run"
}
}
}looker_run_inline_queryCreate and run a query in one step without saving it.
This is the most common way to query data from Looker programmatically.
Args:
Returns: Query results in the specified format.
{
"type": "object",
"required": [
"model",
"view",
"fields"
],
"properties": {
"view": {
"type": "string",
"description": "Explore/view name"
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "Row limit"
},
"model": {
"type": "string",
"description": "LookML model name"
},
"sorts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Sort fields"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to include"
},
"filters": {
"type": "object",
"description": "Field filters"
}
}
}looker_create_sql_queryCreate a raw SQL query in Looker.
Args:
Returns: The created SQL query object with its slug.
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "SQL query string"
},
"model_name": {
"type": "string",
"description": "LookML model name"
},
"connection_name": {
"type": "string",
"description": "Database connection name"
}
}
}looker_get_sql_queryGet details of an existing SQL query by slug.
Args:
Returns: The SQL query object.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "SQL query slug"
}
}
}looker_run_sql_queryRun an existing SQL query and get results.
Args:
Returns: Query results in the specified format.
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "SQL query slug to run"
}
}
}looker_list_modelsList all LookML models available in Looker.
Returns: List of models with their explores.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}looker_get_modelGet details of a specific LookML model.
Args:
Returns: Model details including explores, connections, and project.
{
"type": "object",
"required": [
"model_name"
],
"properties": {
"model_name": {
"type": "string",
"description": "LookML model name"
}
}
}looker_get_exploreGet details of a specific explore including all available fields.
This is useful for discovering what dimensions and measures are available to query.
Args:
Returns: Explore details including dimensions, measures, filters, and joins.
{
"type": "object",
"required": [
"model_name",
"explore_name"
],
"properties": {
"model_name": {
"type": "string",
"description": "LookML model name"
},
"explore_name": {
"type": "string",
"description": "Explore name"
}
}
}looker_search_contentSearch for content (looks, dashboards) across Looker.
Args:
Returns: List of matching content items.
{
"type": "object",
"required": [
"terms"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"terms": {
"type": "string",
"description": "Search terms"
},
"types": {
"type": "string",
"description": "Content types (comma-separated)"
}
}
}looker_list_scheduled_plansList all scheduled plans in Looker.
Returns a list of scheduled plans.
Args:
Returns: List of scheduled plans with id, name, enabled status, schedule, and destinations.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"user_id": {
"type": "string",
"description": "Filter by owner user ID"
}
}
}looker_get_scheduled_planGet a single scheduled plan by ID.
Args:
Returns: The scheduled plan details including schedule, destinations, and settings.
{
"type": "object",
"required": [
"scheduled_plan_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"scheduled_plan_id": {
"type": "string",
"description": "Scheduled plan ID"
}
}
}looker_search_usersSearch for users by email or name.
Args:
Returns: List of matching users.
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Search by email"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"last_name": {
"type": "string",
"description": "Search by last name"
},
"first_name": {
"type": "string",
"description": "Search by first name"
}
}
}looker_create_scheduled_planCreate a new scheduled plan for a look or dashboard.
Args:
Returns: The created scheduled plan.
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Plan name"
},
"title": {
"type": "string",
"description": "Email subject/title"
},
"crontab": {
"type": "string",
"description": "Cron schedule expression"
},
"enabled": {
"type": "boolean",
"description": "Whether enabled"
},
"look_id": {
"type": "string",
"description": "Look ID to schedule"
},
"timezone": {
"type": "string",
"description": "Timezone"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID to schedule"
},
"require_change": {
"type": "boolean",
"description": "Only send if results changed"
},
"require_results": {
"type": "boolean",
"description": "Only send if there are results"
},
"require_no_results": {
"type": "boolean",
"description": "Only send if no results"
}
}
}looker_update_scheduled_planUpdate an existing scheduled plan.
Args:
Returns: The updated scheduled plan.
{
"type": "object",
"required": [
"scheduled_plan_id"
],
"properties": {
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"crontab": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"timezone": {
"type": "string"
},
"require_change": {
"type": "boolean"
},
"require_results": {
"type": "boolean"
},
"scheduled_plan_id": {
"type": "string",
"description": "Scheduled plan ID to update"
},
"require_no_results": {
"type": "boolean"
}
}
}looker_get_scheduled_plans_for_lookGet all scheduled plans for a specific look.
Args:
Returns: List of scheduled plans associated with the look.
{
"type": "object",
"required": [
"look_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"look_id": {
"type": "string",
"description": "Look ID"
}
}
}looker_get_scheduled_plans_for_dashboardGet all scheduled plans for a specific dashboard.
Args:
Returns: List of scheduled plans associated with the dashboard.
{
"type": "object",
"required": [
"dashboard_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"dashboard_id": {
"type": "string",
"description": "Dashboard ID"
}
}
}looker_list_alertsList all alerts in Looker.
Args:
Returns: List of alerts.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"look_id": {
"type": "string",
"description": "Filter by look ID"
},
"dashboard_id": {
"type": "string",
"description": "Filter by dashboard ID"
}
}
}looker_get_alertGet a single alert by ID.
Args:
Returns: The alert details.
{
"type": "object",
"required": [
"alert_id"
],
"properties": {
"alert_id": {
"type": "string",
"description": "Alert ID"
}
}
}looker_list_usersList all users in Looker with pagination.
Returns a paginated list of users.
Args:
Returns: List of users with id, name, email, and status.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Number of users to return"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset for pagination"
}
}
}looker_get_userGet a single user by ID.
Args:
Returns: The user details including name, email, roles, groups, and credentials.
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID"
}
}
}looker_get_current_userGet the currently authenticated user (me).
Returns: The current user's details.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}looker_create_userCreate a new user in Looker.
Args:
Returns: The created user.
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email address"
},
"locale": {
"type": "string",
"description": "User locale"
},
"last_name": {
"type": "string",
"description": "Last name"
},
"first_name": {
"type": "string",
"description": "First name"
},
"is_disabled": {
"type": "boolean",
"description": "Whether user is disabled"
}
}
}looker_update_userUpdate an existing user.
Args:
Returns: The updated user.
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"email": {
"type": "string"
},
"locale": {
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID to update"
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"is_disabled": {
"type": "boolean"
}
}
}looker_delete_userDelete a user from Looker.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "User ID to delete"
}
}
}