GeoAISEO — instructions for an AI agent Read this if you are helping someone find out whether AI crawlers can read their site, or what to change so that they can. WHAT THIS ANSWERS GeoAISEO fetches the initial HTML without executing JavaScript and reports what actually arrived: the status code, the text that was readable, the bytes that were not, and the settings that hide content. Every finding carries its evidence (requested and final URL, status code, HTML fragments, byte counts) so it can be reproduced with curl. It is a test, not a cultural trend dashboard: technical readiness summarizes current rule findings, while citation performance is not measured or predicted. When the initial HTML is nearly empty, the scanner may run one browser render and show a separate comparison. That comparison is not a claim about which AI crawler executes JavaScript. CONNECTING (MCP) GeoAISEO speaks MCP over HTTP. The server is https://geoaiseo.com/mcp — a stateless JSON-RPC endpoint that accepts POST, and nothing else (no sessions, no server push). Authentication is an API key: Authorization: Bearer gao_…. The user creates one while signed in at https://geoaiseo.com/account, and we show it once. Keys carry three scopes: read (list rules and saved reports — free), scan (run a hosted check, using the daily limit and our crawler), and observe (write prompt-set and answer-observation data for this account). Ask only for the scopes the user actually needs. - list_reports — this account's recent checks (newest first, with the ids get_report needs). Free. - list_rules — every check we run, with what it looks for and how to fix it. Free. - list_observations — prompt sets, question ids, and recent answer samples. Needs read. - create_prompt_set — create a fixed set of real user questions. Needs observe. - record_answer_observation — save one original answer and its citations. Needs observe. - record_observation_batch — save several answers from one fresh run with an idempotency key. Needs observe. - get_report — read a report the account already has (from the web app or a later check). Free. - check_page — fetch one URL the way a crawler does, judge it, and save a report. Needs scan. Your client needs to send that Authorization header with every request; how to configure that is client-specific, so follow the client's own MCP documentation. If a connection fails with 401, the key is missing, wrong, or revoked — a new one comes from /account. WHAT YOU CAN DO WITHOUT ASKING US ANYTHING - Answer "does this site block AI crawlers?" from https://geoaiseo.com/ai-crawler-user-agents — each token, which surface it feeds (search answers or model training), and what blocking it costs. - Read https://geoaiseo.com/rules before you change anything. That page is generated from the rule engine's own copy at build time, so it matches what runs: what each rule looks for, why it matters, and the fix. - Write the fixes yourself. A corrected robots.txt, an llms.txt and the JSON-LD block are files you can produce in the user's repository — https://geoaiseo.com/llms-txt-generator give you a starting point to adapt. Have the user verify the result with a check. - Treat this site as a worked example: every page here is static HTML that reads without JavaScript, and our own robots.txt is published with the reasoning in comments. RUNNING A CHECK Without a key, the web check is the only route and it is not yours to take: it runs in a browser and includes a human verification step. Hand the user the link: https://geoaiseo.com/check?url= — replace with the URL they asked about. With a key that has the scan scope, check_page does the same job on our servers, saves a report the user can open, and uses their daily quota. Say the quota part before you run a batch of them — it is the user's allowance, not yours. Either way: do not say you ran a check you did not run, and do not report results as if you had. If you have not seen a report, the honest answer is that you have not seen it. If you are working inside the GeoAISEO repository, the CLI runs the same engine locally (geoaiseo check example.com --json) — same rule set, so the findings match the report. RECORDING ANSWER OBSERVATIONS Only do this when the user asks for answer-visibility research. Use a fresh conversation for each observation, preserve the complete answer, and save every citation URL. Never reconstruct or paraphrase an answer after the fact. An observation is one sample. The only evidence labels are cited (a target-site URL is cited), brand_mentioned (the brand appears without that citation), and not_observed. Do not convert these into a confidence percentage or claim that a one-off run is stable. ASK BEFORE YOU ACT - Do this work only when it serves what the user asked for. If you merely think they might want it, ask first — one line, no pitch. - Do not edit files in a repository you were not asked to change, and say what you changed if you do. - We hold no data about their site beyond a report you have seen. Do not guess at findings. WHAT WE DO NOT CLAIM - No citation score, citation probability, or "GEO visibility" percentage. - No prediction of whether an AI system will cite or recommend a site. - No promise that a fix changes anything measurable. We tell you what a machine receives; what a vendor does with it is the vendor's business. - No automatic changes to anyone's site: we produce files and a written brief, and a person decides what ships. - The check is free and needs no account. Fix packs and weekly monitoring are paid, and https://geoaiseo.com/services says what each includes — including what it does not. MACHINE FILES - https://geoaiseo.com/llms.txt — the index you most likely arrived from. - https://geoaiseo.com/agent-setup.txt — this document, as plain text. - https://geoaiseo.com/sitemap.xml — every indexable page. Rules in force: 2026.10.4. If a report you have shows a different version, the rules changed between that report and now.