A WebMCP-native SEO/GEO audit studio where a human and their AI agent audit websites together. Provides tools for auditing websites, checking structured data, analyzing market competitors, generating fixes, and verifying improvements.
Agent SEO Studio demonstrates solid tool design with 15 well-named, action-verb tools (audit_, check_, suggest_, verify_, scan_, analyze_, export_, get_, clear_, focus_, generate_, build_). All tools have descriptions (avg ~150 chars, within 10-1024 baseline). Input schemas are present and properly typed with required fields. However, output schemas are not documented in the source code, responses are inferred from descriptions only. Error handling is present (recordCall wraps execution, safeExecute catches throws) but recovery guidance is minimal. Tool composition is strong: audit_website chains naturally to suggest_fixes and verify_fix. All tools are read-only except clear_workspace, properly annotated. Parameter descriptions are clear and specific (e.g., 'The website to audit, e.g. "example-bakery.com"'). No secrets exposed as parameters. Naming is consistent (verb_noun pattern). Main gaps: output schemas not formally documented, no pagination guidance for scan_market results, and error messages lack actionable recovery steps.
Compare your site against competitors from a market scan. Identifies which competitors beat you on which metrics (schema, mobile, speed, etc.) and suggests which gaps to close first for the biggest competitive lift.
Audit a website for SEO and GEO (AI-search) readiness. Fetches the page server-side, measures load speed, structured data, meta tags, mobile-friendliness, headings, and content, then adds a results card to the on-screen workspace. Use this first for any site you want to analyze.
Build a comprehensive market report comparing a target site against competitors. Includes four payoff tabs: readiness scores, competitive gaps, conversion journey analysis, and recommended fixes. Auto-discovers competitors from the target's location and business type, or accepts a supplied list.
Simulate a user journey on a website (e.g. booking a service, making a purchase, contacting the business) and report which steps succeed or fail. Helps identify conversion blockers.
Inspect a site's structured data (JSON-LD / schema.org markup) in detail — how many blocks, which @types, and whether any are malformed. Structured data is what lets AI assistants read a business's services, hours, and location. Audits the site first if it isn't already in the workspace.
Output schemas not formally documented. Tool descriptions infer return structure (e.g., 'returns them ranked by GEO-readiness score') but no explicit JSON Schema for responses. LLMs cannot reliably plan downstream tool calls or extract fields without documented output types.
scan_market accepts either 'query' or 'urls' array but lacks pagination guidance. No limit, offset, or cursor documented. Large market scans could return unbounded results, blowing context windows. Baseline: paginated tools should cap results at 20-50 items.
Error handling returns generic text ('could not complete: {msg}') without recovery guidance. Baseline pattern: errors should tell LLM what to do next (e.g., 'URL invalid, try with https:// prefix' or 'Site unreachable, check domain spelling'). Current approach leaves agent stuck.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Check whether a site is WebMCP-ready — i.e. whether it declares its own actions (document.modelContext.registerTool, or the zero-JS <form toolname=…> on-ramp) so a visitor's AI agent can ACT on it, not just read it. Reports the site's rung on the agent-reachability ladder and how confident the check is (a static server-fetch can't run JS that registers tools at runtime, so it says so honestly). Audits the site first if needed.
Clear all audits from the workspace. Resets the studio to a blank state.
Export the current workspace (all audits and comparisons) as a formatted report. Includes scores, findings, fixes, and competitive analysis. Available once at least one audit exists in the workspace.
Focus on a specific audit card in the workspace to view its details, fixes, and generated code snippets.
Generate optimized meta tags (title, description, Open Graph, Twitter Card) for a website based on its content and detected business type.
Generate ready-to-paste JSON-LD schema markup for a website. Creates LocalBusiness, Organization, or other schema blocks based on the site's detected business type and location.
List all audits currently in the shared workspace. Returns URLs, scores, and findings for each. Use this to see what's been analyzed so far.
Scan a market for competitor websites. Takes either a search query (e.g. "bakery in Austin") or a list of URLs, audits each, and returns them ranked by GEO-readiness score. Use this to build a competitive leaderboard.
Generate a prioritized fix plan for a website's SEO/GEO issues. Returns ready-to-paste code snippets (JSON-LD, meta tags, etc.) ranked by impact. Call this after audit_website to get actionable improvements.
Re-audit a website after applying fixes to measure the improvement in GEO-readiness score. Shows before/after scores and whether the tier improved. Use this to prove that fixes worked.
get_workspace and focus_audit lack descriptions of the workspace entry structure (fields like 'id', 'url', 'score', 'audit'). LLMs cannot reason about which fields to extract or pass to downstream tools without knowing the response schema.
build_report's 'competitors' parameter is optional with auto-discovery fallback, but the fallback logic and failure mode are not documented. If auto-discovery fails, does the tool error or proceed with target only? Undocumented dependencies cause silent misuse.