Skip to main content
Glama

Get HelpCenter Search Queries And Content Gaps

helpcenter_get_search_queries
Read-onlyIdempotent

What visitors searched for in the connected HelpCenter.io help center, and what they did not find.

Read-only. START HERE when the question is "what content is missing?", "what should I write next?", or "why are customers still contacting support?". The content_gaps list is close to a literal backlog of articles that do not exist yet, ranked by how many people wanted them — it is the single most actionable thing this API returns, and the natural input to helpcenter_create_article.

COST AND RATE LIMIT: this is an expensive query, and the three analytics tools share a limit of 6 requests per minute per API key — far below the other read tools. The underlying figures are recomputed only once a day, so asking again in a few seconds returns identical numbers at full cost. Read once, keep the answer, and do NOT poll or retry in a loop. If you are refused with a rate-limit error, stop rather than backing off and retrying.

Leave from/to unset unless the user asked about a specific period: the default window is the trailing 7 days, is served from a pre-computed cache rather than the warehouse, and is the right answer for a general question. Maximum window is 92 days; wider is refused.

Args:

  • limit (number, optional): rows per list, 1-50 (default 20). Raising it is free — these read pre-aggregated daily tables, so the same data is scanned either way. Ask for more when building a content plan.

  • from / to / lang (optional): see above.

  • response_format ('markdown' | 'json'): default 'markdown'.

Returns: { range, content_gaps: [...], frequent_queries: [...], common_terms: [...], meta: { limit, lists_are_top_n } }.

Each gap row is { query, searches, unique_visitors, zero_result_searches, no_click_searches, failed_searches, failure_rate, reason, last_searched_at, top_hit, article_clicked }.

The two failure modes need DIFFERENT fixes, so read reason:

  • '0 results' — nothing matched. Write the article.

  • 'no click' — results came back and nobody opened one. The article probably exists but does not look like the answer; fix its title and opening lines rather than writing a new one.

  • 'mixed' — both happened across different searches of the same query.

Two things not to get wrong:

  • Every list is a TOP-N, not a complete list. limit rows of content_gaps means "the N worst gaps", NOT "there were N gaps". Never state or infer a total from it.

  • There are NO search totals here. Use traffic.searches from helpcenter_get_analytics_summary if you need volume. Deriving one from these truncated lists would produce a number that disagrees with the real one.

common_terms are single words pulled out of queries, so they overlap with the query rows and the two lists do not sum to anything. Terms spot a topic; queries are what you write an article from.

Privacy: everything here is aggregated. No visitor identifiers, IP addresses or per-search rows are available through this API at all.

Errors: 429 if the shared analytics rate limit is exceeded — stop, do not retry. 503 if the analytics backend is temporarily unavailable.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "helpcenter_get_search_queries"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoEnd of the reporting window, YYYY-MM-DD, inclusive. Defaults to today.
fromNoStart of the reporting window, YYYY-MM-DD. OMIT unless the user asked for a specific period — the default window is cheaper to serve and is the right answer for a general 'how are we doing' question.
langNoRestrict to one language code. Must be enabled on the help center. Costs more to serve than the unfiltered call, so only send it for a genuinely multilingual question.
limitNoRows per list, 1-50 (default 20). Raising it is free — these read pre-aggregated daily tables — so ask for more when you are building a content plan rather than answering one question.
site_idNoWhich help center to act on: an id from helpcenter_list_sites. Needed when this connection reaches more than one help center; omit it when it reaches one. Applies to this call only — pass it on every call of a task, and ask the user which help center they mean if their request does not say.
response_formatNoOutput format: 'markdown' for a human-readable summary or 'json' for the full structured payload.markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover read-only safety, but the description adds what they cannot: a shared 6-requests-per-minute analytics limit, once-daily recomputation making retries wasteful, a 92-day maximum window, cache-served defaults, and error semantics (429 = stop, 503 = backend down). Privacy constraints on the underlying data are also disclosed.

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

Conciseness4/5

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

Bold labels (COST AND RATE LIMIT, Returns, Two things not to get wrong) make it skimmable and front-load the summary before the detail. It is long, and the rate-limit instruction is restated in both prose and the Errors line, but nearly every sentence carries non-redundant operational information.

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?

With no output schema, the description fully discharges the return-value burden: it gives the top-level shape, every field of a gap row, the reason taxonomy, and the semantics of `common_terms` versus query rows. It also pre-empts the two most likely misinterpretations — top-N truncation and absent search totals.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real decision guidance the schema only gestures at: raising `limit` is free because lists read pre-aggregated tables, `lang` costs more and should only be sent for genuinely multilingual questions, and omitted date ranges hit a cheaper cache. It also interprets `reason` values ('0 results' vs 'no click' vs 'mixed') in terms of the fix each implies.

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?

Opens with a concrete statement of both resources: what visitors searched for and what they did not find. It explicitly carves out territory against siblings by naming `helpcenter_get_analytics_summary` for volume, and positions `content_gaps` as the article backlog feeding `helpcenter_create_article`. An agent can distinguish this from `helpcenter_get_content_performance` without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit trigger questions ('what content is missing?', 'what should I write next?'), names the alternative tool to use when volume is needed instead, and states when NOT to populate `from`/`to`. It also forbids the polling pattern outright and names the downstream tool to call next.

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