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.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 71dbd690401f4b0f5c0b7fd3bc48f1ba322f311f

24GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

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

Oct 25, 2026Oct 25, 202624

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

2,048 tokens

When the skill is activated

Reference documents

11,993 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Provider matrix
  2. Vocabulary mapping (which provider for which word)
  3. First step: check what's connected
  4. Connecting providers
  5. Switching properties / accounts
  6. Querying data
  7. Workflow patterns
  8. Important behaviors

Scripts executed separately

  • lib/__init__.py
  • lib/bing_auth.py
  • lib/config.py
  • lib/formatting.py
  • lib/google_auth.py
  • scripts/bing_query.py
  • scripts/connect_bing.py
  • scripts/connect_google.py
  • scripts/disconnect.py
  • scripts/ga4_query.py
  • scripts/gsc_query.py
  • scripts/set_property.py
  • scripts/status.py

Files

  • .gitignoreasset632 bytes
  • AGENT.mddoc16,137 bytes
  • CODE_OF_CONDUCT.mddoc2,157 bytes
  • CONTRIBUTING.mddoc2,663 bytes
  • LICENSEasset10,767 bytes
  • README.mddoc8,388 bytes
  • SKILL.mdcore8,619 bytes
  • SKILL.mdcore8,619 bytes
  • SKILL.mdcore8,619 bytes
  • SKILL.mdcore8,619 bytes
  • SKILL.mdcore8,619 bytes
  • THIRD_PARTY_NOTICES.mddoc2,769 bytes
  • docs/SETUP.mddoc16,545 bytes
  • lib/__init__.pyruns0 bytes
  • lib/bing_auth.pyruns2,776 bytes
  • lib/config.pyruns3,010 bytes
  • lib/formatting.pyruns1,804 bytes
  • lib/google_auth.pyruns4,999 bytes
  • requirements.txtdoc126 bytes
  • scripts/bing_query.pyruns8,982 bytes
  • scripts/connect_bing.pyruns1,851 bytes
  • scripts/connect_google.pyruns2,905 bytes
  • scripts/disconnect.pyruns822 bytes
  • scripts/ga4_query.pyruns7,985 bytes
  • scripts/gsc_query.pyruns4,786 bytes
  • scripts/set_property.pyruns2,793 bytes
  • scripts/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 GitHub

Skills 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 shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 91 signals by file

.gitignore

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]

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

  • Network accessline 36
    We use [ruff](https://github.com/astral-sh/ruff) for linting and formatting:
  • Network accessline 71
    Open an issue at [github.com/anthonylee991/seo-data/issues](https://github.com/anthonylee991/seo-data/issues) with:

LICENSE

  • Network accessline 1
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 3
    http://www.apache.org/licenses/
  • Network accessline 184
    http://www.apache.org/licenses/LICENSE-2.0

README.md

  • Network accessline 3
    [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
  • Network accessline 4
    [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](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

  • Executable scriptline 1
    Executable file
  • Access to secretsline 29
    [Credential-related source omitted]

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]

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]

scripts/status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 25
    [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

and 36 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.