MCP connector documentation

The free AlchemyAgent connector runs SEO and AI search checks on public websites from Claude, ChatGPT, Grok and any MCP client. It is read-only and needs no account.

Server URL: https://mcp.alchemyagent.ai/mcp (Streamable HTTP, stateless, no authentication)

Operator: AlchemyLeads, on Cloudflare Workers. Support: support@alchemyagent.ai

Output: every tool returns Markdown text written for the assistant to read and summarize. Failures come back as a normal tool result flagged isError, with a message that says what to do next.

pagespeed_check cwv_trend security_headers ai_crawler_check schema_check gsc_query_classifier ai_render_check agent_readiness entity_check wikipedia_presence authority_check data_connections

The 12 tools

pagespeed_check

PageSpeed and Core Web Vitals. Runs Google PageSpeed Insights on one public URL.

Inputs: url (required) Public page URL or domain, e.g. example.com; strategy mobile (default), desktop or both

Returns: Real-user Core Web Vitals (LCP, INP, CLS) from the Chrome UX Report with a pass or fail rating, the Lighthouse performance score, lab metrics and the biggest speed opportunities with estimated savings.

Data sent to: Google (PageSpeed Insights API). Google loads the page you name.

cwv_trend

Core Web Vitals trend. Shows how real-user Core Web Vitals changed over the last 40 weeks or so.

Inputs: url (required) Domain for the whole site, or a deeper URL for one page; device phone (default), desktop or all

Returns: Weekly LCP, INP, CLS, FCP and TTFB at the 75th percentile, first vs latest week and the direction of change. Falls back to the whole origin when a page has too little traffic.

Data sent to: Google (Chrome UX Report History API).

security_headers

Security headers. Grades a site's security headers.

Inputs: url (required) Public URL or domain

Returns: The Mozilla HTTP Observatory grade and score, and each missing or weak header (HSTS, Content-Security-Policy, X-Content-Type-Options, frame protection, Referrer-Policy, Permissions-Policy) with what to set, plus HTTPS and cookie flags.

Data sent to: Mozilla (HTTP Observatory API). Only the hostname is sent; Mozilla scans the site.

ai_crawler_check

AI crawler access. Checks whether AI and search crawlers can reach a page.

Inputs: url (required) Public page URL or domain

Returns: robots.txt rules per bot (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Googlebot, Google-Extended, Bingbot, CCBot and more), noindex and X-Robots-Tag directives, a user-agent probe for firewall or CDN blocks, sitemap and llms.txt presence, and AI usage preferences (Content-Signal, Content-Usage, TDMRep, noai).

Data sent to: No third party. AlchemyAgent's servers fetch the page and robots.txt directly.

schema_check

Structured data. Checks a page's JSON-LD against Google's rich-result requirements.

Inputs: url (required) Public page URL

Returns: Each schema type found, invalid JSON, missing required and recommended properties, relative URLs, non-ISO dates, dangling @id references, duplicate entities and self-serving reviews, with the fix for each.

Data sent to: No third party. AlchemyAgent's servers fetch the page directly.

gsc_query_classifier

AI-assistant queries in Search Console. Finds AI-assistant traffic in a Google Search Console queries export.

Inputs: csv_text (required) The contents of Queries.csv (Search Console > Performance > Export > CSV)

Returns: Query and impression counts per bucket (conversational prompts, follow-up pivots, AI-visibility tracker probes, agent prompts, pasted strings, chat reply artefacts), example queries for each, and candidates the rules can't classify on their own.

Data sent to: No third party. See How the Search Console CSV is processed below.

ai_render_check

What AI crawlers see. Shows what crawlers that don't run JavaScript see in a page's raw HTML.

Inputs: url (required) Public page URL

Returns: Readable word count, title, meta description, H1 and headings, JSON-LD, images without alt text, and whether the page is a JavaScript app shell that looks empty to GPTBot, ClaudeBot, PerplexityBot and CCBot.

Data sent to: No third party. AlchemyAgent's servers fetch the page directly.

agent_readiness

Agent readiness. Checks how ready a site is for AI agents.

Inputs: url (required) Website or page URL

Returns: llms.txt validation against the llmstxt.org format with a broken-link check, llms-full.txt, Markdown page versions, MCP, A2A and API discovery files, RSS or Atom feeds, sitemap size and freshness, Organization and WebSite schema, and a starter llms.txt when one is missing.

Data sent to: No third party. AlchemyAgent's servers fetch the site's files directly.

entity_check

Brand entity (Wikidata). Checks how a brand appears in Wikidata.

Inputs: url (required) The brand's website; brand_name Used when no Wikidata item lists the website

Returns: The matching item and its facts (description, type, founding date, headquarters, social profiles, Wikipedia article), gaps to fill, and whether the homepage's Organization schema links to it in sameAs.

Data sent to: Wikimedia Foundation (Wikidata API and query service). The homepage is fetched directly.

wikipedia_presence

Wikipedia presence. Finds Wikipedia articles that link to a domain.

Inputs: url (required) The brand's website or domain

Returns: Linking articles in the 10 largest language editions and the brand's own article page views over the last 12 months.

Data sent to: Wikimedia Foundation (MediaWiki API and Pageviews API).

authority_check

Authority and popularity. Compares up to 10 domains by popularity rank.

Inputs: domains (required) 1 to 10 domains, e.g. ["example.com", "competitor.com"]

Returns: Each domain's Tranco rank in the top 1 million sites, as a free stand-in for domain authority.

Data sent to: Tranco (tranco-list.eu, KU Leuven).

data_connections

Connect your data. Explains how to connect your own Search Console, GA4 and Bing Webmaster Tools data with an AlchemyAgent account.

Inputs: none

Returns: Setup steps. This free connector has no account, so it never holds connections or keys.

Data sent to: Nothing is sent anywhere.

Limits and caching

Private and local addresses

The connector only checks public websites. Before any request is made, the address is rejected if it is:

Requests run from Cloudflare's network, which cannot reach your local network or intranet even if a public name redirects there. To check a site that isn't public yet, use the Claude Desktop or Claude Code app on a machine that can reach it.

How the Search Console CSV is processed

Third-party data recipients

AlchemyAgent runs its own API on Cloudflare for ai_crawler_check, schema_check, ai_render_check, agent_readiness and gsc_query_classifier. These tools pass the URL or website you submit to public third-party APIs, under each provider's published terms, with attribution in the result:

ToolRecipient
pagespeed_check, cwv_trendGoogle: PageSpeed Insights API and Chrome UX Report API (privacy)
security_headersMozilla: HTTP Observatory API (privacy)
entity_check, wikipedia_presenceWikimedia Foundation: Wikidata and MediaWiki APIs (privacy)
authority_checkTranco, run by KU Leuven (tranco-list.eu)

Only the URL, hostname or domain is sent, never your chat, your name or anything else about you. The sites you check also see a request from AlchemyAgent's servers. Full details are in the privacy policy.

Common errors

MessageWhat it means and how to fix it
Daily free limit of 100 AlchemyAgent checks reached for your network.The network you're on has used its 100 calls for the day. The count resets at 00:00 UTC. Try again then, or install the Claude Desktop or Claude Code app, which runs most checks on your own machine.
Daily free limit reached for your network.The network has used its 50 fresh Google, Mozilla or Wikidata lookups for the day. Cached pages still work. Try again after 00:00 UTC, or use the Claude Desktop or Claude Code app with your own Google API key.
… is a private or local address. AlchemyAgent only checks public websites.Use the public address of the site. See Private and local addresses.
Only http(s) URLs can be checked.Pass a web address such as https://example.com/ or example.com, not ftp:, file: or another scheme.
Not enough Chrome UX Report data for … yet.Google only publishes real-user data for sites with enough Chrome traffic. Use pagespeed_check for lab metrics instead.
Observatory returned …Mozilla's scanner couldn't reach the site or is busy. Check that the site loads over HTTPS and try again in a few minutes.
Fetch failed, timed out, or HTTP 403 or 503 on the pageThe site blocked or didn't answer AlchemyAgent's request, often a firewall or bot protection. ai_crawler_check reports this as a possible block for crawlers too.
No query column found.Export the Queries table (not Pages or Countries) from Search Console > Performance > Export > CSV, and pass the contents of Queries.csv.
No query rows found in that CSV.The CSV is empty or only has a header. Widen the date range in Search Console and export again.
This hosted version can't read files.Paste the contents of Queries.csv as csv_text. The hosted connector can't read files from your computer.