Skip to main content
Glama

Metrinel

Get data (normalized, cross-source)

get_data
Read-only

Query Google Ads, GA4 and Search Console with one field vocabulary.

Prefer this over the source-specific tools for reporting and for comparing sources, e.g. Google Ads campaigns with their GA4 sessions (join on campaign_id), or GA4 landing pages with their Search Console clicks (join on landing_page). Rows missing in a source show null for its metrics. Ratios (ctr, cpc, cpa, roas, conversion_rate, engagement_rate) are recomputed from totals. Search Console data lags 2-3 days.

Input Schema

NameRequiredDescriptionDefault
limitNo
fieldsYesDimensions and metrics from list_fields, e.g. ['date', 'spend', 'clicks'].
date_toNoYYYY-MM-DD, with date_from.
filtersNoConditions combined with AND, applied to every source.
sourcesYesOne source, or several to join them on the requested dimensions. With several, metric columns are prefixed with the source (google_ads.clicks, search_console.clicks).
order_byNoColumns to sort by; prefix '-' for descending, e.g. -spend. In a blend, a bare metric name works when only one source has it; otherwise qualify it, e.g. search_console.clicks.
date_fromNoYYYY-MM-DD, with date_to.
date_presetNotoday, yesterday, last_Nd (last_7d, last_28d...), this_month, last_month, this_year, last_year. Default last_28d. last_Nd ends yesterday.
force_refreshNoSkip the cache. Recent data is cached 15 minutes.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, openWorld), so the bar is lower, and the description still adds real behavior: rows absent from a source return null, ratios are recomputed from totals rather than averaged, and Search Console data lags 2-3 days. The 15-minute cache is mentioned here but is already stated in the force_refresh schema text, so that sentence adds little; no disclosure of row limits or truncation behavior beyond the limit param.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then preference/alternatives, then join examples, then edge-case caveats (nulls, ratio recomputation, lag). No redundant restatement of the schema; every sentence carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, and the description still covers the non-obvious semantics an agent needs for a 9-parameter multi-source query: cross-source null filling, metric namespacing, join keys, and data freshness. Nothing critical for correct invocation appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 89%, so the schema already documents limit, dates, filters, order_by, and sources including the metric-prefixing rule. The description's added value is the join-key hint (campaign_id, landing_page), but it does not explain how sources' different date grains or the fields vocabulary interact when blending, leaving the schema to carry almost everything. Baseline 3 is appropriate for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (query) and the exact resources (Google Ads, GA4, Search Console) plus the differentiator: one normalized field vocabulary across sources. That single clause separates it from ads_query, ga4_run_report, and gsc_search_analytics, which the sibling list confirms are per-source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Prefer this over the source-specific tools for reporting and for comparing sources', and gives two concrete join scenarios (campaign_id, landing_page) that define the cross-source case. The gap is that the alternatives are described generically as 'source-specific tools' rather than named, and no guidance is given for cases this tool does not cover, such as realtime reporting (ga4_run_realtime_report) or URL inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources