Skip to main content
Glama

AI search audit (12 checks)

audit_ai_search
Read-onlyIdempotent

Grades a site on 12 on-site checks for AI search. Use it when the user asks whether ChatGPT, Claude, Perplexity or Google AI would recommend or cite their site, or wants a GEO audit. Pass the domain. Reads up to 10 public pages without JavaScript (robots.txt respected). Each check is pass, partial, fail or unknown with evidence and a fix: no-JS text, crawler access, llms.txt, what-is sentence, prices page, comparison page, 10 questions, Organization and Product markup, one name, named quotes, dates, an original number. Returns a score out of 12 and the 3 biggest fixes. unknown means the fetch could not prove the row and earns no point. Also 15 AEO/GEO rows from Microsoft's guide, pass, warn or fail. It does not query AI engines or promise a citation. Not for private addresses.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "domain": "<domain>"
    },
    "name": "audit_ai_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
domainYesA public website, for example example.com or https://example.com. Only that site's public pages are read.

Output Schema

NameRequiredDescriptionDefault
aeoNoAEO/GEO rows from the Microsoft Advertising guide to AEO and GEO, each pass, warn or fail; not part of the score.
asOfYesDate the pages were read, YYYY-MM-DD.
fixesYesUp to 3 fixes, biggest point gain first.
notesYes
outOfYes
pagesYes
scoreYesPasses plus half the partials, out of 12.
checksYes
domainYes
noticeYes
reasonYes
refusedNo
summaryYes
finalUrlNo
reachableYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / aeo
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "AEO/GEO rows from the Microsoft Advertising guide to AEO and GEO, each pass, warn or fail; not part of the score.",
      +  "properties": {
      +    "checks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "evidence": {
      +            "type": "string"
      +          },
      +          "evidenceUrl": {
      +            "type": "string"
      +          },
      +          "fix": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "warn also covers a row whose read did not fit the request budget; the evidence says so.",
      +            "enum": [
      +              "pass",
      +              "warn",
      +              "fail"
      +            ],
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "status",
      +          "evidence",
      +          "evidenceUrl",
      +          "fix",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "fail": {
      +          "type": "integer"
      +        },
      +        "pass": {
      +          "type": "integer"
      +        },
      +        "warn": {
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "pass",
      +        "warn",
      +        "fail"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "summary",
      +    "checks",
      +    "note"
      +  ],
      +  "type": "object"
      +}
  2. Added
  3. Removed
  4. Added

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, but the description adds substantive behavior the annotations cannot: it reads at most 10 public pages, runs without JavaScript, respects robots.txt, and 'unknown' means the fetch could not prove the row and earns no point. It also discloses the return shape (score out of 12 plus the 3 biggest fixes) and the 15 AEO/GEO rows with pass/warn/fail states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger and the disclaimers are front-loaded and valuable, but the long mid-sentence enumeration of all twelve check names (no-JS text, crawler access, llms.txt, what-is sentence, prices page, and so on) is detail an agent does not need in order to choose and call the tool. The result is one dense paragraph that could shed roughly a third of its tokens without losing selection-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only audit with rich annotations and an output schema, the description leaves nothing an agent needs unresolved: what is read, how much, under what constraints, what the verdicts mean, and what comes back. Only runtime or rate-limit expectations are absent, which is minor here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single domain parameter is fully documented in the schema itself, so the description's 'Pass the domain' adds no new meaning. Baseline 3 applies when the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and scope: grades a whole site on 12 on-site checks for AI search, and the later list names the actual checks. What's missing is differentiation from near-identical siblings such as audit_site and audit_page, so an agent must infer why this one covers a domain rather than a single page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states explicit trigger conditions (user asks whether ChatGPT, Claude, Perplexity or Google AI would recommend or cite their site, or wants a GEO audit) and explicit exclusions (does not query AI engines, does not promise a citation, not for private addresses). The boundary against false expectations is spelled out rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.