---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/keyword-research
---
# Keyword Research

Uncover high-opportunity keywords, analyze terms for intent and difficulty, group lists into page clusters, and rank by opportunity score. Every result includes intent classification, recommended page types, and content briefs. Built for content marketers, SEO managers, and product teams.

- **Version:** 0.02
- **Categories:** search, marketing, analytics
- **Workflow:** find_keywords → analyze_keyword → cluster_keywords → score_opportunities

## Skills (4)

### Find Keywords (`find_keywords`)

Research related keywords for a topic so you can spot demand patterns, intent, and the best gaps to target.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `topic` | string | Yes | Seed topic or product area to research |
| `business_goal` | string | No | Optional business goal to bias recommendations toward revenue, signups, leads, or awareness |
| `site_url` | string | No | Optional site URL to compare topic coverage against your current site |
| `country` | string | No | ISO 3166-1 alpha-2 country code to localize search results [default: "us"] |
| `language` | string | No | Language code for SERP research [default: "en"] |
| `limit` | number | No | Maximum number of keyword ideas to return (default: 15, max: 25) [default: 15] |

**Returns:** A prioritized set of keyword ideas with intent, modeled demand, difficulty, and next-step guidance

**Examples:**

*Find keywords for an AI CRM category:*

```json
{
  "topic": "AI CRM software",
  "business_goal": "generate demo requests",
  "limit": 12
}
```

*Find content gaps around a topic for an existing site:*

```json
{
  "topic": "warehouse automation software",
  "site_url": "https://example.com"
}
```

### Analyze Keyword (`analyze_keyword`)

Break down a keyword so you can see intent, SERP features, modeled demand, difficulty, and the best page to create.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `keyword` | string | Yes | Keyword or query to analyze |
| `business_goal` | string | No | Optional business goal to factor into the opportunity recommendation |
| `site_url` | string | No | Optional site URL to check whether your domain already appears in the SERP |
| `country` | string | No | ISO 3166-1 alpha-2 country code to localize search results [default: "us"] |
| `language` | string | No | Language code for SERP research [default: "en"] |

**Returns:** A keyword breakdown with intent, SERP shape, modeled demand, difficulty, and a content brief

**Examples:**

*Analyze a commercial software keyword:*

```json
{
  "keyword": "best crm for startups",
  "business_goal": "drive paid trials"
}
```

*Analyze whether a site should target a comparison keyword:*

```json
{
  "keyword": "hubspot alternatives",
  "site_url": "https://example.com"
}
```

### Cluster Keywords (`cluster_keywords`)

Group keyword lists into clear page clusters so teams can turn raw research into a sane content architecture.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `keywords` | array | Yes | Keyword list to cluster into related page groups |
| `business_goal` | string | No | Optional business goal to bias cluster priorities |
| `site_url` | string | No | Optional site URL to align clusters to an existing site structure |
| `max_clusters` | number | No | Maximum number of clusters to return (default: min(8, keyword count), max: 20) |

**Returns:** Keyword clusters mapped to likely pages, priorities, and information architecture guidance

**Examples:**

*Cluster a batch of CRM keywords into page groups:*

```json
{
  "keywords": [
    "crm for startups",
    "best crm for startups",
    "startup sales pipeline",
    "hubspot alternatives",
    "pipedrive alternatives"
  ]
}
```

*Cluster keywords for an existing site roadmap:*

```json
{
  "keywords": [
    "warehouse automation",
    "warehouse picking software",
    "warehouse robotics",
    "inventory automation software"
  ],
  "site_url": "https://example.com"
}
```

### Score Opportunities (`score_opportunities`)

Prioritize a keyword list so you can decide what to publish now, what to save for later, and what to skip.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `keywords` | array | Yes | Keywords to score and rank by opportunity |
| `business_goal` | string | No | Optional business goal to bias the prioritization model |
| `site_url` | string | No | Optional site URL to factor current domain presence into the score |
| `country` | string | No | ISO 3166-1 alpha-2 country code to localize search results [default: "us"] |
| `language` | string | No | Language code for SERP research [default: "en"] |

**Returns:** A ranked keyword priority list with modeled demand, difficulty, opportunity, and clear next moves

**Examples:**

*Score a shortlist of CRM keywords for prioritization:*

```json
{
  "keywords": [
    "crm for startups",
    "best crm for startups",
    "startup sales software",
    "hubspot alternatives"
  ],
  "business_goal": "generate qualified demos"
}
```

*Score keywords against an existing site footprint:*

```json
{
  "keywords": [
    "warehouse automation software",
    "warehouse robotics",
    "inventory picking software"
  ],
  "site_url": "https://example.com"
}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call keyword-research find_keywords --topic AI CRM software --business_goal generate demo requests --limit 12

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"keyword-research","skill":"find_keywords","input":{"topic":"AI CRM software","business_goal":"generate demo requests","limit":12}}' \
     https://api.toolrouter.com/v1/tools/call
```

## Frequently Asked Questions

### Can I research keywords from a single topic or business goal?

Yes. `find_keywords` starts from a seed topic and can be biased with a business goal such as demos, leads, or signups. You can also pass a site URL to check existing coverage.

### How do I turn keyword ideas into a content plan?

Use `cluster_keywords` to group raw ideas into page clusters, priorities, and URL slugs. It is useful when you want an information architecture instead of a flat keyword list.

### Can I score which keywords are worth targeting first?

Yes. `score_opportunities` ranks keywords by modeled demand, difficulty, and opportunity so you can separate quick wins from longer-term bets.

### What does a deep keyword analysis include?

`analyze_keyword` gives you intent, SERP shape, modeled demand, difficulty, and a content brief with title angles for the keyword you are evaluating.

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs