aio-geo
Server Details
AIO.GEO: audit, dry-run fixes, rescore, doctor. Remote + stdio. Not LLM rankings.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
6 toolsapply_fixApply fixARead-onlyIdempotentInspect
Generate a structural fix pack for a public domain. Public calls stay dry-run (no writes). Set dryRun false only with an operator key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public domain or https URL to inspect (for example example.com or https://example.com). Localhost and private IPs are blocked. | |
| domain | No | Alias of url. Use either url or domain, not both. | |
| dryRun | No | When true (default) only preview the pack. Writes stay off on the public endpoint. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| files | No | Proposed files in the dry-run pack |
| domain | No | |
| dryRun | Yes | Public endpoint always true — no files are written |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, but the description states that setting dryRun false (with an operator key) can enable writes. This directly contradicts the read-only annotation, making the tool's behavioral profile inconsistent and potentially misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and followed by a critical safety constraint. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and dry-run safety, and the schema handles parameter details like blocked IPs. However, the contradiction with readOnlyHint leaves the write behavior ambiguous, undermining completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds crucial semantics for dryRun by requiring an operator key to disable dry-run mode, which is not present in the schema, elevating the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Generate a structural fix pack for a public domain.' This is a specific verb+resource combination and differentiates it from siblings like audit_url or list_fixes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: public calls are dry-run by default, and writes require setting dryRun false with an operator key. This tells the agent when and how to safely use the tool, though it doesn't explicitly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_urlAudit URLARead-onlyIdempotentInspect
Run a structural AI Search Readiness audit for a public URL or domain. Returns pillar scores, recommendations, a brief link, and a CLI command. Not an LLM ranking. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public domain or https URL to inspect (for example example.com or https://example.com). Localhost and private IPs are blocked. | |
| domain | No | Alias of url. Use either url or domain, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | True when the audit completed |
| cli | No | Matching CLI command |
| domain | Yes | Normalized hostname |
| pillars | No | Per-pillar structural scores |
| refusal | No | Ranking-refusal copy |
| briefUrl | No | Shareable public brief URL |
| persisted | No | True if the scan was saved |
| confidence | No | 0-1 crawl confidence |
| disclaimer | No | |
| isSynthetic | No | True only if the crawl failed closed |
| methodology | No | Scoring methodology id |
| overallScore | Yes | Structural readiness score 0-100. Not an LLM ranking. |
| recommendations | No | Ranked structural gaps to fix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context by disclosing 'No API key required,' the nature of the audit ('structural'), and the output composition (pillar scores, recommendations, brief link, CLI command). It also clarifies it is not an LLM ranking, preventing misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the main function and outputs, then adding exclusions. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a modest schema and full annotations; the description covers purpose, output, authentication, and exclusions. The existence of an output schema means return details need not be described, but the description still lists key outputs, making it complete for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions of url and domain. The description does not add substantive parameter-level meaning beyond repeating the public URL/domain scope, so it relies on the schema, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose with the verb 'Run' and resource 'structural AI Search Readiness audit for a public URL or domain.' It also lists the specific outputs (pillar scores, recommendations, brief link, CLI command), which distinguishes it from siblings like rescore_url by stating 'Not an LLM ranking.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that the tool is for structural audits and explicitly states 'Not an LLM ranking,' which helps differentiate it from scoring tools. However, it does not name alternative sibling tools or give explicit when-to-use vs when-not-to-use guidance beyond this exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_healthCheck healthARead-onlyIdempotentInspect
Return environment and API health. Never returns secrets. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| health | No | Ops health without secrets |
| api_key | Yes | set or unset — never the raw secret |
| refusal | No | |
| version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, etc.), the description adds meaningful behavioral assurances: 'Never returns secrets' and 'No API key required.' These are valuable safety and authentication details not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core purpose, with every word contributing value. No redundancy or filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health-check tool with an empty input schema and an existing output schema, the description is complete. It covers environment/API health, safety (no secrets), and authentication requirements, leaving no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers parameter semantics. The description adds nothing about parameters, but none are needed. Baseline for no parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return environment and API health' with a specific verb and resource, distinguishing it from sibling tools like apply_fix and audit_url. No ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides useful context ('No API key required') but does not explicitly state when to use this tool over alternatives or mention exclusions. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_briefGet briefARead-onlyIdempotentInspect
Return an executive structural brief for a domain: score, top gaps, and a shareable brief path. Not an LLM ranking. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public domain or https URL to inspect (for example example.com or https://example.com). Localhost and private IPs are blocked. | |
| domain | No | Alias of url. Use either url or domain, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| domain | Yes | |
| pillars | No | |
| refusal | No | |
| sharePath | Yes | Relative brief path, for example /brief?domain=example.com |
| overallScore | Yes | |
| recommendations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds useful context: it mentions the return contents (score, top gaps, shareable brief path) and clarifies that no API key is required. It also explicitly states what the tool is not (an LLM ranking). No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences. Each sentence adds value: what it returns, what it is not, and a key operational fact (no API key). No word is wasted, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two parameters, both well-documented in the schema, and an output schema exists (per signals). The description covers the core purpose, output components, and an authentication detail, making it complete for an AI agent to decide and invoke correctly. The output schema covers return-value details, so the description does not need to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (url and domain) including their formats and constraints. The description does not add extra meaning about the parameters themselves, though it uses 'domain' in the text. Baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an executive structural brief for a domain, enumerating the contents (score, top gaps, shareable brief path). The verb 'Return' is specific, and the resource ('a domain') is explicit. The note 'Not an LLM ranking' further differentiates it from potential similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when an executive structural brief is needed) and explicitly states a when-not ('Not an LLM ranking'). It also mentions 'No API key required,' providing context for ease of use. However, it does not explicitly reference sibling tools or provide alternative recommendations beyond that single exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fixesList fixesARead-onlyIdempotentInspect
Return a dry-run structural fix pack (robots, schema, anchors) for a public domain. No files are written. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public domain or https URL to inspect (for example example.com or https://example.com). Localhost and private IPs are blocked. | |
| domain | No | Alias of url. Use either url or domain, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| files | No | Proposed files in the dry-run pack |
| domain | No | |
| dryRun | Yes | Public endpoint always true — no files are written |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds value by explicitly stating 'No files are written' and 'No API key required,' reinforcing the read-only nature and providing extra context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the primary action and resource. Every word earns its place, and it is highly concise without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no nested objects) and the presence of an output schema, the description is complete. It covers purpose, read-only behavior, and authentication requirements sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (url and domain) have detailed descriptions. The tool description adds little beyond the schema, but since the schema is comprehensive, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Return) and the resource (a dry-run structural fix pack for robots, schema, anchors), which distinguishes it from siblings like apply_fix and audit_url. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The dry-run and 'No files are written' wording implies this is for previewing fixes before applying, but it does not explicitly name alternatives or state when not to use it. The usage context is present but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rescore_urlRescore URLARead-onlyIdempotentInspect
Run a fresh public structural audit (rescore) for a URL or domain. Same engine as audit_url. Not an LLM ranking. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public domain or https URL to inspect (for example example.com or https://example.com). Localhost and private IPs are blocked. | |
| domain | No | Alias of url. Use either url or domain, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | True when the audit completed |
| cli | No | Matching CLI command |
| domain | Yes | Normalized hostname |
| pillars | No | Per-pillar structural scores |
| refusal | No | Ranking-refusal copy |
| briefUrl | No | Shareable public brief URL |
| persisted | No | True if the scan was saved |
| confidence | No | 0-1 crawl confidence |
| disclaimer | No | |
| isSynthetic | No | True only if the crawl failed closed |
| methodology | No | Scoring methodology id |
| overallScore | Yes | Structural readiness score 0-100. Not an LLM ranking. |
| recommendations | No | Ranked structural gaps to fix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint, openWorldHint), the description adds that the audit is 'fresh' and 'public,' explicitly states it is 'Not an LLM ranking,' and notes 'No API key required.' These details enrich the behavioral profile without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short, information-dense sentences. It front-loads the core purpose, then adds relational, exclusions, and access prerequisites. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two optional alias parameters), full schema coverage, output schema presence, and robust annotations, the description covers the essential context. Minor gaps include lack of explicit timing for when a rescore is needed relative to audit_url, but overall it is complete for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with detailed descriptions for both parameters (url and domain), including the alias relationship and constraint to use only one. The description adds no new parameter-level meaning beyond what the schema states, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Run a fresh public structural audit (rescore) for a URL or domain.' It uses a specific verb ('run'), defines the resource ('URL or domain'), and distinguishes itself from sibling tools by noting 'Same engine as audit_url' and clarifying 'Not an LLM ranking.' This makes the purpose explicit and unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: it is a rescore, uses the same engine as audit_url, and requires no API key. This implies when to use it but does not explicitly state 'use this instead of audit_url' or list exclusions. It lacks a clear when-not-to-use statement but offers enough contextual guidance to differentiate from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
- First observed
apply_fix - First observed
audit_url - First observed
check_health - First observed
get_brief - First observed
list_fixes - First observed
rescore_url
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Run SEO + AI-visibility (GEO) audits from Claude, Cursor & other AI clients.
SEO + GEO tools in your AI editor: scan as ChatGPT and Google crawlers see it, fix order, llms.txt.
41- CrawlieOAuthapp.crawlie
Technical SEO + GEO (AI-search) site audits: hosted crawls, prioritized fixes, report diffs.
GEO scores and content-rewrite suggestions for any web page, as MCP tools.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables scanning websites for AI search readiness, generating fixes like llms.txt, and comparing GEO scores across domains.81-
- AlicenseNot gradedqualityDmaintenanceThe GEO check every vibe coder runs before they launch. MCP server that lints, auto-fixes, and tracks how AI agents discover any product. 6 tools — geo_check, geo_fix, geo_track_init, geo_prompts, geo_status, geo_corpus_query.MIT
- AlicenseNot gradedqualityCmaintenanceEnables auditing webpages for GEO metrics, calculating MAVI score, and generating llms.txt templates for RAG readiness.2MIT
- AlicenseDqualityBmaintenanceAgent-first local SEO quality, intent and opportunity engine with CLI and optional MCP server.7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The tool set has significant overlap: audit_url and rescore_url both run the same structural audit, and list_fixes vs apply_fix both generate fix packs (with apply_fix differing only by optional write access). This blurs boundaries and forces agents to rely on subtle wording to choose correctly.
All tool names follow a consistent verb_noun snake_case pattern (apply_fix, audit_url, check_health, get_brief, list_fixes, rescore_url). The verbs are distinct and clearly indicate the action, making the naming predictable and easy to parse.
With 6 tools, the server is well-scoped for its purpose. Each tool covers a specific step in the audit-to-fix workflow without excessive bloat or noticeable omissions.
The core workflow is covered: audit (audit_url/rescore_url), brief (get_brief), and fixes (list_fixes/apply_fix), plus health check. Minor gap: no explicit tool to view detailed individual recommendations or manage applied fixes, but agents can work around this using the available outputs.