Skip to main content
Glama
459,885 tools. Updated 2026-08-17 09:12

"Google BigQuery" matching MCP tools:

  • Create a new virtual dimension draft without publishing. `virtualDimensionId` in inputs equals `id` from list/get/search. Call get_skill with skillId: "virtual-dimensions" first — see skill for allocation shapes, CEL rules, and full workflow. For a `telemetry` allocation, discover the `datasource` id and the metric value names to map via list_metrics (call it with `datasourceId`) first. `bqName` (BigQuery/CEL query field, e.g. Environment → virtual_environment) is set once from `name` at create and is immutable. Ordered `rules` use `conditionCel` + `allocation` — do not send rule `id` (generated on save) or `values` (derived). Do not include catch-all/leftover in `rules` — `leftoverRule` is auto-added. Rejects invalid payloads — nothing persisted unless validation passes. On success: `virtualDimensionId`, `bqName`, `name`, `description`, `tags`, `values`, rules with generated ids, `leftoverRule`, `draftValidation: { ok: true }`, `draftPersisted: true`. Use preview_virtual_dimension_draft next. Use returned `bqName` for groupBy/filterCel in query after publish. Does not publish or refresh BigQuery. Clerk MCP only. EXAMPLE: "Draft an Environment VDIM with a prod rule" → { name: "Environment", tagNames: ["finops"], rules: [{ name: "Production", conditionCel: "cos_environment in [\"prod\"]", allocation: { allocationType: "dimensionValue", dimensionValue: "prod" } }] }
    Connector
  • List the Google Business Profile listings SHARED WITH THIS BRAND — id, title, address, website and Maps link. These are the only listings anything here can post to or read: one Google login often manages several businesses (an agency manages its clients’), and the user ticks which of them belong to this brand. Call this before posting whenever more than one is shared and let the USER pick: a Post on the wrong storefront is a public mistake Hermoso will not make for them. If nothing is shared, ask the user to choose — list_connector_accounts("google_business") then set_connector_accounts — and never name or guess a listing. Read-only, 0 credits. Needs Google Business Profile connected (Settings ▸ Connectors ▸ Google Business Profile).
    Connector
  • List saved Costory business metrics and, optionally, matching live external metrics from connected integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch). Saved metrics return id/name/type for { type: "metric", metricId: "..." } in query. Set includeExternal: true with a specific search term to return externalMetrics with provider, integrationId, integrationName, metricName, unit, capabilities, and attributes — enough to build { type: "externalMetric", provider, integrationId, metricName, aggregator, groupByFields, conditions } for Tsuga or Datadog (same shape — for Datadog, attributes are tag keys and metricName is the Datadog metric name), or CloudWatch (same shape — for CloudWatch, metricName is Namespace/MetricName such as AWS/EC2/CPUUtilization and attributes are dimension names), or { type: "externalMetric", provider: "bigquery", integrationId, metricName (table id), dateColumn, metricColumn, gapFillingMethod, aggregator, groupByFields } for BigQuery. Do not call includeExternal without search; external catalogs can be large, and the tool will ask for a search term instead of listing everything. externalLimit (default 50, max 50) caps matching external results. Pass `datasourceId` to instead get a usage-metric datasource's available **groupBy dimension(s)** (`groupByDimensions`) for building a virtual-dimension **`telemetry`** (split-by-usage-metric) allocation. Then call `query` (`type: "metric"`, `metricId`, `groupBy`) to inspect the values for a dimension, and use those values as keys of the allocation's `mappingParams.mapping`, each mapped to a vdim bucket label; unmapped values fall through to the leftover rule. The `datasourceId` is the same `metricsDatasource` id this tool returns as a saved-metric `id` (strip any `::metricName` suffix). Does **not** return values (use `query`) and does **not** cover live external-metric integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch) — those cannot back a `telemetry` allocation. EXAMPLES: • "What business metrics do we have?" → {} • "Find Tsuga metrics about requests" → { includeExternal: true, search: "request" } • "Find BigQuery tables about revenue" → { includeExternal: true, search: "revenue" } • "Find Datadog metrics about CPU" → { includeExternal: true, search: "cpu" } • "Find CloudWatch metrics about CPU" → { includeExternal: true, search: "CPUUtilization" } • "What can I reallocate shared cost by?" → {} (each saved-metric id is a telemetry.datasource) • "What can I split the Datadog CPU metric by?" → { datasourceId: "clx…" }
    Connector
  • Save a Hermoso render — or ANY file — into the user’s connected Google Drive. Pass a Hermoso render URL as url (or urls[] for several); for a local/external file, call upload_file first and pass the url it returns. Optional folder (created if new) + name. Returns the Drive file(s) with a webViewLink. Needs Google Drive connected (Settings ▸ Connectors ▸ Google Drive — one connection covers Drive, Sheets and Docs). NOTE: Hermoso uses the drive.file scope, so it reaches ONLY the files it created plus any the user explicitly handed over with the Google file picker in the app — never their whole Drive.
    Connector
  • Change the brand’s Google Business Profile listing — hours, phone, website, description, categories, service area, labels, store code, address or the business name. THIS EDITS THE PANEL ON GOOGLE SEARCH AND MAPS, immediately and publicly: there is no draft, no preview and no undo. Pass ONLY what changes, in `fields`, keyed by Google’s own field names: websiteUri, phoneNumbers, regularHours, specialHours, moreHours, profile, categories, storefrontAddress, title, labels, storeCode, openInfo, serviceArea, serviceItems, latlng, adWordsLocationExtensions, relationshipData. CALL IT WITHOUT confirm FIRST — nothing is written, Google validates the payload for you, and you get back the CURRENT value of every field you are about to change, so you can show the user the exact before-and-after; then call again with confirm:true once they approve. Changing the business NAME (title) or ADDRESS (storefrontAddress) additionally needs confirmName set to the listing’s CURRENT name, because Google can suspend a listing over either. Output-only fields (metadata) and immutable ones (languageCode) are refused by name rather than dropped. Use dryRun:true to validate a payload with Google and write nothing. Needs Google Business Profile connected.
    Connector
  • Read the Google Business Profile ACCOUNT that owns one of the brand’s listings — the account name, its type (a personal Google account, a location group, a user group or an organization), the connected user’s role on it (primary owner / owner / manager / site manager), the account’s verification state and the permission level. Use it to answer “can we actually edit this listing?” and “whose account is it on?” before offering an edit that Google would refuse anyway. It reads exactly ONE account — the parent of a listing already shared with this brand — and never lists the other accounts the connected Google login can reach; that roster belongs to the account picker (list_connector_accounts). Read-only, 0 credits. Needs Google Business Profile connected.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.

  • 12 Google News endpoints. Pay per call in USDC via x402.

  • Read the text of a Google Doc Hermoso can reach — one it created, or one the user handed over with the Google file picker in the app (that is how an EXISTING doc becomes readable; find its id with list_drive_files). Pass documentId (from create_doc) OR paste a Google Docs URL as docUrl. Under the drive.file scope it reaches nothing else in the user’s Drive; if Google answers that the file was not found, the user has not picked it yet — ask them to pick it in the app rather than retrying. Returns the plain text. Read-only, free.
    Connector
  • Get photos for a Google Maps place. Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page. Returns place metadata and a photos array. Each photo has photo_url and description when available. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear. Cost = 3 tokens.
    Connector
  • List supported Google Maps place type values for search filters. Returns place_types as a string array. Use a value with place_type on google-maps.search or google-maps.nearby_search. Cost = 1 token.
    Connector
  • List all Google Trends category and subcategory labels you can pass to other Google Trends tools in the category field. Returns cat (array of category names, including All categories) and msg. Use this before interest-over-time or interest-by-region calls when filtering by category. Cost = 5 tokens.
    Connector
  • List all countries and subregions you can pass to other Google Trends tools in the country and region fields. Returns geo.countries: each country name maps to country (label) and regions (array of subregion names). Also returns msg. Use this before interest-over-time or interest-by-region calls when filtering by geography. Pair with google-trends.categories when filtering by category. Cost = 5 tokens.
    Connector
  • Exact Google Ads search volume for `<keyword>` — Google's own monthly search-volume numbers (plus competition and CPC) from the Ads API, for up to 10 keywords. Use when you specifically need Google Ads figures; for general SEO volume + keyword difficulty, prefer seo_keyword_overview (cheaper). Example: seo_keyword_google_ads_volume({ keywords: ["running shoes"], location_code: 2840, _apiKey: "your-base64-key" })
    Connector
  • Google search results scraping via Decodo (formerly Smartproxy) — runs a Google search through rotating proxies and returns structured organic results (position, title, url, snippet) plus related searches when parsing succeeds. BYOK — _apiKey is your Decodo Web Scraping API "username:password" credentials. Example: decodo_google_search({ query: "best running shoes 2026", geo: "United States", _apiKey: "user:pass" })
    Connector
  • Read everything Google holds on one of the brand’s Google Business Profile listings — business name, address, phone numbers, website, categories, description, regular and special hours, service area, labels, store code, open state, and whether the listing can carry a Post at all. This is the listing AS THE MERCHANT LAST SET IT, which is exactly what update_business_location edits; it can differ from what Google Maps shows today, because Google and the public can suggest changes on top. Call it before offering to change anything, and to answer “what does our Google listing actually say?”. Read-only, 0 credits. Needs Google Business Profile connected (Settings ▸ Connectors ▸ Google Business Profile).
    Connector
  • PUBLISH a reply to this review's public Google profile. This is a public, customer-visible action - call it ONLY when the user has explicitly approved this exact text. If Google rejects the publish, the text is preserved in ReputeMap with a manual fallback (status 'manual_required') - words are never lost.
    Connector
  • Convert a SQL statement from one dialect to another — mysql, postgres, sqlite, tsql, oracle, snowflake, bigquery, redshift, spark, hive, presto, trino, duckdb, clickhouse, databricks, doris, starrocks and more. Deterministic parser (sqlglot), not an LLM: the same input always produces the same output, and syntax errors come back with the exact line and column. Use it when migrating queries between databases or debugging dialect-specific syntax.
    Connector
  • Liste les comptes Google Ads connectés au compte aeotool (OAuth) : customer_id, nom, statut, is_manager (MCC — non requêtable directement, ses comptes clients apparaissent aussi dans la liste), write_enabled (pilotage en écriture — activable par compte dans le Cockpit Google Ads).
    Connector
  • Run a read-only SQL query in the project and return the result. Prefer this tool over `execute_sql` if possible. This tool is restricted to only `SELECT` statements. `INSERT`, `UPDATE`, and `DELETE` statements and stored procedures aren't allowed. If the query doesn't include a `SELECT` statement, an error is returned. For information on creating queries, see the [GoogleSQL documentation](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax). Example Queries: -- Count the number of penguins in each island. SELECT island, COUNT(*) AS population FROM bigquery-public-data.ml_datasets.penguins GROUP BY island -- Evaluate a bigquery ML Model. SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`) -- Evaluate BigQuery ML model on custom data SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`, (SELECT * FROM `my_dataset.my_table`)) -- Predict using BigQuery ML model: SELECT * FROM ML.PREDICT(MODEL `my_dataset.my_model`, (SELECT * FROM `my_dataset.my_table`)) -- Forecast data using AI.FORECAST SELECT * FROM AI.FORECAST(TABLE `project.dataset.my_table`, data_col => 'num_trips', timestamp_col => 'date', id_cols => ['usertype'], horizon => 30) Queries executed using the `execute_sql_readonly` tool will have the job label `goog-mcp-server: true` automatically set. Queries are charged to the project specified in the `projectId` field.
    Connector
  • Append rows to a Google Sheet Hermoso can reach — one it created (pass the spreadsheetId from create_sheet) or one the user handed over with the Google file picker in the app (find its id with list_drive_files). rows = array of row arrays.
    Connector
  • Append text to the end of a Google Doc Hermoso can reach — one it created (pass the documentId from create_doc) or one the user handed over with the Google file picker in the app (find its id with list_drive_files).
    Connector