feat(seo-skills): multi-backend Data Source Selection (#7)

Replaces single-vendor (Ahrefs-only) tool defaults with a per-task
backend menu across all 14 SEO skills. Each skill now lists every
capable MCP in allowed-tools and documents how to pick between
Semrush, Ahrefs, OurSEO Agent (CLI + MCP), DataForSEO, and GSC
in its SKILL.md Data Source Selection section.

Tool stubs (~40 new files) populated per skill with capability
deltas, call patterns, and explicit "not for this skill when"
callouts so the menu is self-correcting.

Skills affected: 19-keyword-strategy, 20-serp-analysis,
21-position-tracking, 22-link-building, 23-content-strategy,
24-ecommerce, 25-kpi-framework, 26-international, 27-ai-visibility,
28-knowledge-graph, 31-competitor-intel, 32-crawl-budget,
33-migration-planner, 34-reporting-dashboard.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrew Yim
2026-05-14 03:15:32 +09:00
committed by GitHub
parent 1ca84f67ed
commit e527fb4b0f
71 changed files with 2647 additions and 258 deletions

View File

@@ -1,15 +1,27 @@
# Ahrefs
# Ahrefs MCP
> TODO: Document tool usage for this skill
**Default** when an Ahrefs Rank Tracker project exists for the domain — Ahrefs' rank tracker is the strongest in this category. Namespace: `mcp__ahrefs__*` / `mcp__claude_ai_Ahrefs__*`.
## Available Commands
## Key endpoints
- [ ] List commands
- `rank-tracker-overview` — current position distribution, visibility
- `rank-tracker-serp-overview` — SERP for each tracked keyword
- `rank-tracker-competitors-overview` — competitor positions for the same keywords
- `rank-tracker-competitors-pages` — top competitor pages
- `rank-tracker-competitors-stats` — aggregate competitor visibility
- `gsc-keywords` — first-party rank data when GSC is connected to the Ahrefs project
## Configuration
## Example
- [ ] Add configuration details
```
mcp__ahrefs__rank-tracker-overview(project_id="<id>")
mcp__ahrefs__rank-tracker-competitors-stats(project_id="<id>")
```
## Examples
Project must already exist in Ahrefs — list via `management-projects`.
- [ ] Add usage examples
## Not for this skill when
- **No Ahrefs project for the domain** — Semrush `tracking_research` is the simplest alternative.
- **First-party rank truth without an Ahrefs project** — use GSC via `our research search-console queries`.
- **One-off spot-check for a single keyword** — `mcp__ourseo__check_serp` is cheaper.

View File

@@ -0,0 +1,40 @@
# Google Search Console
**First-party position data** — what Google actually rendered for the verified site. Estimates from Semrush/Ahrefs/DataForSEO are modelled; GSC is observed.
Two entry points:
1. **`our research search-console` CLI** — primary, cached, scriptable.
2. **Ahrefs `gsc-*`** — only when an Ahrefs project is connected to the GSC property.
## CLI commands
```bash
our research search-console queries --site sc-domain:<domain> --days 28
our research search-console pages --site sc-domain:<domain> --days 28
our research search-console combined --site sc-domain:<domain> --days 28
```
`sc-domain:` prefix for Domain-verified properties. URL-prefix properties use the plain URL.
## Ahrefs GSC tools
```
mcp__ahrefs__gsc-keywords(project_id="<id>", limit=100)
mcp__ahrefs__gsc-keyword-history(project_id="<id>", keyword="<kw>")
mcp__ahrefs__gsc-positions-history(project_id="<id>")
mcp__ahrefs__gsc-performance-by-position(project_id="<id>")
```
## Strengths
- **Ground truth** — only first-party position source.
- Includes impressions and CTR per query — useful for visibility weighting beyond raw position.
- Anonymous-query data via `mcp__ahrefs__gsc-anonymous-queries`.
## Not for this skill when
- **Net-new keyword discovery** — GSC only shows queries the site already ranked for. Pair with Semrush/Ahrefs for discovery.
- **Competitor positions** — GSC is single-site.
Gotcha: `our-claude-skills/custom-skills/15-seo-search-console/code/gotcha/gsc-cli-integration.md`.

View File

@@ -0,0 +1,37 @@
# OurSEO Agent (CLI + MCP)
Two paths:
1. **CLI** (Claude Code) — `our serp *` and `our keywords *` (DataForSEO under the hood).
2. **MCP** (Claude Desktop) — `mcp__ourseo__check_serp` for single-keyword spot-check.
## CLI commands
```bash
# Ranked keywords for a domain (modelled)
our serp ranked-keywords <domain> --location 2410 --limit 100 --format json
our serp domain-overview <domain> --location 2410 --format json
our serp competitors <domain> --location 2410
# Volume / KD pulls to weight visibility scores
our keywords volume "<kw1>" "<kw2>" --location 2410 --language ko
```
Location codes: `2410` Korea, `2840` US, `2392` Japan.
## MCP tool (spot-check)
```
mcp__ourseo__check_serp(keyword="<keyword>", domain="<target>", country="kr")
```
## Strengths
- Cheapest per call for Korean batch rank pulls (`--location 2410`).
- No project setup required — just call.
- MCP `check_serp` is the cheapest live position verification path.
## Not for this skill when
- **Historical trend / period-over-period continuity** — needs an Ahrefs / Semrush project that polls regularly. OurSEO is point-in-time only; pair with MySQL workspace to keep history.
- **First-party position truth** — GSC.

View File

@@ -0,0 +1,27 @@
# Semrush MCP
Default when no Ahrefs Rank Tracker project exists for the domain. Strong for English / major-market position scans.
Call pattern: discovery → `get_report_schema``execute_report`.
## Key reports
- `tracking_research` — position tracking projects
- `organic_research` — ranked keywords for a domain
- `overview_research` — visibility distribution
## Example
```
mcp__semrush__tracking_research(query="<keyword>", database="us")
mcp__semrush__get_report_schema(report_id="<id>")
mcp__semrush__execute_report(report_id="<id>", params={...})
```
Korean market: `database="kr"`.
## Not for this skill when
- **Ahrefs project already exists for the domain** — use Ahrefs rank-tracker for historical continuity.
- **First-party ranking truth** — GSC (`our research search-console`).
- **Bulk Korean rank pulls** — `our serp ranked-keywords --location 2410` is cheaper.