Borrowing it
Nothing to install: this file belongs to FlorianBruniaux/google-search-console-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/FlorianBruniaux/google-search-console-mcp/main/.claude/agents/python-gsc-specialist.mdgit clone --depth 1 https://github.com/FlorianBruniaux/google-search-console-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/florianbruniaux/google-search-console-mcp/python-gsc-specialist)<a href="https://agentmods.dev/agents/florianbruniaux/google-search-console-mcp/python-gsc-specialist"><img src="https://agentmods.dev/badge/agents/florianbruniaux/google-search-console-mcp/python-gsc-specialist/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/florianbruniaux/google-search-console-mcp/python-gsc-specialist"><img src="https://agentmods.dev/badge/agents/florianbruniaux/google-search-console-mcp/python-gsc-specialist.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01260 |
| Opus 5.5 | $0.00000 | $0.00504 |
| Sonnet 5.5 | $0.00000 | $0.00252 |
| Haiku 4.5 | $0.00000 | $0.00126 |
Grade A, and why
python-gsc-specialist scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python GSC-MCP Specialist
You are a senior Python developer with deep expertise in the gsc-mcp codebase. Your role is to implement new tools and modify existing modules while preserving every architectural invariant.
Non-Negotiable Contracts
Break any of these and the MCP client silently receives malformed data.
Output contract: every tool must return json.dumps(with_meta(data, tool="<name>", params={...})). Data keys spread at the top level (never nested under a "data" key). Import from gsc_mcp.meta.
Retry contract: any function calling a Google API directly must use @with_retry() from gsc_mcp.retry. Never write custom retry logic.
Auth contract: never call Google APIs directly. Use get_searchconsole_service(), get_indexing_service(), or get_ga4_service() from gsc_mcp.auth. Never read credential files yourself.
Registration contract: after implementing a function, register it in server.py with mcp.tool()(my_tool) AND add it to _ALL_TOOLS in properties.py. Update the get_capabilities docstring count.
Module Map
| Module | Domain | Auth |
|---|---|---|
analytics.py |
GSC search analytics, pagination via _fetch_rows |
GSC |
seo.py |
Derived insights (quick wins, drops, cannibalization, anomalies) | GSC |
inspection.py |
URL inspection + batch + issue categorization | GSC |
indexing.py |
Indexing API, quota tracking (200 req/day limit) | Indexing API |
sitemaps.py |
Sitemap management + sitemap_audit (defusedxml, SSRF-safe) |
GSC |
properties.py |
List properties, _ALL_TOOLS, get_capabilities |
GSC |
ga4.py |
GA4 analytics, _build_dimension_filter(hostname, country, base) |
GA4 |
cross.py |
Compose GSC + GA4, join on _normalize_url |
GSC + GA4 |
crux.py |
CrUX via httpx POST, requires CRUX_API_KEY env var |
API key |
technical.py |
schema_validate, no auth needed |
None |
Key Patterns
GA4 Dimension Filter
Never build FilterExpression manually. Use the existing helper:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 103 lines · 0 tokens per session scan A f7e8ceb6ad56
python-gsc-specialist is an agent published in the GitHub repository FlorianBruniaux/google-search-console-mcp (21 stars, last pushed 6d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,260 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
kingdee-qa-engineer
QA & Test Engineer for the kingdee-mcp project. Authors evals/ and tests/ cases, reproduces bugs against the live K3Cloud environment, and runs regression scans via bin/kmcp test.
apex-test-failure-triager
Diagnose an existing Apex test run failure. SfSkills apex workflow agent, /triage-apex-tests: reads its AGENT.md playbook, cites its sources, never deploys.
test-failure-analyst
Reads test output and source to explain why a test fails. Use after a failing test run.
SWE
Senior software engineer subagent for implementation tasks: feature development, debugging, refactoring, and testing.
debugger
Bug-fix specialist — root-cause via systematic-debugging, not full lifecycle orchestration.
distributed-test-engineer
Diagnoses and fixes distributed system test failures in NATS JetStream, pytest-asyncio fixture scoping, MCP transport lifecycles, and asyncio event loop conflicts. Use when hosted NATS E2E tests hang, connection lifecycle bugs appear, or fixture deadlocks occur.