# SEO Research & Keyword Explorer (with MCP & KGR) (`apiagent/seo-research-mcp`) Actor

Discover high-opportunity long-tail keywords using Google Autocomplete. Get KGR opportunity scores, search intent classification, People Also Ask questions, and SERP weak spot detection — all without any paid API. Native MCP support for AI agents (Cursor, Claude, Hermes).

- **URL**: https://apify.com/apiagent/seo-research-mcp.md
- **Developed by:** [Agent Wang](https://apify.com/apiagent) (community)
- **Categories:** SEO tools, Developer tools, MCP servers
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🎯 SEO Research & Keyword Explorer

> **Zero-cost keyword research powered by Google Autocomplete. Find high-opportunity long-tail keywords, analyze SERP competition, and extract People Also Ask questions — all without any paid API.**

***

### What This Actor Does

Input a seed keyword → Get a complete SEO research report:

✅ **100-300 long-tail keywords** from Google Autocomplete permutations\
✅ **KGR Opportunity Score** (0-100) for each keyword\
✅ **Search intent classification** (Informational / Commercial / Transactional / Navigational)\
✅ **People Also Ask (PAA)** questions with answer snippets\
✅ **SERP weak spot detection** (Reddit, Quora, Forum presence)

**Cost: $0** — No paid APIs required. All data comes from free Google endpoints.

***

### 🚀 Quick Start

#### Option 1: Use on Apify (No Code)

1. Click **"Try for free"** above
2. Enter your seed keyword (e.g. `ai video generator`)
3. Click **"Run"**
4. Download results as JSON, CSV, or Excel

#### Option 2: Use as MCP Server (For AI Agents)

Connect to Cursor, Claude Desktop, or Hermes for AI-powered SEO research:

```json
{
  "mcpServers": {
    "seo-research": {
      "command": "python",
      "args": ["path/to/mcp_server.py"]
    }
  }
}
```

Then ask your AI Agent: *"Research keywords for 'best project management tool'"*

***

### 📥 Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `seedKeywords` | `string[]` | `["ai video generator"]` | 1-10 seed keywords to research |
| `geo` | `string` | `"us"` | Country code: `us`, `uk`, `de`, `jp`, etc. |
| `language` | `string` | `"en"` | Language code: `en`, `es`, `zh-CN`, etc. |
| `maxKeywords` | `integer` | `300` | Max keywords per seed (10-1000) |
| `enablePAA` | `boolean` | `true` | Extract People Also Ask questions |
| `enableSerpSignals` | `boolean` | `true` | Detect Reddit/Quora weak spots |
| `outputFormat` | `string` | `"detailed_json"` | `"detailed_json"` or `"agent_compact"` |

***

### 📤 Output Example

#### Summary Report (agent\_compact mode)

```markdown
## 🎯 SEO Keyword Report: `ai video generator` (US / en)

**Summary**: Discovered **168** keywords | 🔥 **24 High-Opportunity Wins** | ❓ **8 PAA Questions**

#### 🏆 Top Opportunity Keywords

| # | Keyword | Intent | Opportunity | KGR | Volume |
|---|---|---|---|---|---|
| 1 | `ai video generator free without watermark` | Transactional | 🌟 95 | 0.05 | Medium |
| 2 | `how to make ai video for youtube free` | Informational | 🌟 92 | 0.08 | Medium |
| 3 | `ai video generator vs capcut` | Commercial | ⚡ 72 | 0.28 | High |
```

#### Detailed JSON Output

```json
{
  "seed": "ai video generator",
  "summary": {
    "total_keywords_found": 168,
    "high_opportunity_count": 24,
    "total_paa_found": 8
  },
  "keywords": [
    {
      "keyword": "ai video generator free without watermark",
      "search_intent": "transactional",
      "metrics": {
        "opportunity_score": 95,
        "kgr_score": 0.05,
        "estimated_volume_tier": "Medium (1k-10k)"
      }
    }
  ],
  "people_also_ask": [
    {
      "question": "Which AI can generate video from text for free?",
      "snippet_answer": "Several tools provide free text-to-video..."
    }
  ]
}
```

***

### 🔌 MCP Integration (AI Agents)

#### Available Tools

| Tool | Description |
|---|---|
| `research_keywords` | Expand seed → long-tail matrix + KGR + PAA |
| `analyze_serp_competition` | Check SERP for weak spots (Reddit/Quora) |

#### Cursor / Claude Desktop Config

```json
{
  "mcpServers": {
    "seo-research": {
      "command": "python",
      "args": ["G:/path/to/seo-research-mcp/mcp_server.py"],
      "env": { "PYTHONPATH": "" }
    }
  }
}
```

#### Example Agent Prompt

> *"Use the `research_keywords` tool to find long-tail keywords for 'best CRM for small business'. Then create an SEO article outline targeting the top 5 opportunity keywords."*

***

### ❓ FAQ

#### Q: How does the zero-cost model work?

**A:** We use Google's free Autocomplete API (`suggestqueries.google.com/complete/search`) which requires no API key. For competition analysis, we use algorithmic heuristics (KGR proxy) instead of paid tools like Ahrefs or SEMrush.

#### Q: What is KGR (Keyword Golden Ratio)?

**A:** KGR is a metric that estimates competition by comparing the number of search results to keyword volume. A KGR < 0.25 indicates a "golden" opportunity — low competition, high chance to rank on page 1 with quality content.

#### Q: How accurate are the search volume estimates?

**A:** Volume tiers (High/Medium/Low/Long-tail) are algorithmic estimates based on Google Trends data and keyword characteristics. They're directional, not exact. For precise volumes, consider integrating DataForSEO or Keywords Everywhere (BYOK mode coming soon).

#### Q: Can I use this for non-English keywords?

**A:** Yes! Set `language` and `geo` parameters. Tested with: English, Spanish, German, French, Japanese, Chinese, Korean, Portuguese, Italian, Dutch.

#### Q: What's the difference between `detailed_json` and `agent_compact`?

**A:**

- `detailed_json`: Full structured data, best for data pipelines and analysis
- `agent_compact`: Token-optimized Markdown, best for AI agents (saves 70%+ tokens)

#### Q: How many keywords can I get per run?

**A:** Default is 300 per seed keyword. You can set `maxKeywords` from 10 to 1000. With 10 seed keywords, expect 1000-3000 total keywords.

#### Q: Is there rate limiting?

**A:** Google Autocomplete is lenient (10-20 concurrent requests work fine). SERP scraping may hit rate limits — use Apify Proxy for production workloads.

#### Q: Can I export to CSV/Excel?

**A:** Yes! After the Actor run, go to Dataset → Export → choose CSV, JSON, Excel, or XML.

# Actor input Schema

## `seedKeywords` (type: `array`):

Enter 1 to 10 seed keywords to expand and analyze.

## `geo` (type: `string`):

Two-letter country code for Google search localization (e.g., 'us', 'uk', 'ca', 'de', 'jp').

## `language` (type: `string`):

Two-letter language code for Google search localization (e.g., 'en', 'es', 'fr', 'zh-CN').

## `autocompleteModifiers` (type: `array`):

Select modifier strategies for keyword permutations.

## `enablePAA` (type: `boolean`):

Scrape Google People Also Ask questions, summary answers, and source URLs.

## `paaDepth` (type: `integer`):

Exploration depth for People Also Ask questions: 1 for direct questions, 2 for recursive drill-down.

## `enableSerpSignals` (type: `boolean`):

Analyze Top 10 organic SERP results to spot UGC competitors and boost keyword opportunity scores.

## `maxKeywords` (type: `integer`):

Maximum number of unique long-tail keywords to extract per seed keyword.

## `outputFormat` (type: `string`):

Choose between detailed structured JSON or Token-optimized Compact Markdown (for LLMs/MCP).

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration for Google SERP scraping (recommended for cloud runs to bypass Google rate limits).

## Actor input object example

```json
{
  "seedKeywords": [
    "ai video generator"
  ],
  "geo": "us",
  "language": "en",
  "autocompleteModifiers": [
    "alphabet",
    "questions",
    "prepositions",
    "comparisons"
  ],
  "enablePAA": true,
  "paaDepth": 1,
  "enableSerpSignals": true,
  "maxKeywords": 300,
  "outputFormat": "detailed_json",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# Actor output Schema

## `keywords` (type: `string`):

Full structured keyword dataset with KGR metrics, search intent, volume tiers, PAA questions, and SERP competition signals

## `summary` (type: `string`):

High-level summary of processed seeds, high-opportunity keyword counts, and Markdown tables for AI agents

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("apiagent/seo-research-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("apiagent/seo-research-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call apiagent/seo-research-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apiagent/seo-research-mcp"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Zjr3MTEbkhGssLqX1/builds/kU62aRnocImdh3aZJ/openapi.json
