Not in the top 1,000 by GitHub stars
anthonylee991/seo-data
Claude Skill for direct access to Google Search Console, GA4, and Bing Webmaster Tools data — query your real SEO numbers from Claude.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 71dbd690401f
No earlier version was observed for comparison.
Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- seo-data
/
How it works
seo-data
When your agent uses it
Direct access to Google Search Console, Google Analytics 4, and Bing Webmaster Tools data via OAuth/API key. Use whenever the user asks SEO, search performance, organic traffic, ranking, impressions, clicks, CTR, conversions, traffic source, landing page, or analytics questions and wants real numbers from their own properties — not generic advice. Triggers on "SEO", "search console", "GSC", "GA4", "analytics", "Bing webmaster", "rankings", "keywords", "impressions", "clicks", "organic traffic", "traffic drop", "top pages", "top queries". Works with any subset of the three providers the user has connected.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
2,048 tokensWhen the skill is activated
Reference documents
11,993 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Provider matrix
- Vocabulary mapping (which provider for which word)
- First step: check what's connected
- Connecting providers
- Switching properties / accounts
- Querying data
- Workflow patterns
- Important behaviors
Scripts executed separately
lib/__init__.pylib/bing_auth.pylib/config.pylib/formatting.pylib/google_auth.pyscripts/bing_query.pyscripts/connect_bing.pyscripts/connect_google.pyscripts/disconnect.pyscripts/ga4_query.pyscripts/gsc_query.pyscripts/set_property.pyscripts/status.py
Files
.gitignoreasset632 bytesAGENT.mddoc16,137 bytesCODE_OF_CONDUCT.mddoc2,157 bytesCONTRIBUTING.mddoc2,663 bytesLICENSEasset10,767 bytesREADME.mddoc8,388 bytesSKILL.mdcore8,619 bytesSKILL.mdcore8,619 bytesSKILL.mdcore8,619 bytesSKILL.mdcore8,619 bytesSKILL.mdcore8,619 bytesTHIRD_PARTY_NOTICES.mddoc2,769 bytesdocs/SETUP.mddoc16,545 byteslib/__init__.pyruns0 byteslib/bing_auth.pyruns2,776 byteslib/config.pyruns3,010 byteslib/formatting.pyruns1,804 byteslib/google_auth.pyruns4,999 bytesrequirements.txtdoc126 bytesscripts/bing_query.pyruns8,982 bytesscripts/connect_bing.pyruns1,851 bytesscripts/connect_google.pyruns2,905 bytesscripts/disconnect.pyruns822 bytesscripts/ga4_query.pyruns7,985 bytesscripts/gsc_query.pyruns4,786 bytesscripts/set_property.pyruns2,793 bytesscripts/status.pyruns1,397 bytes
Read SKILL.md
# seo-data — Unified GSC / GA4 / Bing Webmaster Skill
Provides direct, authenticated access to a user's own SEO data across three platforms. Each provider is independent: the user may have one, two, or all three connected. **Always degrade gracefully** — never fail an answer because one provider is missing; use what's available and tell the user what you skipped.
## Provider matrix
| Provider | Auth | What it answers |
|---|---|---|
| GSC (Google Search Console) | OAuth | What people *searched* for on Google before reaching the site (queries, impressions, clicks, CTR, position) |
| GA4 (Google Analytics 4) | OAuth (same Google account) | What users *did* on the site (sessions, page views, conversions, traffic sources, geography) |
| Bing Webmaster Tools | API key | Same questions as GSC, but for Bing search |
GSC ≠ GA4. GSC is "what Google's index thinks about your site." GA4 is "what visitors do once they land." They complement each other; cross-referencing them is one of the highest-value workflows this skill enables.
View the complete source on GitHubSkills included
- seo-data
Repository facts
- License
- Apache-2.0
- Created
- May 4, 2026
- Last pushed
- May 4, 2026
- Forks
- 7
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 4 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 62 network referencesin 10 files: THIRD_PARTY_NOTICES.md:19 AGENT.md:46 docs/SETUP.md:30 and 7 more
- No hidden or obfuscated text
- No instruction overrides
- 13 executable scriptsin 13 files: lib/__init__.py:1 lib/bing_auth.py:1 lib/config.py:1 and 10 more
- 16 references to secretsin 8 files: lib/bing_auth.py:26 .gitignore:6 scripts/connect_bing.py:28 and 5 more
- No requests to vote in Hot
Show all 91 signals by file
.gitignore
AGENT.md
- Network accessline 46
> Your Python version is too old. Please install Python 3.10 or newer from https://www.python.org/downloads/ and re-run me. - Network accessline 54
> I can't find your Claude Code skills directory at `~/.claude/skills/`. Make sure Claude Code (or another agent that supports Claude Skills) is installed first: https://claude.com/claude-code - Network accessline 141
> To connect Bing Webmaster Tools I need your API key. Here's how to get it: > > 1. Open https://www.bing.com/webmasters in a new browser tab. - Network accessline 142
> > 1. Open https://www.bing.com/webmasters in a new browser tab. > 2. Sign in with the Microsoft account that owns your Bing Webmaster Tools setup. - Network accessline 143
> 1. Open https://www.bing.com/webmasters in a new browser tab. - Network accessline 186
> To connect Google we need to create a free OAuth client in your own Google Cloud project. This takes about 5–10 minutes the first time. Don't worry about billing — everything is in the free tier. > > First step: open https://console.cloud - Network accessline 188
> First step: open https://console.cloud.google.com/ in your browser and sign in with the Google account that owns your GSC sites and GA4 properties. Tell me when you're signed in. - Network accessline 318
> > 1. `sc-domain:example.com` (siteOwner) > 2. `https://example.com/` (siteOwner) - Network accessline 319
> 1. `sc-domain:example.com` (siteOwner) > 2. `https://example.com/` (siteOwner) > 3. ... - Network accessline 320
> 2. `https://example.com/` (siteOwner) - Network accessline 321
> 3. ... > > Tip: domain properties (`sc-domain:`) capture all subdomains and www/non-www variants in one report. URL prefix properties (`https://...`) only match that exact origin. - Network accessline 323
> Tip: domain properties (`sc-domain:`) capture all subdomains and www/non-www variants in one report. URL prefix properties (`https://...`) only match that exact origin.
CODE_OF_CONDUCT.md
- Network accessline 41
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
CONTRIBUTING.md
LICENSE
README.md
- Network accessline 3
[](LICENSE) - Network accessline 4
[](https://www.python.org/downloads/) - Network accessline 28
- [Python 3.10+](https://www.python.org/downloads/) - Network accessline 29
- A working [Claude Code](https://claude.com/claude-code) install (or any agent that supports Claude Skills) - Network accessline 84
# Switch property python scripts/set_property.py --provider gsc --site https://example.com/ - Network accessline 85
python scripts/set_property.py --provider gsc --site https://example.com/
THIRD_PARTY_NOTICES.md
- Network accessline 19
- **Package**: google-api-python-client - **Source**: https://github.com/googleapis/google-api-python-client - Network accessline 20
- **Source**: https://github.com/googleapis/google-api-python-client - Network accessline 28
- **Package**: google-auth - **Source**: https://github.com/googleapis/google-auth-library-python - Network accessline 29
- **Source**: https://github.com/googleapis/google-auth-library-python - Network accessline 37
- **Package**: google-auth-oauthlib - **Source**: https://github.com/googleapis/google-auth-library-python-oauthlib - Network accessline 38
- **Source**: https://github.com/googleapis/google-auth-library-python-oauthlib - Network accessline 46
- **Package**: google-analytics-data - **Source**: https://github.com/googleapis/python-analytics-data - Network accessline 47
- **Source**: https://github.com/googleapis/python-analytics-data - Network accessline 59
- **Package**: requests - **Source**: https://github.com/psf/requests - Network accessline 60
- **Source**: https://github.com/psf/requests - Network accessline 74
https://www.apache.org/licenses/LICENSE-2.0 - Network accessline 84
- **Google Search Console API** -- https://developers.google.com/webmaster-tools/v1/api_reference_index - Network accessline 85
- **Google Analytics Data API** -- https://developers.google.com/analytics/devguides/reporting/data/v1 - Network accessline 86
- **Google Analytics Admin API** -- https://developers.google.com/analytics/devguides/config/admin/v1 - Network accessline 87
- **Bing Webmaster Tools API** -- https://learn.microsoft.com/en-us/bingwebmaster/getting-access
docs/SETUP.md
- Network accessline 30
- **Python 3.10 or newer.** Open a terminal and run `python --version`. If you see something older than 3.10 (or "command not found"), install from [python.org/downloads](https://www.python.org/downloads/). - **Git** (only needed if you wan - Network accessline 32
- **Claude Code** (or another agent that supports Claude Skills). If you don't have it yet, follow the install instructions at [claude.com/claude-code](https://claude.com/claude-code). - Network accessline 39
# Option A — Clone it git clone https://github.com/anthonylee991/seo-data.git - Network accessline 40
git clone https://github.com/anthonylee991/seo-data.git - Network accessline 114
1. Open [bing.com/webmasters](https://www.bing.com/webmasters) in your browser. - Access to secretsline 129
[Credential-related source omitted] - Network accessline 156
Go to [console.cloud.google.com](https://console.cloud.google.com/) and sign in with the Google account that owns the GSC sites and GA4 properties you want to query. Use the same account for both — that's the whole point. - Network accessline 281
- `sc-domain:example.com` — *domain property*, recommended. Captures all subdomains, www/non-www, and http/https in one report. - `https://example.com/` — *URL prefix property*, only matches that exact origin. - Network accessline 282
- `https://example.com/` — *URL prefix property*, only matches that exact origin. - Network accessline 291
# Bing — pick by site URL python ~/.claude/skills/seo-data/scripts/set_property.py --provider bing --site "https://example.com/" - Network accessline 292
python ~/.claude/skills/seo-data/scripts/set_property.py --provider bing --site "https://example.com/"
lib/__init__.py
- Executable scriptline 1
Executable file
lib/bing_auth.py
- Executable scriptline 1
Executable file - Network accessline 15
BING_API_BASE = "https://ssl.bing.com/webmaster/api.svc/json" - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Network accessline 50
[Credential-related source omitted] - Network accessline 51
[Credential-related source omitted] - Network accessline 52
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 92
url = f"{BING_API_BASE}/{method}" resp = requests.get(url, params=full_params, timeout=30) - Network accessline 93
resp = requests.get(url, params=full_params, timeout=30)
lib/config.py
lib/formatting.py
- Executable scriptline 1
Executable file
lib/google_auth.py
- Executable scriptline 1
Executable file - Network accessline 21
SCOPES = [ "https://www.googleapis.com/auth/webmasters.readonly", - Network accessline 22
"https://www.googleapis.com/auth/webmasters.readonly", - Network accessline 23
"https://www.googleapis.com/auth/analytics.readonly", - Access to secretsline 96
[Credential-related source omitted]
scripts/bing_query.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/connect_bing.py
scripts/connect_google.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/disconnect.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/ga4_query.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/gsc_query.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/set_property.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 11
# Select a property python scripts/set_property.py --provider gsc --site https://example.com/ - Network accessline 12
python scripts/set_property.py --provider gsc --site https://example.com/ - Network accessline 13
python scripts/set_property.py --provider ga4 --property 123456789 python scripts/set_property.py --provider bing --site https://example.com/ """ - Network accessline 14
python scripts/set_property.py --provider bing --site https://example.com/ - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 86 facts
- Network access in prose of documentationAGENT.md:46Low confidence
- Network access in prose of documentationAGENT.md:54Low confidence
- Network access in prose of documentationAGENT.md:141Low confidence
- Network access in prose of documentationAGENT.md:142Low confidence
- Network access in prose of documentationAGENT.md:143Low confidence
- Network access in prose of documentationAGENT.md:186Low confidence
- Network access in prose of documentationAGENT.md:188Low confidence
- Network access in prose of documentationAGENT.md:318Low confidence
- Network access in prose of documentationAGENT.md:319Low confidence
- Network access in prose of documentationAGENT.md:320Low confidence
- Network access in prose of documentationAGENT.md:321Low confidence
- Network access in prose of documentationAGENT.md:323Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:41Low confidence
- Network access in prose of documentationCONTRIBUTING.md:36Low confidence
- Network access in prose of documentationCONTRIBUTING.md:71Low confidence
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:4Low confidence
- Network access in prose of documentationREADME.md:28Low confidence
- Network access in prose of documentationREADME.md:29Low confidence
- Network access in code of documentationREADME.md:84Low confidence
- Network access in code of documentationREADME.md:85Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:19Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:20Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:28Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:29Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:37Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:38Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:46Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:47Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:59Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:60Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:74Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:84Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:85Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:86Low confidence
- Network access in prose of documentationTHIRD_PARTY_NOTICES.md:87Low confidence
- Network access in prose of documentationdocs/SETUP.md:30Low confidence
- Network access in prose of documentationdocs/SETUP.md:32Low confidence
- Network access in code of documentationdocs/SETUP.md:39Low confidence
- Network access in code of documentationdocs/SETUP.md:40Low confidence
- Network access in prose of documentationdocs/SETUP.md:114Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuedocs/SETUP.md:129Low confidence
- Network access in prose of documentationdocs/SETUP.md:156Low confidence
- Network access in prose of documentationdocs/SETUP.md:281Low confidence
- Network access in prose of documentationdocs/SETUP.md:282Low confidence
- Network access in code of documentationdocs/SETUP.md:291Low confidence
- Network access in code of documentationdocs/SETUP.md:292Low confidence
- Executable script in prose of a file that runslib/__init__.py:1Low confidence
- Executable script in prose of a file that runslib/bing_auth.py:1Low confidence
- Network access in code of a file that runslib/bing_auth.py:15High confidence
and 36 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.