Skip to main content
Glama

Vouch

Check that links load, where they redirect and whether #anchors exist

vouch_check_links
Read-onlyIdempotent

Use when the user asks whether links work, or before links, sources or doc URLs go into an answer, README, report, email or code comment (signals: "are these links dead", "check the links in this README", "does this URL exist", "404", "broken link", "where does this redirect", "is this docs page still there"). Fetches each URL live (GET, redirects followed hop by hop) and returns per link a status: ok, redirected (link the final_url), soft_404 (answers 200 but the title says not found, or a deep link lands on the front page), anchor_missing (the #section id is not on the page), broken (404, 410 or other 4xx), server_error (5xx), blocked (401, 403, 429 or a bot challenge: not proof the page is missing), unreachable (DNS, connection or timeout) or invalid. Each result has http_status, every hop, final_url, page title and canonical; for broken pages it lists the closest real pages from the site's own sitemap (suggestions, the top one re-checked). Give urls (up to 15) or text (Markdown, HTML or plain text; its http and https links are extracted, first 15 checked). Example: {"urls":["https://docs.stripe.com/api/charge","https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes"]}. Limits: a page can work in a browser and still be blocked here; pages built by JavaScript may hide anchors; one call makes at most 45 requests.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "vouch_check_links"
  }
}

Input Schema

NameRequiredDescriptionDefault
textNoMarkdown, HTML or plain text (a README, an answer, a doc); every http/https link in it is extracted and the first 15 unique ones are checked. Give urls or text, not both.
urlsNoUp to 15 http or https addresses. A #fragment is checked as an anchor on the page. Give urls or text, not both.
suggestNotrue (default): for broken pages, look up the closest pages in the site's sitemap.xml. false: skip that lookup.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real behavioral context beyond them: live GET with hop-by-hop redirects, the soft_404 and blocked distinctions, sitemap-based suggestions, and a 45-request-per-call ceiling. However it does not describe latency, ordering, or what happens when both urls and text are omitted (no required params).

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

Conciseness4/5

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

Front-loaded with the when-to-use clause and every clause carries information — status taxonomy, output fields, limits. It is a single dense block rather than structured sections, making the limits and output details harder to scan, but there is no filler.

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

Completeness5/5

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

For a no-output-schema, three-param validation tool this is complete: it enumerates every status value, the per-link fields returned (http_status, hops, final_url, title, canonical, suggestions), and the environmental caveats (JS-rendered anchors, bot blocking). An agent can call it and interpret results without further documentation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description goes slightly beyond by giving a worked example payload and restating the 15-link cap and mutual exclusivity of urls and text. It adds little on `suggest` beyond the schema's default explanation.

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

Purpose5/5

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

States a specific verb and resource — checks that links load, where they redirect, and whether #anchors exist — and the body enumerates the exact status taxonomy it produces. An agent can distinguish it from vouch_check_quote (quote verification vs. link validation) without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names when to use it (user asks whether links work; before URLs go into an answer, README, report, email or code comment) and supplies concrete trigger phrases such as "404", "broken link", "where does this redirect". It also states limits and when a "blocked" result should not be read as a missing page.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources