GSC Wizard plugin for Hermes Agent
Your own Google Search Console, Bing Webmaster, GA4, Merchant Center and Yandex Webmaster data inside Hermes Agent, through the hosted GSC Wizard MCP server (130+ SEO analytics tools), plus 34 guided skills for the workflows SEO professionals run most.
The server does the statistics itself (anomaly detection, change points, content decay, cannibalization, forecasts, migration health) and returns finished results, so the agent explains a result instead of computing trends over whatever raw rows fit in its context window. Every skill also requires every figure it reports to name the tool and the date range it came from.
Ask things like:
- "Audit sc-domain:example.com and tell me what to fix first"
- "Why did my clicks drop in the second week of September?"
- "Which of my pages are decaying and what should I do about them?"
- "Do I have cannibalization issues on my money keywords?"
- "Why aren't my new product pages indexed?"
- "Are my products eligible for free listings, and how are they priced against the market?"
What is in this package
An Agent Plugins v1 package with configuration and Markdown only, no code:
plugin.json: the manifest. It marks thegsc-wizardserveruntrusted, so Hermes asks before every tool the server does not mark read-only.mcp.json: one MCP server,gsc-wizard, that runs the pinnedmcp-remote@0.15.2throughnpxand connects it tohttps://mcp.gscwizard.com/mcpwith OAuth sign-in.skills/*/SKILL.md: 34 skills. Each resolves the property, picks lag-safe date windows, calls the right tools with the right arguments, interprets the result and ends with a prioritized list of actions.
Install
hermes plugins install gsc-wizard --enable
Or straight from this repository:
hermes plugins install https://github.com/gscwizard/hermes-plugin.git --enable
Requirements: Hermes Agent 0.21.6 or newer, Node.js 20.18.1 or newer with npx on the PATH, and a GSC Wizard account with an active plan or the 7-day free trial, with your Google account connected (GA4, Bing, Yandex and Merchant Center are optional connections made in the app).
Sign in
The first time Hermes connects to the server, mcp-remote opens your browser on the GSC Wizard sign-in page. Sign in and allow access; the agent sees the properties your GSC Wizard account can see.
Hermes waits about a minute for a new MCP connection. If signing in takes longer (a new account, connecting Google for the first time), the attempt is dropped and the next use opens the sign-in page again. Creating the account first at tool.gscwizard.com avoids that, and so does letting Hermes run the sign-in itself. Hermes's own OAuth client then replaces this package's mcp-remote server, and the skills keep working:
hermes mcp add gsc-wizard --url https://mcp.gscwizard.com/mcp --auth oauth
On a headless machine, use a GSC Wizard API key instead (create one under Account → API keys; a read-only key is enough for every skill's read steps). An entry in config.yaml replaces this package's server:
# ~/.hermes/config.yaml
mcp_servers:
gsc-wizard:
url: "https://mcp.gscwizard.com/mcp"
headers:
Authorization: "Bearer gscw_live_..."
Skills
Hermes picks a skill up when your request matches its description, or you can ask for one by name.
Diagnose and report
| Skill | What it does |
| :---- | :----------- |
| gsc-wizard:site-audit | Comprehensive SEO health audit with a prioritized action plan |
| gsc-wizard:weekly-report | Weekly performance digest with movers, probable causes and watch items |
| gsc-wizard:traffic-drop | Date a traffic drop, test the causes in order and name the most probable one |
| gsc-wizard:anomaly-check | Quiet scheduled check that replies in one line unless something needs a human |
| gsc-wizard:ranking-changes | Winners and losers between any two periods, by query and by page |
| gsc-wizard:client-report | Generate a styled report and share it through the client portal |
| gsc-wizard:portfolio-overview | Every property on the account at once, with tags and the sites that need attention |
Content and queries
| Skill | What it does |
| :---- | :----------- |
| gsc-wizard:content-decay | Find decaying content and build a recovery plan per page |
| gsc-wizard:cannibalization | Detect competing pages and pick a canonical winner per query cluster |
| gsc-wizard:quick-wins | Striking-distance keywords, CTR gaps and poaching opportunities, ranked by impact |
| gsc-wizard:ctr-optimization | Pages whose CTR underperforms at a stable position, with a title rewrite brief each |
| gsc-wizard:page-deep-dive | Everything about one URL: queries, indexing, on-page, vitals and GA4 engagement |
| gsc-wizard:query-deep-dive | Everything about one keyword: pages, markets, devices, Bing demand and GA4 value |
| gsc-wizard:long-tail-analysis | Head, middle and long tail segments plus the share of traffic no row carries |
| gsc-wizard:branded-split | Branded versus non-branded performance and the keywords that define the split |
| gsc-wizard:country-device | Market and device performance, with the gaps worth fixing |
| gsc-wizard:content-groups | Define URL-based content groups and measure each one |
Technical and indexing
| Skill | What it does |
| :---- | :----------- |
| gsc-wizard:indexing-health | Indexing and crawl health check across GSC, sitemaps and Bing |
| gsc-wizard:indexing-tracker | Track a set of URLs until they are indexed, with on-demand re-checks |
| gsc-wizard:indexnow-submit | Set up an IndexNow key and submit URLs, with the submission history |
| gsc-wizard:sitemap-audit | Sitemap errors, URLs with no impressions and (re)submission |
| gsc-wizard:onpage-audit | Live technical on-page audit of a set of pages, issues grouped by severity |
| gsc-wizard:core-web-vitals | Field Core Web Vitals with regressions, tied to the pages that carry the clicks |
| gsc-wizard:site-migration | Before/after migration health, redirect mappings and the URLs that did not recover |
| gsc-wizard:experiment-results | Read out an SEO split test with significance and confounders |
| gsc-wizard:traffic-forecast | Seasonal forecast of clicks or impressions with year-over-year context |
| gsc-wizard:property-setup | Onboard a new property: register, brand keywords, sitemaps, filters, dashboard |
GA4, Bing, Yandex and Merchant Center
| Skill | What it does |
| :---- | :----------- |
| gsc-wizard:ga4-overview | GA4 traffic, conversions, error pages and custom dimensions for the linked property |
| gsc-wizard:ai-assistant-traffic | Traffic referred by AI assistants and the AI-shaped queries in Search Console |
| gsc-wizard:bing-performance | Bing traffic, queries, pages and keyword demand next to the Google numbers |
| gsc-wizard:bing-crawl-health | Bing crawl stats, crawl issues, feeds, inbound links and URL submission quota |
| gsc-wizard:yandex-performance | Yandex quality index, pages in search, queries and indexing history |
| gsc-wizard:merchant-center-health | Account issues, feed processing and the products that are not eligible |
| gsc-wizard:shopping-performance | Free-listing performance, price position, best sellers and competitor visibility |
The skills are the same ones published in jbobbink/seo-gsc-wizard for other agents, with the reconnect instruction adapted to Hermes. Every skill is checked against the server's tool registry before a release: tool names, argument names and the shared conventions (resolve the property with list_sites first, keep the newest 2 to 3 days out of every window because Search Console data lags, and list the exact items and ask before any tool that writes).
Disclosure
- Network: every tool call goes to GSC Wizard's hosted server (
mcp.gscwizard.com), which reads Google Search Console, Google Analytics 4, Google Merchant Center, Bing Webmaster Tools and Yandex Webmaster through the accounts you connected to GSC Wizard, scoped to your user. On-page audits fetch the pages you name from your own site. - Remote tool set: the tools are served by that server at runtime. The pinned commit of this package covers the configuration and the skills only, not the server's code.
- Logging: the server keeps an audit log of each tool call (tool name and scope, time and duration, outcome, the property it targeted, the error message on failure, and the arguments of write calls only, with credentials redacted). Individual entries are deleted after 7 days; daily counts are kept for 400 days. Arguments of read calls are not stored. Details are in the privacy policy, section 2.6.
- Writes: most tools only read. The write tools are
add_site,create_gsc_property,update_site,delete_site,manage_tags,set_dashboard_visibility, topic cluster, content group, saved filter, annotation and shared report create/update/delete,create_report_client,manage_report_access,submit_indexnow_urls,update_indexnow_settings,submit_sitemap,bulk_inspect_urls, the indexing tracker tools (add_tracked_urls,remove_tracked_urls,check_tracked_url_now),add_migration_redirects,delete_migration_redirectsandrun_feed_audit. The package marks the serveruntrusted, so Hermes asks before each of them and refuses them in unattended runs, and the skills list the exact items and ask before writing. A read-only API key refuses them on the server. - Usage limits: URL inspection counts toward Google's daily URL Inspection quota for the property, and IndexNow and Bing submissions toward theirs.
- Local process and credentials:
npxdownloads and runsmcp-remote@0.15.2from npm. On first use it starts a local callback server on a localhost port, opens the browser, and stores the OAuth tokens for GSC Wizard under~/.mcp-auth. Without a stored token, an unattended run fails when Hermes's connect timeout expires (about a minute) instead of hanging. No credentials live in this repository. - No telemetry from this package, no bundled credentials, no background processes beyond the MCP server process Hermes starts, no self-updater.
Privacy policy: https://www.gscwizard.com/privacy.html · Terms: https://www.gscwizard.com/terms.html · Support: support@gscwizard.com
License
MIT for the contents of this repository. GSC Wizard itself is a hosted service.
README from the reviewed commit eea7ace; it updates when the author re-pins.

GSC Wizard