Back to Guides
AI Workflows & Automation
Intermediate11 min read

Hermes Agent for SEO: Connect Search Console, DataForSEO, and Build SEO Skills

Web search lets Hermes Agent read pages, not measure them. This guide adds the data layer: Google Search Console through the mcp-gsc MCP server, keyword and SERP data through DataForSEO, SEO routines packaged as reusable skills, and a scheduled weekly report, with config.yaml blocks and SKILL.md files you can copy.

#hermes-agent#google-search-console#dataforseo#mcp#seo-automation#ai-agent-skills#seo-reporting
Hermes Agent becomes useful for SEO once it can see your data. After the first guide it can fetch pages and search the web, which is enough to audit a page's HTML and nothing more. It cannot tell you which queries a page ranks for, whether clicks dropped, or what a keyword's volume is. Ask anyway and it will answer, with numbers it made up. This guide connects the missing pieces. Google Search Console, through the open-source mcp-gsc server, gives the agent your real clicks, impressions, and positions. DataForSEO, through its official MCP server, adds keyword and SERP data for queries you do not rank for yet. Skills, Hermes's reusable instruction files, turn routines you repeat (a page audit, a weekly report) into procedures the agent runs the same way every time. Last, you schedule the report with Hermes's built-in cron. Commands and config come from the Hermes Agent documentation, the mcp-gsc README on GitHub, and the DataForSEO MCP server README, all checked on 15 September 2026. It assumes you finished guide one: Hermes installed, a model connected, approvals on manual.

Which tools does a Hermes Agent SEO setup need?

LayerWhat it gives the agentHow you connect itNeeded?
Web search + extractLive pages and search resultsAPI key in ~/.hermes/.env (guide 1)Yes
Google Search ConsoleYour clicks, impressions, CTR, positions, URL inspection, sitemapsmcp-gsc MCP server (MIT, community-built)Yes, for sites you own
DataForSEOKeyword, SERP, and other DataForSEO API datadataforseo-mcp-server (Apache-2.0)Optional, paid API
Browser toolsRendered pages on JavaScript-heavy siteshermes tools → browser toolsetFor JS-rendered sites
SkillsRepeatable procedures with your rulesSKILL.md files in ~/.hermes/skills/Yes
CronUnattended scheduled runshermes cron createOptional
MemorySite context and past findings across sessionsBuilt in (MEMORY.md, USER.md)Built in

How do you connect SEO data and skills to Hermes Agent?

1

Turn on the toolsets SEO work needs

Run hermes tools and enable web, browser, file, terminal, skills, memory, and cronjob. Leave unrelated toolsets off (Spotify, Home Assistant, Discord admin): a shorter tool list gives the model less to choose from when it decides what to call. For a one-off session you can also pass a list directly with hermes chat --toolsets.

Terminal
hermes tools

# or, for a single session
hermes chat --toolsets "web,browser,file,skills,memory"
2

Create Google Cloud credentials for Search Console

In Google Cloud Console, create a project, enable the Search Console API, and create credentials. You have two options. An OAuth client signs in as you and sees every property your Google account can reach. A service account sees only the properties where you add its email as a user in Search Console, which the mcp-gsc README says needs full access. For an agent, the service account is the better habit: you decide exactly which sites it can read. Save the downloaded JSON somewhere permanent and outside any git repo.

3

Install mcp-gsc and register it in config.yaml

Install uv, clone mcp-gsc, and add it under mcp_servers in ~/.hermes/config.yaml (full block in the examples below). mcp-gsc needs Python 3.11 or newer. The detail that is easy to miss: Hermes strips environment variables from MCP subprocesses and passes only safe system variables plus what you write in the server's env block, so a GSC_CREDENTIALS_PATH exported in your shell never reaches the server. Leave GSC_ALLOW_DESTRUCTIVE unset so the agent cannot run destructive Search Console operations. Then type /reload-mcp in a chat and ask the agent to list your properties.

Terminal
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/AminForou/mcp-gsc.git ~/mcp/mcp-gsc
cd ~/mcp/mcp-gsc
uv venv .venv
uv pip install -r requirements.txt
4

Add DataForSEO for keyword and SERP data

Create a DataForSEO account, copy your API credentials, and add the official dataforseo-mcp-server to config.yaml with DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD in its env block. It runs through npx, so Node.js must be on your PATH. DataForSEO is a paid API: check its pricing before asking the agent for anything in bulk, and start with a single keyword to see what one request returns. An agent retrying in a loop can send far more requests than you expect. If you prefer not to run the server locally, DataForSEO also hosts one at https://mcp.dataforseo.com/v3/mcp with OAuth.

5

Search the skills hub before writing your own

Search for existing SEO skills with hermes skills search seo, read a skill's SKILL.md before installing it, and install only what matches how you work. Hub skills come from the official Hermes repo, Vercel's skills.sh, GitHub repos, and sites that publish a skills index. Every hub install passes a security scanner that checks for data exfiltration, prompt injection, and destructive commands. A clean scan means the skill is not obviously malicious. It says nothing about whether its SEO advice is good. Our read: generic public checklists are a starting point, and your own skills win because they carry your site's rules.

Terminal
hermes skills search seo
hermes skills browse
hermes skills install <identifier>   # after reading its SKILL.md
hermes skills list
6

Write an on-page audit skill

Create ~/.hermes/skills/seo/page-audit/SKILL.md with YAML frontmatter (name, description, version, tags, required toolsets) and a body that spells out the procedure, the output format, and the pitfalls. Skills load on demand, so the description decides when Hermes reaches for one; write it as the task a person would actually ask for. Test with /page-audit followed by a URL. Then use it for a week and add a line to Pitfalls every time the output goes wrong. Hermes can also create and patch skills itself after complex tasks; set skills.write_approval to true if you want to review those edits before they are saved.

7

Write a weekly Search Console report skill

Create a second skill, gsc-weekly-report, that compares the last 7 days with the previous 7 through mcp-gsc and returns a short report in a fixed format. The fixed format matters more than clever analysis: a report shaped the same every week can be scanned in two minutes and compared with last week. Tell the skill which movements count and set an impressions floor so it ignores noise from tiny queries. Keep in mind that recent Search Console data can still change. mcp-gsc's GSC_DATA_STATE defaults to all, which includes fresh data; set it to final to use finalized data only.

8

Schedule the report with hermes cron

Create the job with hermes cron create, a schedule, a prompt, and --skill gsc-weekly-report. Hermes accepts natural schedules like "every monday 9am" as well as cron expressions like "0 9 * * 1". Each run is saved under ~/.hermes/cron/output/, and once the messaging gateway is set up, --deliver can send results to Telegram, Slack, Discord, or email. Before the first unattended run, review the approvals settings (there is a separate cron_mode) and trigger the job once by hand with hermes cron run so you read the output before anyone else does.

Terminal
hermes cron create "every monday 9am" "Run the weekly Search Console report for sc-domain:example.com and save it to ~/seo/example-com/reports/" --skill gsc-weekly-report --name gsc-weekly

hermes cron list
hermes cron run <job-id>   # test once by hand

Copy-ready config and skill files

config.yaml: MCP servers
mcp_servers:
  gsc:
    command: "/Users/you/mcp/mcp-gsc/.venv/bin/python"
    args: ["/Users/you/mcp/mcp-gsc/gsc_server.py"]
    env:
      GSC_CREDENTIALS_PATH: "/Users/you/keys/gsc-service-account.json"
      GSC_SKIP_OAUTH: "true"
      GSC_DATA_STATE: "all"

  dataforseo:
    command: "npx"
    args: ["-y", "dataforseo-mcp-server@latest"]
    env:
      DATAFORSEO_LOGIN: "your-api-login"
      DATAFORSEO_PASSWORD: "your-api-password"

Use absolute paths. Credentials must sit in each env block because Hermes does not pass your shell environment to MCP servers, so treat config.yaml as a secret file too: chmod 600 and keep it out of git. Run /reload-mcp in a chat after editing.

SKILL.md: seo/page-audit
---
name: page-audit
description: Audit one URL for on-page SEO issues using the live page and Search Console data
version: 1.0.0
metadata:
  hermes:
    tags: [seo, audit]
    category: seo
    requires_toolsets: [web]
---

# On-page SEO audit

## Procedure
1. Fetch the live URL. Quote title, meta description, canonical, robots meta, H1, and H2s.
2. Pull the last 28 days of queries for this URL from Search Console.
3. Check whether the top 5 queries by impressions appear in the title, H1, or first paragraph.

## Output (always this format)
| Element | Current | Issue | Fix | Evidence |

Evidence is a quoted element or a Search Console figure with its date range.

## Never
- Estimate traffic or search volume without a tool result
- Recommend changes to pages other than the given URL
- Rewrite the whole page; propose the specific edit

## Pitfalls (add a line after every bad run)
- Search Console URLs can differ from the live URL by trailing slash or locale prefix; match both
- A plain fetch can miss JavaScript-rendered content; use the browser tool if the body looks empty

The Pitfalls section starts short on purpose. It grows from real mistakes, which is what makes the skill better than a generic checklist.

SKILL.md: seo/gsc-weekly-report
---
name: gsc-weekly-report
description: Weekly Google Search Console report comparing the last 7 days with the previous 7
version: 1.0.0
metadata:
  hermes:
    tags: [seo, reporting, search-console]
    category: seo
---

# Weekly Search Console report

## Procedure
1. Compare the last 7 days with the previous 7 days for the given property.
2. Report site totals: clicks, impressions, CTR, average position, each with % change.
3. List the 5 pages with the largest click loss and the 5 with the largest gain.
4. For each page, list the queries behind the change. Skip queries under 100 impressions in both periods.

## Output
- A 5-line summary first: numbers only, no adjectives
- Then the two tables
- End with at most 3 things worth checking, each tied to a row above

## Never
- Blame a change on an algorithm update without a source
- Round or estimate figures; copy them from the tool output
- Call a single week-over-week change a trend

The 100-impression floor is a starting point, not a rule. Raise it for large sites, lower it for small ones.

Limits and risks of connecting data to the agent

Pages the agent reads can contain text written to manipulate AI agents. Hermes scans its own context files for prompt injection, but a web page is still text going into the model, so keep approvals on manual and never give the agent write access to Search Console. Recent Search Console data is not final, and small week-over-week moves are often noise. mcp-gsc is a community project, not a Google product; review its code and updates as you would any tool holding your credentials. DataForSEO charges for API use, and an agent can run up requests quickly. This guide was checked against documentation on 15 September 2026, not a long-running production setup, so expect to adjust details.

Frequently asked questions

Next: how to review what the agent hands back

Connected data makes output more convincing, not automatically more correct. The last guide in this series is a review routine for Hermes SEO output: spotting AI slop, checking every number against its source, and logging results so your skills improve. If you skipped the install, start with guide one.

Read guide 3: review agent output and catch AI slop

Key takeaways

The data layer turns Hermes Agent from a page reader into an SEO tool. Connect Search Console through mcp-gsc with a service account limited to your properties, add DataForSEO when you need keyword and SERP data beyond your own, and put every credential in the MCP server's env block, because Hermes will not pass your shell environment through. Package routines as skills with a fixed output format and a Pitfalls section you update after each bad run. Schedule a job only after you have run it by hand and read the result.