{"ok":true,"site":{"host":"agent-seo-studio.vercel.app","url":"https://agent-seo-studio.vercel.app/","type":"live","desc":"A WebMCP-native studio where you and your AI agent audit websites for SEO and GEO (AI-search) readiness together.","tools":[{"name":"audit_website","kind":"act","impl":"imperative","description":"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to audit, e.g. \"example-bakery.com\" or \"https://example.com\"."},"businessName":{"type":"string","description":"Optional business name, used to personalize the JSON-LD fix snippet, e.g. \"Example Bakery\"."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"check_schema","kind":"answer","impl":"imperative","description":"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to inspect for structured data."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"check_webmcp","kind":"answer","impl":"imperative","description":"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to check for WebMCP readiness."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"score_geo","kind":"act","impl":"imperative","description":"Return the GEO-readiness score (0–100) and tier for a site — how ready it is to be read and cited by AI search engines like ChatGPT, Perplexity, and Gemini. Audits the site first if needed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to score."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"suggest_fixes","kind":"act","impl":"imperative","description":"Return a prioritized, actionable fix list for a site, including ready-to-paste JSON-LD structured data where relevant. Every suggestion traces to a measured finding — nothing is invented. Audits the site first if needed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to generate fixes for."},"businessName":{"type":"string","description":"Optional business name to personalize the JSON-LD snippet."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_sites","kind":"act","impl":"imperative","description":"Audit and compare two or more websites side by side (e.g. your site vs competitors) and rank them by GEO-readiness. Great for 'how do I stack up' and for finding the one thing competitors do that you don't. Adds every site to the workspace.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"Two or more websites to compare, e.g. [\"mysite.com\", \"competitor1.com\", \"competitor2.com\"]."}},"required":["urls"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"scan_market","kind":"act","impl":"imperative","description":"Audit an entire local market at once and rank every business by GEO-readiness. Best when YOU (the agent) supply the competitor URLs you already know — you know a business's real competitors better than any directory does; just pass them in `urls`. As a fallback for physical businesses, a plain-language query like 'day spa in Santa Monica' auto-discovers them via OpenStreetMap. This does what a browser can't — fetch and measure dozens of sites server-side in one call. Optionally pass a target site to get a gap analysis vs. the market leaders.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"A market to scan, e.g. \"hair salon in Austin\" or \"dentist in Miami\". Auto-discovers local businesses with websites."},"urls":{"type":"array","items":{"type":"string"},"description":"Explicit list of competitor URLs to scan instead of (or in addition to) a query."},"target":{"type":"string","description":"Optional: your own site, to get a gap analysis vs. the market leaders."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"verify_journey","kind":"act","impl":"imperative","description":"Act as an 'agent mystery shopper': check whether a visitor's AI agent could actually complete a key task on a site — book, quote, buy, or contact — and report exactly where it would get stuck. Reports the best path an agent could take (a WebMCP tool, a form, a booking widget, a contact link) or says plainly that the agent is blocked. A static reachability check of the page's HTML, not a live click-through.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The site to test."},"goal":{"type":"string","enum":["book","quote","buy","contact"],"description":"The task to attempt, e.g. 'book' an appointment or 'buy' a product."}},"required":["url","goal"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"generate_fixes","kind":"act","impl":"imperative","description":"Generate ready-to-ship fixes for a site: a complete JSON-LD structured-data block and an optimized <title> + meta description, tailored to the site's real content. This is creation, not just advice — the output is copy-paste ready. Adds the generated kit to the site's workspace card. Audits the site first if needed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to generate fixes for."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"preview_impact","kind":"act","impl":"imperative","description":"Show the projected GEO-readiness score if the generated fixes were applied — the current score vs. the score after fixing structured data and meta tags. Turns an audit into a repair with a measurable payoff. Generates fixes first if needed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The website to preview impact for."}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/agent-seo-studio.vercel.app.svg","apiSurface":"spec","toolCount":10}}