Skip to main content

list_intent_topics next channel

Status: Modified (v2 rewrite; queryname substring filter; is_tech removed; category added; offset added) This tool is on the private next MCP channel for allow-listed orgs. When promoted, this file moves to mcp-tools/list-intent-topics.md.

List intent topics from the official HG Insights catalog (20,000+ topics). Returns each topic's hex ID, name, and category. Use the returned id values in company_intent (topic_ids param) or search_companies (intent.topics.ids filter).

Integration required: hginsights_v2__data_api Cache schema version: 2 (differs from base — stale cached payloads from the public channel will not be served)

Parameters

ParameterTypeRequiredDefaultDescription
namestringOptionalFilter intent topics by name (case-insensitive literal substring match), e.g. 'security' or 'cloud'. This is a literal substring filter over catalog topic names — pass a single short keyword, NOT a natural-language phrase. A multi-word phrase that is not a literal substring of a topic name (e.g. 'cloud security infrastructure management') returns zero results. Omit to list the full catalog.
limitintegerOptionalMaximum number of topics to return (>= 1). Omit for the upstream default page size.
offsetintegerOptionalNumber of topics to skip for pagination (>= 0). Omit to start from the first record.

Response Format

{
"count": 21137,
"data": [
{
"id": "A1B2C3D4E5F6…",
"name": "Cloud Security",
"category": "technology"
}
]
}

Output changes from base tool

Before:

{
"count": 120,
"totalAvailable": 4000,
"topics": [
{ "topic_id": "…", "topic_name": "Cloud Security", "is_tech_related": true }
]
}

After:

{
"count": 21137,
"data": [
{ "id": "…", "name": "Cloud Security", "category": "technology" }
]
}
  • Read topics from data instead of topics.
  • Use id and name instead of topic_id and topic_name.
  • is_tech_related and totalAvailable are gone.
  • count is the total number of matching topics (may exceed the returned rows); each row now carries a category.

Example Usage

{
"tool": "list_intent_topics",
"parameters": {
"name": "kubernetes",
"limit": 10
}
}

Then pass the returned id to company_intent:

{
"tool": "company_intent",
"parameters": {
"company_domain": "cisco.com",
"topic_ids": ["A1B2C3D4E5F6…"]
}
}

Notes

  • Results without a name filter are returned in reverse-alphabetical order, not by relevance.
  • limit must be >= 1 — limit=0 is rejected client-side.
  • On next, intent_category is removed — use search_companies with intent.topics.ids and company_intent instead.
  • company_intent — get intent signals for a company; accepts topic_ids from here.
  • search_companies — find companies showing intent for a topic via intent.topics.ids.

Changelog

2026-07-30 — Breaking: inputs and response shape changed

Availability: live now on the private next MCP channel for allow-listed orgs. The public /api/mcp contract is unchanged until the promotion PR lands.

Why this changed: list_intent_topics now mirrors the official HG Insights intent-topic catalog one-to-one, wrapping GET /v2/catalog/intent_topics and returning the catalog's own { count, data } shape. The old implementation looped POST /v2/intent/search client-side with hard caps and reshaped the result into a bespoke envelope.

Breaking changes

BeforeAfter
Name filterquery (free-text, fuzzy, relevance-ranked)name — case-insensitive literal substring match
Tech filteris_tech (boolean)removed — the catalog no longer classifies topics as tech/non-tech
Paginationlimit onlylimit (>= 1) + offset (>= 0)

Rename queryname in every call. Remove any is_tech argument. name is a literal substring filter, not a semantic/ranked search — pass a short keyword, never a natural-language phrase. Use offset with limit to page.

Output: read topics from data instead of topics; use id and name instead of topic_id and topic_name; is_tech_related and totalAvailable are gone; count is the total number of matching topics and each row now carries a category.