Introducing Looker Health Tools in MCP Toolbox

Luka Fontanilla coauthored these changes

Technical debt can weigh down even the most well-designed and executed projects. This debt can make projects harder to navigate, confuse users and developers alike, and generally get in the way of your best work. With the introduction of Looker Health Tools in MCP Toolbox, you now have a new suite of core capabilities that can work with you as your personal code reviewer and janitorial crew.

Three Agentic Tools: Pulse, Analyze, Vacuum

Inspired by the popular open-source linter, henry, Looker’s trio of new health tools offer a powerful, intuitive workflow for maintaining project hygiene.

Tool Purpose What It Does
:stethoscope: health_pulse Get a Quick Overview Perform a rapid scan of your Looker system to give you a high-level summary of its health, identifying the number of potential issues in key categories. This tool will check db connections, dashboard performance, dashboard errors, explore performance, schedule failures, and if legacy features are enabled.
:microscope: health_analyze Dig Into the Details If health_pulse identifies a problem area, health_analyze will provide the specifics. It will drill into specific projects, models, and explores and determine what fields are used most, what joins are unused, and whether fields have descriptions.
:broom: health_vacuum Clean It Up Once health_analyze gives you a profile of the usage of an explore, health_vacuum can be used to suggest fields that can be deleted from your project, cleaning your LookML codebase.

Make AI Tackle Your Chores

These new tools transform project maintenance from a manual chore you want to avoid into a simple, conversational, automated process.

  1. Guided Cleanup: The Pulse -> Analyze -> Vacuum workflow is intuitive, guiding you from a high-level overview to detailed analysis and to decisive action, preventing accidental deletions.
  2. Automated Maintenance: You can now create workflows where an agent periodically runs a health_pulse and reports the findings. If issues are found, it can proceed with analysis, creating a fully automated health audit.
  3. Closing the Loop: The inclusion of health_vacuum is a step toward self-healing codebases, where an agent doesn’t just find problems but can be empowered to fix them.

Putting it into Practice: A Sample Conversation

Imagine you’re about to start a new sprint, and you want to clean up your most important model before adding new features.

You: β€œCheck the health pulse of my looker server. Run all checks except check_legacy_features.”

Agent (after running health_pulse):

✦ Here are the results of the health check:

  Database Connections: All connections are OK.
  Dashboard Performance: No issues found.
  Dashboard Errors: No issues found.
  Explore Performance: The order_items explore in the_look model has an average runtime of 0.3 seconds.
  Scheduled Failures: No issues found.

You: β€œrun health_analyze model analyzer on the model the_look.”

Agent (after running health_analyze):

 ✦ Here is the health analysis of the explores in the the_look model:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Explore           β”‚ Query Count β”‚ # Fields β”‚ # Unused Fields β”‚ # Joins β”‚ # Unused Joins β”‚ Has Description β”‚ Is Hidden β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ events            β”‚ 0           β”‚ 30       β”‚ 28              β”‚ 1       β”‚ 1              β”‚ false           β”‚ false     β”‚
β”‚ inventory_items   β”‚ 28          β”‚ 27       β”‚ 13              β”‚ 1       β”‚ 0              β”‚ false           β”‚ false     β”‚
β”‚ order_items       β”‚ 0           β”‚ 72       β”‚ 48              β”‚ 4       β”‚ 1              β”‚ false           β”‚ false     β”‚
β”‚ orders            β”‚ 0           β”‚ 29       β”‚ 24              β”‚ 1       β”‚ 1              β”‚ false           β”‚ false     β”‚
β”‚ products          β”‚ 0           β”‚ 9        β”‚ 9               β”‚ 0       β”‚ 0              β”‚ false           β”‚ false     β”‚
β”‚ schema_migrations β”‚ 0           β”‚ 2        β”‚ 2               β”‚ 0       β”‚ 0              β”‚ false           β”‚ false     β”‚
β”‚ user_data         β”‚ 0           β”‚ 23       β”‚ 22              β”‚ 1       β”‚ 1              β”‚ false           β”‚ false     β”‚
β”‚ users             β”‚ 0           β”‚ 18       β”‚ 17              β”‚ 0       β”‚ 0              β”‚ false           β”‚ false     β”‚
β”‚ users_nn          β”‚ 0           β”‚ 4        β”‚ 4               β”‚ 0       β”‚ 0              β”‚ false           β”‚ false     β”‚
β”‚ test_pm           β”‚ 0           β”‚ 2        β”‚ 2               β”‚ 0       β”‚ 0              β”‚ false           β”‚ false     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

You:
β€œrun health_vacuum on the model the_look explore inventory_items”

Agent (after running health_vacuum):

✦ The health_vacuum tool suggests that the following fields in the inventory_items explore are unused and could potentially be removed:

   - inventory_items.created_quarter
   - inventory_items.created_time
   - inventory_items.created_week
   - inventory_items.id
   - inventory_items.product_id
   - inventory_items.sold_quarter
   - inventory_items.sold_time
   - inventory_items.sold_week
   - products.department
   - products.id
   - products.rank
   - products.retail_price
   - products.sku

How to Gain Access to Looker’s Health Tools

If you are running MCP Toolbox v0.17.0, you already have the Looker Health Tools, which are part of the core Looker extension and enabled by default.

If you need to update, follow the install instructions to get the latest version.

A clean LookML project is performant and user-friendly. By integrating this powerful Pulse -> Analyze -> Vacuum workflow, we’re making it easier than ever to build and maintain high-quality data models.

4 Likes