SEO Tools
Server Details
5 pay-per-call SEO tools over MCP. Free discovery, tool calls settle in USDC on Base via x402.
- Status
- Healthy
- Uptime
- 100.0% over 40 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Several tools have overlapping purposes: ai-crawler-access-checker and llms-txt-auditor both check robots.txt for AI crawler access, while ai-answer-change-alert, ai-overview-tracker, and llm-brand-visibility all track AI-generated citations/visibility. An agent may struggle to pick the right one without reading full descriptions.
Most tools use lowercase hyphenated noun phrases (e.g., ai-answer-change-alert, social-preview-checker), but pricing_info uses an underscore, breaking the otherwise consistent pattern. Minor deviation but still readable.
Seven tools is well-scoped for a specialized SEO/AI-visibility server. Each tool addresses a distinct aspect (crawler access, llms.txt, AI citations, brand visibility, social previews) without being excessive, and the pricing_info helper is a sensible addition.
The set covers the core AI-era SEO workflow: audit AI crawler access, validate llms.txt, track AI overview citations, monitor answer changes, and check brand visibility. Missing obvious features like generating llms.txt or deeper competitor analysis, but no critical dead ends.
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. |
TDQS
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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond this: it specifies the exact checks (robots.txt, llms.txt, sitemap) and the cost per call ($0.01/call, x402 USDC), which helps an agent understand the tool's side effects and commercial implications. No contradiction with 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 two sentences plus a pricing tag, with the main purpose front-loaded. Every sentence is informative, and the pricing note is a useful operational detail. It's concise but not overly sparse.
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 2 simple parameters, a read-only annotation, and no output schema, the description is complete enough for an agent to decide to invoke it. It explains the audit targets and the pricing. It doesn't describe the output format, but for a 'checker' tool this is relatively predictable and not a major 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 description coverage is 100%: both 'websites' and 'maxConcurrency' have descriptive text in the schema. The description doesn't add significant parameter-level meaning beyond mentioning 'bulk audit' and the target crawlers, so it relies on the schema. 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 uses a specific verb ('Check') and resource ('which AI crawlers can access your website'), listing concrete crawler names (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) and the audit elements (robots.txt, llms.txt, sitemap). This clearly distinguishes it from sibling tools like llms-txt-auditor or ai-overview-tracker.
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 clear context: it's for auditing AI crawler access for AI search visibility (GEO/AEO) in bulk. It doesn't explicitly state when not to use it or name alternatives, but the usage context is well implied for an AI agent.
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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and non-destructive, and the description adds valuable behavior: it uses the user's OpenRouter key, makes external LLM calls, and costs $0.10/call with x402 payment details. This goes beyond annotations by disclosing cost, external integration, and the operational model without contradiction.
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 delivers the core purpose in the first sentence, with the second sentence adding a concise definition of GEO citation tracking. The pricing and payment info is brief. The marketing metaphor 'backlink profile of the AI-answer era' is slightly non-essential but not wasteful. It is efficiently structured and front-loaded.
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 no output schema, the description could have clarified return format, but it does state that users 'see which sources and domains' are cited, which conveys the core output. Complexities like multiple models and billing are left to the schema. The description is adequate for a straightforward read tool but not exhaustive.
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 adds marginal value by mentioning 'your own OpenRouter key' and pricing, but most parameter semantics (like row multiplication, concurrency limits) are already in the schema. No new parameter-level insights are provided.
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 uses a specific verb ('see') and resource ('sources and domains AI assistants cite'), making the tool's purpose immediately clear. It distinguishes itself from siblings by focusing on AI citation tracking (GEO) rather than change alerts, crawler access, 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 phrase 'For each query that matters' implies the tool is used for tracking citations across AI assistants, and 'GEO citation tracking' suggests a use case. However, it does not explicitly compare itself to sibling tools like llm-brand-visibility or provide when-not-to-use guidance. Usage is implied rather than explicitly delineated.
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 TrackerARead-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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, openWorld=true, destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond these: it uses your own OpenRouter key, calls external models (Perplexity Sonar, GPT, Gemini), and incurs a per-call cost. No contradiction with 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 concise: two sentences, with the main purpose front-loaded in the first sentence. The second sentence adds technical context and pricing. The 'GEO: the SEO of the AI era' tagline is slightly promotional but not enough to penalize heavily.
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 no output schema, the description should explain what the user gets back, but it does not describe the result format or scoring metrics. It does cover external dependencies, cost, and model grounding, but the missing output behavior leaves a gap for full contextual 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%, and each parameter already has a rich description (e.g., queries × models billing, max limits, OpenRouter key requirements). The main description adds no extra parameter-level details, so a 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: 'check whether AI assistants recommend YOUR brand — and which competitors they cite instead.' This employs a specific verb (check/recommend) and resource (AI assistant answers), and it distinguishes this tool from siblings like ai-overview-tracker by focusing on brand vs competitor 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 conveys clear usage context ('For each query that matters') and value proposition, implying this is for monitoring brand presence in AI responses. However, it does not explicitly mention when to use this tool over alternatives or provide exclusions, so it stops short of a 5.
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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context beyond annotations: it is 'llms.txt-first', uses no browser, no LLM, no API key, and costs $0.01/call via x402. This helps the agent understand operational constraints without contradicting 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 sentences, each contributing value: usage instruction, core functionality, operational constraints, and pricing. It is front-loaded with 'Give it a domain' and not overly verbose, though the payment detail could be considered extraneous for tool selection.
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 low complexity (2 params, no output schema), the description adequately covers purpose, constraints, and cost. However, it does not describe the return format (e.g., per-domain results), which would be helpful since there is no output schema. This is a minor gap for an otherwise complete description.
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%, with clear descriptions for both 'items' (domains to audit) and 'maxConcurrency' (parallel audits). The description does not add significant meaning beyond the schema; the phrase 'Give it a domain' even slightly misrepresents the array-based 'items' parameter. 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 states a clear action ('checks whether the site publishes a valid llms.txt / llms-full.txt... and whether robots.txt blocks...') and identifies the specific resources (llms.txt, robots.txt, named AI crawlers). It distinguishes from sibling 'ai-crawler-access-checker' by combining both llms.txt and robots.txt checks, making the scope explicit.
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 clear context for when to use the tool: give it a domain, no browser/LLM/API key needed, and costs $0.01/call. It implies a lightweight audit, but it does not explicitly state when NOT to use it or name alternatives such as 'ai-crawler-access-checker' for robots.txt-only checks.
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 | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior. The description adds the 'Free' aspect and clarifies that no wallet is needed, which provides useful 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 one sentence, front-loaded with 'Free', and every word contributes meaning. It avoids redundancy and maintains high 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?
For a parameterless tool with no output schema, the description fully explains what it returns and when to use it. It is complete for the tool's simplicity and context.
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 zero parameters, so schema coverage is 100% by default. The description adds no parameter info, which is appropriate; no parameters means the baseline of 4 applies.
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 lists every paid tool in the 'seo-tools' bundle with price, payTo address, and network. This specific verb+resource+output distinguishes it from sibling tools that perform audit/checker functions.
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?
Explicitly instructs to call this first if a wallet isn't ready, providing a clear usage context. It does not mention alternatives or when not to use it, but the single-sentence guidance is sufficient for a simple tool.
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.
1 tool update
- Added
ai-answer-change-alert
6 tool updates
- First observed
ai-crawler-access-checker - First observed
ai-overview-tracker - First observed
llm-brand-visibility - First observed
llms-txt-auditor - First observed
pricing_info - First observed
social-preview-checker
Related MCP Connectors
8 pay-per-call web intel tools over MCP. Free discovery, calls settle in USDC on Base (x402).
9 pay-per-call company intel tools over MCP. Free discovery, calls settle in USDC on Base (x402).
Pay-per-call data tools for AI agents: crypto signal, web reader, SEO audit. x402 USDC on Base.
Pay-per-call research tools for AI agents, paid via x402 USDC. Remote MCP, one free tool.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenancePay-per-call MCP server for WebberSites x402 Data API, offering 45 tools for AI agents: web scraping, document extraction, SEO audits, linting, crypto data, and more, with payment via USDC on Base.40 npmMIT
- AlicenseNot gradedqualityBmaintenancePay-per-call access to SEO and SERP data, keyword research, backlink and site audits, local business search, SMS verification, social marketing, EU-hosted LLM inference, and read-only on-chain calls. No signup and no API key: agents pay per request in USDC on Base via x402.239 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides free MCP-based tool discovery and per-call paid execution of live web search and deep research tools, with USDC settlement via x402 v2.MIT
- AlicenseAqualityDmaintenanceExposes professional SEO tools (content briefs, keyword research, SERP analysis, backlink profiles, and on-page audits) to MCP-compatible AI agents with automatic x402 micropayment handling on Base.531 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
social-preview-checkerSocial Preview CheckerARead-only Inspect
See 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).
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description builds on that by adding cost details ($0.01/call, x402) and specific behaviors like validating images and diagnosing broken previews. This enriches the agent's understanding of what the tool actually does during a read-only operation, going beyond the safety profile.
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 and front-loaded, with each sentence providing essential information: what the tool does, what it audits, and its pricing. There is no redundant or filler content, making it efficient for an agent to parse quickly.
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?
Despite lacking an output schema, the description gives a clear sense of the tool's capabilities and scope, including platforms, tag types, and pricing. It doesn't explicitly describe the return format or edge cases, but the simplicity of the tool and strong parameter coverage make this a minor gap, warranting a 4.
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 both parameters (urls and maxConcurrency) are already fully documented in the schema. The description adds no additional parameter-level detail beyond the schema's existing explanations, meeting the baseline of 3 without enhancing 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 specific platforms (Telegram, WhatsApp, X, etc.) and uniquely identifies the resource being checked (link previews), distinguishing it from sibling 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 provides clear context for when to use the tool—when sharing links on social platforms and wanting to check previews. It implicitly conveys the use case without explicitly listing alternatives or exclusions. The presence of platforms and audit activities makes the intended scenario obvious, though no direct 'when not to use' guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.