Research Keywords
research_keywords(seedKeywords: string[], mode?: string, limit?: number)Expand a seed term into a ranked demand list.
Keyword ideas with monthly search volume, cost-per-click (CPC), paid competition index, organic keyword difficulty and search intent. Navigational searches (people looking for one site) are listed last, not removed.
Input Parameters
3 arguments| Parameter | Type | Requirement | Default / Constraints | Description |
|---|---|---|---|---|
seedKeywords | string[] | required | One or more seed terms to expand into a ranked demand list. | |
mode | string | optional | suggestions: searches that contain a seed phrase, one request per seed. ideas: the wider category around the seeds in one request, including searches that share no words with them. | |
limit | number | optional | Maximum number of keyword suggestions to return. |
Return Envelope (OFE / 1.0)
Open Fact EnvelopeEvery response adheres to the strict ofe/1.0 envelope schema, returning verified data, typed facts, entity references, and follow-up tool suggestions:
data Payload
Keyword ideas with monthly search volume, cost-per-click (CPC), paid competition index, organic keyword difficulty and search intent. Navigational searches (people looking for one site) are listed last, not removed.
coverage & Freshness
Reports returned count vs total items, observation timestamp as_of, and scope notes. Evaluated live per request.
resources (Dataset Exports)
If a query yields high row counts (e.g. >1,000 queries in Search Console), full unpaginated tables are persisted to R2 and linked as an mcpseo:// URI for follow-up retrieval via export_dataset.
next_actions
Provides suggested follow-up tool calls with pre-filled arguments so your AI agent can navigate from discovery to detailed inspection autonomously.
Emitted Facts & Entities
Knowledge GraphTyped Facts
Facts emitted in the facts[] array with provenance receipts:
| Fact Type | Claim Description | Emitted Data Fields |
|---|---|---|
seo.keyword_opportunity | Search demand metrics for an expanded keyword idea. | keywordsearch_volumecpccompetitionkeyword_difficultysearch_intent |
Registered Entities
Entities registered in the entities[] array to establish subject relationships:
Discovered search queries.
Request & Response Examples
Live MCP PayloadsExact JSON schemas transmitted over Model Context Protocol (stdio or HTTP SSE transport):
1. Client Tool Invocation
{
"tool": "research_keywords",
"arguments": {
"seedKeywords": [
"mcp server",
"model context protocol"
],
"limit": 25
}
}2. Server Envelope Response
{
"schema_version": "ofe/1.0",
"domain": "seo",
"data": {
"seed_keywords": [
"mcp server",
"model context protocol"
],
"mode": "suggestions"
},
"facts": [
{
"type": "seo.keyword_opportunity",
"subject": [
"urn:keyword:mcp+server+examples"
],
"data": {
"keyword": "mcp server examples",
"search_volume": 4800,
"cpc": 2.15,
"competition": 0.34,
"keyword_difficulty": 28,
"search_intent": "informational"
},
"provenance": {
"source_class": "search_index",
"method": "keyword_suggestions",
"confidence": 0.75,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": false
}
},
{
"type": "seo.keyword_opportunity",
"subject": [
"urn:keyword:best+mcp+servers+for+claude"
],
"data": {
"keyword": "best mcp servers for claude",
"search_volume": 3200,
"cpc": 3.4,
"competition": 0.41,
"keyword_difficulty": 35,
"search_intent": "commercial"
},
"provenance": {
"source_class": "search_index",
"method": "keyword_suggestions",
"confidence": 0.75,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": false
}
}
],
"entities": [
{
"id": "urn:keyword:mcp+server+examples",
"kind": "keyword",
"label": "mcp server examples"
},
{
"id": "urn:keyword:best+mcp+servers+for+claude",
"kind": "keyword",
"label": "best mcp servers for claude"
}
],
"coverage": {
"returned": 2,
"total": null,
"as_of": "2026-09-24T00:00:00Z",
"scope_note": "searches containing a seed phrase, highest search volume first"
},
"deltas": [],
"resources": [],
"next_actions": [
{
"tool": "inspect_serp",
"args": {
"keyword": "mcp server examples"
},
"use_when": "inspect live rankings for top terms"
}
]
}LLM Agent Workflow
Claude & Cursor IntegrationPrompt Trigger
"Find keyword ideas and search volume around 'model context protocol'."
Agent Decision & Reasoning
The agent generates related keyword opportunities with difficulty and volume metrics, filtering for high-intent, low-difficulty terms.
Recommended Follow-up Tools
Provenance Guarantees & Error Handling
ReliabilityEvery fact emitted by Vouched includes source_class, method, observed_at ISO timestamp, and a published confidence score. LLM agents can inspect these citations to distinguish first-party verified facts (e.g. Search Console) from modeled competitor estimates.
Billing & API Keys
Paid market data, on Pro and Team. A call typically costs about $0.013 per seed keyword of market data, so Pro's included $4 covers roughly 307 seed keywords. Self-hosted, it uses your own DataForSEO key and bills you directly, with nothing added. See pricing for what each tool costs.
More SEO Tools
6 sibling toolsinspect_domain()Compact factual snapshot for one domain.
discover_competitors()Organic competitors by overlap or seed keywords.
compare_keyword_coverage()Keyword gap vs competitors.
inspect_search_visibility()Ranking positions across a keyword set.
inspect_keyword()Search volume, difficulty, CPC and intent for one keyword.
inspect_page()Keywords + traffic for a single URL.