SEO GEO AEO Tools — Zinin M2M Hub
Server Details
5 pay-per-call SEO/GEO/AEO tools for AI agents: check which AI crawlers can access a website, audit llms.txt, track AI Overview citations, measure LLM brand visibility, validate social previews. Free discovery + pricing_info tool; paid calls $0.01-0.02 in USDC on Base via x402 — you only pay for successful runs.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.8/5 across 7 of 7 tools scored.
Each tool targets a distinct aspect of SEO/GEO/AEO: AI answer changes, crawler access, cited sources, brand visibility, llms.txt auditing, pricing, and social previews. No two tools overlap in purpose, ensuring clear selection.
Most tools use descriptive snake_case with hyphens (e.g., ai-answer-change-alert), but pricing_info breaks the pattern with an underscore. Overall, names are clear and follow a logical prefix system (ai-, llms-, social-).
Seven tools is an ideal size for a specialized MCP server. Each tool has a clear function, and the count is neither sparse nor overwhelming.
The set covers core GEO/AEO workflows (crawler access, LLM answers, brand visibility, llms.txt) plus social previews and pricing. Minor gaps exist (e.g., no keyword or competitor analysis), but the domain is well-served.
Available Tools
7 toolsai-answer-change-alertAI Answer Change AlertAInspect
Ask an LLM the queries that matter to you, compare each answer against its stored baseline and get told what changed — the answer itself and which domains it now cites or stopped citing. One row per query x model. — $0.10/call, x402 (USDC on base).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language (e.g. en, ru, tr). | en |
| models | No | OpenRouter model IDs to check. Grounded options: `perplexity/sonar`, `openai/gpt-4o-mini:online`, `google/gemini-2.0-flash-001:online`. Every model you add multiplies the number of billed rows: rows = number of queries × number of models. With the limits on both fields, the maximum possible is 20 queries × 3 models = 60 rows. | |
| queries | Yes | The prompts a real user would ask (e.g. `best crm for small business`). Each query is run against every model in `models` below and compared against the previous run's stored answer for the same query × model × language — you are charged per query × model pair, not per query, whether or not the answer changed. | |
| maxConcurrency | No | Parallel LLM calls (kept low to respect rate limits and to bound how many LLM calls can be wasted — uncharged — if a run's spend limit is hit mid-run). | |
| openrouterApiKey | No | Your OpenRouter API key (https://openrouter.ai/keys). Optional: without it the built-in key is used and the LLM cost is covered by the per-row price. Pass your own key to have tokens billed to your account instead, at cost. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that answers are stored as baselines, that each call is compared and charged per query × model pair, and that pricing is $0.10 per call. This adds meaningful behavioral context beyond the annotations (openWorldHint=true, readOnlyHint=false) without contradicting them.
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 compact sentence that front-loads the main purpose, includes the key output (answer + cited domains), and states pricing and row logic. Every word earns its place with no 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?
For a monitoring tool with five parameters, no output schema, and annotations lacking detail, the description covers the core behavior, output content, billing, and per-row scaling. It does not explain first-run baseline creation or historical retention, but the overall tool behavior is sufficiently clear.
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 documents all five parameters with rich descriptions, including billing behavior in the queries and models fields. The description adds a concise top-level pricing statement and reinforces the row calculation, but does not clarify parameter syntax or formats beyond 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 specifies a concrete task: ask an LLM queries, compare answers against stored baselines, and report changes (the answer plus newly/ceased cited domains). It distinguishes this from sibling tools by focusing on change detection over time rather than crawling, overview tracking, or brand visibility.
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 the use case: monitor LLM answers for changes to queries that matter to the user. It provides clear context and a practical billing model, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-crawler-access-checkerAI Crawler Access CheckerARead-onlyInspect
Check which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended & more) can access your website. Bulk audit of robots.txt rules, llms.txt presence and sitemap for AI search visibility (GEO/AEO). — $0.01/call, x402 (USDC on base).
| Name | Required | Description | Default |
|---|---|---|---|
| websites | Yes | List of website URLs or domains to audit (e.g. `example.com` or `https://example.com`). | |
| maxConcurrency | No | How many websites to check in parallel. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context: it mentions the $0.01/call pricing and x402 payment method, which are not in annotations, and clarifies it's a bulk audit of specific files. This adds meaningful information beyond the structured fields.
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 that front-load the main purpose ('Check which AI crawlers...') and then add supporting details. There is no redundant fluff; every clause earns its place.
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 is moderately complex (bulk audit of multiple sites and files), and there's no output schema. The description doesn't explain what the output looks like (e.g., a report of allowed/blocked crawlers per site) or how to interpret results. It also doesn't mention rate limits or error handling, though it does cover cost and input semantics.
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 baseline is 3. The description's mention of 'bulk audit of robots.txt rules, llms.txt presence and sitemap' gives some context for what the 'websites' parameter does, but it doesn't add per-parameter syntax or format details beyond the schema's existing descriptions.
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 purpose: 'Check which AI crawlers... can access your website,' using a specific verb and resource. It also lists the specific crawlers and what it audits, but it doesn't explicitly differentiate itself from siblings like llms-txt-auditor, which might overlap on llms.txt checks.
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 it (for AI search visibility auditing) by mentioning robots.txt, llms.txt, and sitemap checks, but it provides no explicit exclusions or alternatives. It doesn't tell the agent when to prefer this tool over the sibling 'llms-txt-auditor' or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-overview-trackerAI Overview Citation TrackerARead-onlyInspect
For each query that matters, see which sources and domains AI assistants cite in their answer — grounded via Perplexity Sonar, GPT or Gemini through your own OpenRouter key. GEO citation tracking: the backlink profile of the AI-answer era. — $0.10/call, x402 (USDC on base).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language (e.g. en, ru, tr). | en |
| models | No | OpenRouter model IDs to test. Grounded options: `perplexity/sonar`, `openai/gpt-4o-mini:online`, `google/gemini-2.0-flash-001:online`. Every model you add here multiplies the number of billed rows: rows = number of queries × number of models (see `queries`). | |
| queries | Yes | The prompts a real user would ask (e.g. `best project management software`, `how to choose a CRM`). Each query is run against EVERY model in `models` below, and you are charged per query × model pair, not per query — e.g. 10 queries × 2 models = 20 billed rows. With the limits on both fields, the maximum possible is 20 queries × 5 models = 100 rows. | |
| maxConcurrency | No | Parallel LLM calls (kept low to respect rate limits). | |
| openrouterApiKey | No | Your OpenRouter API key (https://openrouter.ai/keys). LLM token cost is billed to YOUR account; this Actor only orchestrates and scores. Optional to start the Actor: without it the run finishes cleanly and explains setup, and nothing is charged beyond the Actor start. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's safety profile is covered. The description adds valuable behavioral context: it uses the user's own OpenRouter key, makes external calls to specific models, and incurs a cost of $0.10/call via x402. This goes 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 about 50 words, front-loading the core purpose in the first sentence. The second sentence includes a marketing-style phrase ('backlink profile of the AI-answer era') and pricing, which are relevant but not strictly necessary. It is concise and structured effectively, though slightly embellished.
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?
With a rich schema covering all parameters and annotations indicating a read-only, open-world operation, the description is adequate. It communicates the main purpose, pricing, and external dependencies. It does not describe the output format, but given no output schema exists and the tool is read-only, this is a minor gap.
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 the description's job is to add meaning beyond the schema. The description mentions the grounding models and OpenRouter key, but the schema already details the multiplication of billing rows and the optional key behavior. The description does not significantly enhance param semantics beyond the baseline.
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 with a specific verb and resource: "see which sources and domains AI assistants cite in their answer." It further differentiates itself from siblings by introducing the concept of "GEO citation tracking: the backlink profile of the AI-answer era," which is distinct from change alerts, crawler checks, or brand visibility 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 phrase "For each query that matters" implies a use case for SEO/GEO professionals but does not explicitly state when to use this instead of alternatives or provide exclusions. No sibling tools are mentioned, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llm-brand-visibilityLLM Brand Visibility TrackerBRead-onlyInspect
For each query that matters, check whether AI assistants recommend YOUR brand — and which competitors they cite instead. Grounded answers from Perplexity Sonar, GPT and Gemini via your own OpenRouter key. This is GEO: the SEO of the AI era. — $0.10/call, x402 (USDC on base).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language (e.g. en, ru, tr). | en |
| brand | Yes | The brand, product or company you want to track in AI answers. | |
| models | No | OpenRouter model IDs to test. Grounded options: `perplexity/sonar`, `openai/gpt-4o-mini:online`, `google/gemini-2.0-flash-001:online`. Every model you add here multiplies the number of billed rows: rows = number of queries × number of models (see `queries`). | |
| queries | Yes | The prompts a real user would ask (e.g. `best note-taking app`, `Notion alternatives`). Each query is run against EVERY model in `models` below, and you are charged per query × model pair, not per query — e.g. 10 queries × 2 models = 20 billed rows. With the limits on both fields, the maximum possible is 20 queries × 5 models = 100 rows. | |
| maxConcurrency | No | Parallel LLM calls (kept low to respect rate limits). | |
| openrouterApiKey | No | Your OpenRouter API key (https://openrouter.ai/keys). LLM token cost is billed to YOUR account; this Actor only orchestrates and scores. Optional to start the Actor: without it the run finishes cleanly and explains setup, and nothing is charged beyond the Actor start. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description discloses that the tool uses the user's own OpenRouter key, implying authentication requirements, and mentions a $0.10/call cost with x402 payment. This adds useful operational context, though it doesn't mention rate limits or side effects.
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 sentences and front-loads the primary purpose, then adds technical and pricing details. The GEO marketing phrase is arguably extraneous, but the overall length is appropriate; it earns a 4.
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 no output schema, and the description does not explain the result format, how 'visibility' is measured, or what the response looks like to the agent. The cryptic '$0.10/call, x402' also lacks context. With six parameters and no output schema, this is a significant gap.
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 describes all parameters with 100% coverage, including billing multipliers and API key optionality, so the description adds little parameter-level meaning. Baseline 3 is appropriate since the schema does the heavy lifting.
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 checks whether AI assistants recommend a given brand and cites competitors, which distinguishes it from sibling tools like ai-crawler-access-checker or social-preview-checker. However, the verb 'check' is somewhat generic and the output format isn't specified, so it doesn't fully earn a 5.
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?
No explicit when-to-use or alternatives are mentioned. The phrase 'For each query that matters' implies suggested usage, and the GEO analogy provides context, but there's no guidance on when not to use this tool or how it compares to ai-answer-change-alert or ai-overview-tracker. This earns a 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llms-txt-auditorllms.txt Compliance CheckerARead-onlyInspect
Give it a domain. It checks whether the site publishes a valid llms.txt / llms-full.txt (the emerging AI-crawler-friendly-docs convention) and whether robots.txt blocks GPTBot, ClaudeBot, Google-Extended, PerplexityBot and 5 other AI crawlers. llms.txt-first, no browser, no LLM, no API key. — $0.01/call, x402 (USDC on base).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | List of domains to audit for llms.txt presence and AI-crawler robots.txt policy. | |
| maxConcurrency | No | How many domains to audit in parallel. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable context: it enumerates specific AI crawlers checked, declares the tool is 'no browser, no LLM, no API key', and provides pricing ($0.01/call, x402 USDC). This goes beyond the annotations to set expectations about execution and cost.
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 concise, with two main sentences followed by a short pricing note. It is front-loaded with the core action ('Give it a domain. It checks...') and every sentence provides distinct information (function, constraints, cost). No fluff or redundant details.
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?
There is no output schema, and the description does not mention the return format or what the report contains. It focuses on the input and checks performed, but for a tool that likely returns a structured report, some output guidance would be helpful. The tool is simple, so it is workable, but the completion gap is noticeable.
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 full descriptions for both parameters (items and maxConcurrency), giving 100% coverage. The tool description does not add significant additional meaning for the parameters themselves; it only says 'Give it a domain' which slightly simplifies the array aspect. Baseline 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: checking for valid llms.txt/llms-full.txt and AI-crawler robots.txt blocks. It uses specific verbs and resources, making the primary purpose unmistakable. However, it does not explicitly distinguish itself from the sibling tool 'ai-crawler-access-checker', which may also check crawler access, despite the 'llms.txt-first' hint.
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 usage by saying 'Give it a domain' and lists constraints like 'no browser, no LLM, no API key'. It also mentions 'llms.txt-first', which hints at priority, but it lacks explicit when-to-use versus alternatives or exclusions. The guidance is present but not fully developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricing_infoPricing — SEO / GEO / AEO ToolsARead-onlyInspect
Free — list every paid tool in the 'seo-tools' bundle with its price, payTo address and network. Call this first if you don't have a wallet ready yet.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context about the tool's output (pricing information and payment details) and notes it is 'Free', but does not elaborate on additional behaviors. Since annotations cover the safety profile, this is sufficient.
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 brief and to the point, with key information front-loaded: 'Free — list every paid tool...' and a helpful usage note in a second sentence. 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?
For a zero-parameter read-only tool, the description covers the core purpose and usage scenario. It lists the fields returned (price, payTo address, network) and the bundle name, which is sufficient even without an output schema.
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?
There are no parameters in the schema; the description does not need to explain parameter meaning. The empty schema makes the tool self-evident, and the description's focus on output 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: 'list every paid tool in the seo-tools bundle with its price, payTo address and network.' It uses a specific verb and resource, and is distinct from sibling tools which all focus on individual SEO checks.
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 explicit guidance on when to use: 'Call this first if you don't have a wallet ready yet.' This establishes a clear usage context, though it does not explicitly name alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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 Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.117371MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1761MIT
social-preview-checkerSocial Preview CheckerASee exactly how your links look when shared on Telegram, WhatsApp, X, LinkedIn, Slack, Facebook & Discord. Bulk-audit Open Graph and Twitter Card tags, validate preview images, and find what breaks your link previews. — $0.01/call, x402 (USDC on base).
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful behavioral context beyond these: the per-call cost ('$0.01/call, x402 (USDC on base)') and the multi-platform scope (Telegram, WhatsApp, X, LinkedIn, Slack, Facebook & Discord). It also mentions validation and issue detection, but does not disclose return format or rate limits.
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 sentences, front-loaded with the core purpose and then expanding into details and pricing. Every sentence adds value—there is no fluff or redundancy. The pricing note is tacked on but informative.
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 no output schema, so the description should explain what the tool returns. It does mention 'find what breaks your link previews' which gives partial insight, but it does not describe the output structure (e.g., per-URL previews, audit report). The annotations and schema are simple, so some additional return-value context would improve 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?
The input schema fully describes both parameters (urls and maxConcurrency) with descriptions, so the baseline is 3. The description does not add extra meaning to these parameters beyond what the schema provides. 'Bulk-audit' loosely implies batching but does not enhance parameter semantics.
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 with specific verbs: 'See exactly how your links look...', 'Bulk-audit Open Graph and Twitter Card tags', 'validate preview images', and 'find what breaks your link previews'. It names the specific resources (links, OG tags, preview images) and distinguishes from siblings like ai-crawler-access-checker.
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 usage when you want to check social media link previews or audit meta tags, but it does not explicitly say when to use this tool vs alternatives. There are no exclusions or alternative tool names mentioned. The intended context is clear but not explicitly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.