Skip to content

Intent signals MCP tools

Use this reference to find a tool and its inputs. Connect an MCP client before calling tools. Tool visibility depends on discovery and permissions.

For actions that send messages, spend credits, delete data, or start execution, review the intended records and confirm the action before proceeding. Obtain IDs from a prior result; do not invent them. A registered tool does not guarantee that its supporting service is available in every organization.

g8_intent_add_keywords

Bulk-add plain compete-tracking keyword phrases (web-UI parity). The MCP twin of the Buyer Intent > Keywords bulk-add screen: saves each phrase as a plain keyword row (stored lowercased). Keywords that already exist for this org + signal_type are reported as skipped, not duplicated. For signal_type “intent” each NEW keyword seeds its URL set in the background - URLs and resolved contacts appear later, not in this response. Use g8_intent_update_keyword_filters afterwards to set per-keyword search filters (e.g. a hybrid semantic blend). Args: keywords: 1-50 keyword phrases (each max 500 chars). signal_type: “intent” (default), “jobs”, or “job_changes”.

Inputs

InputRequiredTypeDescription
keywordsYesarraySee the schema below for constraints and defaults.
signal_typeNostringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keywords": {
"items": {
"type": "string"
},
"title": "Keywords",
"type": "array"
},
"signal_type": {
"default": "intent",
"title": "Signal Type",
"type": "string"
}
},
"required": [
"keywords"
],
"title": "g8_intent_add_keywordsArguments",
"type": "object"
}

g8_intent_create_from_domain

One-shot compete-tracking keyword create from a competitor domain. Pulls on-domain pages, resolves contacts, and saves a keyword row with both URLs and pre-resolved contacts. Strict off-domain guard: only <domain> and *.<domain> are saved. Returns the new keyword_id plus counts (pages_seeded, contacts_seeded, companies_seeded, off_domain_rejected). Args: domain: Competitor domain, bare (no scheme), e.g. “cognism.com”. page_limit: Max pages to seed (default 200, max 500). contact_limit: Max contacts to pre-resolve (default 200, max 500).

Inputs

InputRequiredTypeDescription
domainYesstringSee the schema below for constraints and defaults.
page_limitNointegerSee the schema below for constraints and defaults.
contact_limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"page_limit": {
"default": 200,
"title": "Page Limit",
"type": "integer"
},
"contact_limit": {
"default": 200,
"title": "Contact Limit",
"type": "integer"
}
},
"required": [
"domain"
],
"title": "g8_intent_create_from_domainArguments",
"type": "object"
}

g8_intent_delete_keyword

Soft-delete a compete-tracking keyword row. Args: keyword_id: UUID of the keyword row (from g8_intent_list_keywords).

Inputs

InputRequiredTypeDescription
keyword_idYesstringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_id": {
"title": "Keyword Id",
"type": "string"
}
},
"required": [
"keyword_id"
],
"title": "g8_intent_delete_keywordArguments",
"type": "object"
}

Find every indexed page on a competitor’s domain (and subdomains). Returns the apex domain and every subdomain (www, blog, help, etc.) - not news articles that merely mention the competitor. Args: domain: Competitor root domain, bare (no scheme/path), e.g. “cognism.com”. limit: Max pages (default 200, max 500).

Inputs

InputRequiredTypeDescription
domainYesstringSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"limit": {
"default": 200,
"title": "Limit",
"type": "integer"
}
},
"required": [
"domain"
],
"title": "g8_intent_domain_searchArguments",
"type": "object"
}

g8_intent_keyword_companies

Companies resolved against a keyword’s URL set. Aggregates contacts by company_domain so you see which orgs are poking around the competitor, not just individuals.

Inputs

InputRequiredTypeDescription
keyword_idYesstringSee the schema below for constraints and defaults.
pageNointegerSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_id": {
"title": "Keyword Id",
"type": "string"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"required": [
"keyword_id"
],
"title": "g8_intent_keyword_companiesArguments",
"type": "object"
}

g8_intent_keyword_contacts

People resolved against a keyword’s URL set. Each row includes full contact identity (name, job title, LinkedIn, work email) plus the company they’re tied to.

Inputs

InputRequiredTypeDescription
keyword_idYesstringSee the schema below for constraints and defaults.
pageNointegerSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_id": {
"title": "Keyword Id",
"type": "string"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"required": [
"keyword_id"
],
"title": "g8_intent_keyword_contactsArguments",
"type": "object"
}

g8_intent_keyword_urls

URLs linked to a compete-tracking keyword. Args: keyword_id: UUID from g8_intent_list_keywords. page: Page (default 1). limit: Per page (default 100, max 500).

Inputs

InputRequiredTypeDescription
keyword_idYesstringSee the schema below for constraints and defaults.
pageNointegerSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_id": {
"title": "Keyword Id",
"type": "string"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"required": [
"keyword_id"
],
"title": "g8_intent_keyword_urlsArguments",
"type": "object"
}

Keywords Create From Search. Uses the current organization and existing API permissions. Review the intended change and set confirm=true to execute; otherwise no API request is sent. API: POST /intent/keywords/create-from-search

Inputs

InputRequiredTypeDescription
bodyYes#/$defs/ApiKeywordsCreateFromSearchRequestSee the schema below for constraints and defaults.
confirmNobooleanSee the schema below for constraints and defaults.
Complete input schema
{
"$defs": {
"ApiKeywordsCreateFromSearchRequest": {
"additionalProperties": false,
"properties": {
"contact_limit": {
"default": 50,
"description": "Max contacts to pre-resolve per keyword.",
"maximum": 100.0,
"minimum": 1.0,
"title": "Contact Limit",
"type": "integer"
},
"keywords": {
"description": "1-10 free-text keyword queries. Each is searched against the intent page index, contacts/companies are resolved, and a compete-tracking keyword row is saved. Duplicates within the request (case-insensitive, trimmed) are skipped, not re-saved.",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"title": "Keywords",
"type": "array"
},
"page_limit": {
"default": 20,
"description": "Max pages to seed per keyword. Deliberately smaller than create-from-domain's 200 default since this runs once per keyword.",
"maximum": 50.0,
"minimum": 1.0,
"title": "Page Limit",
"type": "integer"
},
"search_filters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional intent-search filters applied to EVERY keyword in the batch (audience, page_type, commercial_score_min, etc.). Stored verbatim on each saved keyword row so the daily resolver replays them.",
"title": "Search Filters"
},
"semantic_ratio": {
"default": 0.0,
"description": "0 = text search (default, cheapest), 1 = semantic, between = hybrid.",
"maximum": 1.0,
"minimum": 0.0,
"title": "Semantic Ratio",
"type": "number"
}
},
"required": [
"keywords"
],
"title": "ApiKeywordsCreateFromSearchRequest",
"type": "object"
}
},
"properties": {
"body": {
"$ref": "#/$defs/ApiKeywordsCreateFromSearchRequest"
},
"confirm": {
"default": false,
"title": "Confirm",
"type": "boolean"
}
},
"required": [
"body"
],
"title": "g8_intent_keywords_create_from_searchArguments",
"type": "object"
}

g8_intent_list_keywords

All compete-tracking keyword rows for this org. Each row carries total_resolved_contacts and total_resolved_companies so you can rank by delivered compete intelligence. Args: keyword_contains: Optional case-insensitive substring filter. page: Page number (default 1). limit: Rows per page (default 100, max 500).

Inputs

InputRequiredTypeDescription
keyword_containsNostring / nullSee the schema below for constraints and defaults.
pageNointegerSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_contains": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Keyword Contains"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"title": "g8_intent_list_keywordsArguments",
"type": "object"
}

g8_intent_page_visitors

Resolve the people who visited a specific page URL. Args: url: Canonical PAGE_URL (no scheme, no www), e.g. “cognism.com/pricing”. limit: Max visitors (default 50, max 500). mode: “quick” (~500ms, CID + UP_ID only) or “full” (~2-3s, all identity paths).

Inputs

InputRequiredTypeDescription
urlYesstringSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
modeNostringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"mode": {
"default": "quick",
"title": "Mode",
"type": "string"
}
},
"required": [
"url"
],
"title": "g8_intent_page_visitorsArguments",
"type": "object"
}

g8_intent_pages_contacts

Aggregated, deduplicated resolved contacts across multiple page URLs. Useful for compete-tracking setup: pre-populate a keyword’s contacts so it shows real counts immediately. Args: urls: Up to 200 canonical PAGE_URLs. limit: Max contacts returned (default 100, max 500). mode: “quick” or “full”.

Inputs

InputRequiredTypeDescription
urlsYesarraySee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
modeNostringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"urls": {
"items": {
"type": "string"
},
"title": "Urls",
"type": "array"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
},
"mode": {
"default": "quick",
"title": "Mode",
"type": "string"
}
},
"required": [
"urls"
],
"title": "g8_intent_pages_contactsArguments",
"type": "object"
}

g8_intent_pages_visitor_counts

Batched unique-visitor count per page URL. Useful for ranking a URL list by traffic before drilling into contacts. Args: urls: Up to 15,000 canonical PAGE_URLs.

Inputs

InputRequiredTypeDescription
urlsYesarraySee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"urls": {
"items": {
"type": "string"
},
"title": "Urls",
"type": "array"
}
},
"required": [
"urls"
],
"title": "g8_intent_pages_visitor_countsArguments",
"type": "object"
}

g8_intent_search_pages

Text / semantic / hybrid search across intent-enriched pages. Supports operator syntax: bare domain (cognism.com) -> domain-mode; site:cognism.com, intitle:pricing, inurl:blog, type:blog, audience:b2b, -excluded_word. Args: query: Search string (free-form text + operators). limit: Max results (default 50, max 500). semantic_ratio: 0.0 text-only, 1.0 semantic-only, between = hybrid. filters: Optional filter dict (audience, page_type, commercial_intent_level, etc.). sort: Optional sort fields like [“commercial_score:desc”]. include_visitors: When true, enriches each hit with a visitor count.

Inputs

InputRequiredTypeDescription
queryYesstringSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
semantic_ratioNonumberSee the schema below for constraints and defaults.
filtersNoobject / nullSee the schema below for constraints and defaults.
sortNoarray / nullSee the schema below for constraints and defaults.
include_visitorsNobooleanSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"semantic_ratio": {
"default": 0.0,
"title": "Semantic Ratio",
"type": "number"
},
"filters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Filters"
},
"sort": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort"
},
"include_visitors": {
"default": true,
"title": "Include Visitors",
"type": "boolean"
}
},
"required": [
"query"
],
"title": "g8_intent_search_pagesArguments",
"type": "object"
}

g8_intent_search_url_companies

Companies that visited a single page URL, aggregated by company. Drill-down for a URL not yet saved as a keyword (e.g. from g8_intent_search_pages). Returns each company’s audience bucket (b2b/b2c), visit_count, contacts_seen, last_seen, plus light enrichment (industry, employee_count range, logo_url). For keyword-keyed company rollups across many URLs, use g8_intent_keyword_companies instead. Args: url: Canonical page_url, no scheme/www (e.g. “cognism.com/pricing”). days: Lookback window in days (default 90, range 1-365). limit: Max companies returned (default 200, max 500).

Inputs

InputRequiredTypeDescription
urlYesstringSee the schema below for constraints and defaults.
daysNointegerSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"days": {
"default": 90,
"title": "Days",
"type": "integer"
},
"limit": {
"default": 200,
"title": "Limit",
"type": "integer"
}
},
"required": [
"url"
],
"title": "g8_intent_search_url_companiesArguments",
"type": "object"
}

g8_intent_stats

Intent index coverage stats (doc count + size). Call before starting a compete-tracking program to confirm the index has meaningful coverage for the orgs / domains of interest.

Inputs

InputRequiredTypeDescription
NoneNoNo user-supplied inputs.
Complete input schema
{
"properties": {},
"title": "g8_intent_statsArguments",
"type": "object"
}

g8_intent_update_keyword_filters

Replace a keyword’s search_filters JSON. Full replacement, not merge. Optional typed fields: audience (“b2b”|“b2c”|“both”); exclude_page_types (list of “news”|“finance”|“forum”|“vendor_marketing”); min_commercial_intent_level (int 0-100); max_urls_per_domain (int 1-20); llm_triage (bool); exclude_domains (list of domain strings). Args: keyword_id: UUID of the keyword. search_filters: Full replacement filter dict.

Inputs

InputRequiredTypeDescription
keyword_idYesstringSee the schema below for constraints and defaults.
search_filtersYesobjectSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"keyword_id": {
"title": "Keyword Id",
"type": "string"
},
"search_filters": {
"additionalProperties": true,
"title": "Search Filters",
"type": "object"
}
},
"required": [
"keyword_id",
"search_filters"
],
"title": "g8_intent_update_keyword_filtersArguments",
"type": "object"
}