Botworthy
Server Details
Check whether a website works for AI agents before visiting it, and the steps that worked.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools have clearly distinct purposes: check_site retrieves existing scan results, request_scan queues a new site, and report_visit submits post-visit feedback. The descriptions explicitly clarify the boundary between checking an already-scanned site and requesting an unscanned one, reducing likely misselection.
All tools follow a consistent verb_noun pattern: check_site, report_visit, request_scan. The naming is predictable and readable.
Three tools is well-scoped for this server's narrow purpose: lookup, request, and feedback. Each tool earns its place without obvious redundancy.
The surface covers the core lifecycle: check scan results, request a scan, and report visit outcomes. Minor gaps exist, such as no bulk scan request or explicit scan-status listing, but agents can work around these through check_site.
Available Tools
3 toolscheck_siteCheck a website before visiting itARead-onlyInspect
Look up how well an AI agent could use a website when Botworthy last scanned it: whether it blocked agents, the score out of 100, advice, and for each of 5 everyday tasks the outcome and the exact steps (control role and accessible name) that worked. Accepts any URL or domain. If the site hasn't been scanned, says whether a scan is queued.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | A URL or domain, e.g. https://www.example.com/shop or example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only safety profile, and the description adds useful behavior beyond them: it discloses the freshness signal ('when Botworthy last scanned it') and the miss-path behavior ('If the site hasn't been scanned, says whether a scan is queued'). No rate limits or failure modes for malformed URLs are mentioned, and 'Accepts any URL or domain' sits slightly uneasily with openWorldHint=false, though not enough to be a direct 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?
It is one dense sentence plus two short ones, front-loaded with the lookup purpose and the scan-freshness qualifier. The enumeration of five tasks and their control role/accessible-name payload is justified detail, though the sentence is long enough to be slightly heavy to parse.
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 carries the burden of describing returns and does so concretely (blocked status, 0-100 score, advice, per-task outcomes and steps). What is missing is secondary: error behavior for invalid input and the response shape when nothing is cached beyond the queued-scan note.
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 the single parameter already has an example of both URL and bare-domain forms, so the schema does the heavy lifting. The description's 'Accepts any URL or domain' restates rather than extends that meaning, making the baseline 3 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 gives a specific verb and resource ('Look up how well an AI agent could use a website ... when Botworthy last scanned it') and enumerates the returned data (blocked status, score out of 100, advice, five task outcomes with control role and accessible name). It does not name the sibling tools, so the boundary with request_scan/report_visit is only implied by the mention of queued scans.
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 title sets the intent ('Check a website before visiting it') and the description states 'Accepts any URL or domain', which implies pre-visit lookup usage. However, it never explicitly says when to call request_scan instead (e.g., when a scan is missing) or when report_visit applies, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_visitReport how a task went on a websiteAIdempotentInspect
Tell Botworthy how one of its 5 tasks went when you did it on a website. Reports aren't published: they decide what gets scanned or rescanned next. Only send it for visits where you didn't log in, didn't enter personal data, and didn't get around a CAPTCHA or bot check, and never include anything about the user.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | A URL or domain | |
| task | Yes | find-pricing: Find a price; search: Search for something; start-checkout: Start a purchase or sign-up; find-support: Find a human; find-policy: Find the fine print | |
| agent | No | Your agent's name, optional | |
| steps | Yes | The actions you took, in order | |
| reason | No | One line on what happened | |
| outcome | Yes | ||
| ranFrom | No | Where your browser ran | |
| finalUrl | No | ||
| followedRules | Yes | All three must be true, or the report is turned away |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses that reports are not published and instead influence what Botworthy scans or rescans next, clarifying the downstream side effect. It also supplies substantive privacy and eligibility constraints, all consistent with the non-read-only, non-destructive 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?
Three compact sentences front-load the purpose, then explain the downstream effect, and finish with eligibility and privacy restrictions. Every sentence contributes useful information without filler or unnecessary repetition of the schema.
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?
Together with the detailed schema, the description provides enough context to construct a compliant report and understand why it is submitted. It remains short of fully complete because sibling-tool routing, outcome-selection criteria, and acceptance or error behavior are not explained, and there is no output schema to supply response details.
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?
With 78% schema coverage, the schema already documents most fields, including the nested steps and followedRules structures. The description adds a valuable cross-field prohibition on user information, but does not clarify reporting conventions such as when outcome should be partial versus failed or blocked.
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 opening sentence clearly states that the tool reports to Botworthy how one of five supported tasks went on a website. It provides some post-visit context through the scanning explanation, but does not explicitly distinguish the tool from check_site or request_scan.
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 gives strong when and when-not guidance: report a performed task only if the visit involved no login, personal-data entry, or CAPTCHA/bot-check bypass, and never include user information. Explicit routing to check_site or request_scan for related needs would make tool selection more complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_scanAsk Botworthy to scan a websiteAIdempotentInspect
Queue a website that Botworthy hasn't scanned yet. Scans run in batches by Botworthy's own agent, so expect days, not minutes; don't wait for it. Sites already scanned aren't queued again.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional, up to 300 characters | |
| site | Yes | A URL or domain | |
| agent | No | Your agent's name, optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, non-destructive, idempotent, closed-world operation. The description adds context the annotations cannot: scans run in asynchronous batches and take days rather than minutes, so the caller must not block on a result. The statement that already-scanned sites are not re-queued corroborates the idempotent hint and explains the deduplication behavior concretely.
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?
Three short sentences with no filler. The action and its constraint come first, the latency warning second, the deduplication behavior last — a front-loaded order that matches the order in which an agent needs the information.
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 three-parameter queueing tool with full schema coverage and no output schema, the description covers the crucial unknowns: asynchronous latency and deduplication of previously scanned sites. It could add a word on whether any confirmation or identifier is returned and how to later verify results via check_site, but nothing essential to making the call is missing.
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?
All three parameters are already documented at 100% schema description coverage, so the description carries no burden here. It adds nothing about the `note`, `agent`, or accepted URL/domain format of `site`, leaving the schema to do all the work. Baseline 3 applies when the schema is fully covered.
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?
States a specific verb and resource: 'Queue a website that Botworthy hasn't scanned yet.' The scoping condition (only unscanned sites) makes the action concrete. It does not, however, name or differentiate itself from the siblings check_site and report_visit, so an agent must infer the boundary itself.
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 right moment to call it — a site not yet scanned — and warns 'don't wait for it' because scans take days. That is useful operational guidance. What is missing is explicit routing: an agent should presumably call check_site first to learn whether a site has already been scanned before requesting a scan, and nothing states that or names the alternative.
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.
3 tool updates
- First observed
check_site - First observed
report_visit - First observed
request_scan
Related MCP Connectors
Check a website in a real browser, or check if AI agents can use it: score, problems, report link.
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
Check whether a website is ready for AI agents (UCP, WebMCP, Access) and monitor your own sites.
Check how well AI agents can discover and understand a public website.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceVerifies AI agent actions by exercising public web surfaces and returning evidence-based pass/fail verdicts on real outcomes, rather than trusting self-reported success messages.-
- AlicenseBqualityBmaintenanceGives browser agents a reviewed map of 79 real sites — entry URLs, access verdicts, and role/accessible-name button maps for 104 screens — so an agent can find where things are and know whether it may act at all. Safety rules in code halt irreversible actions such as pay, order, submit and delete pending explicit human approval, while per-site memory recalls which routes worked last time.29MIT
- AlicenseAqualityCmaintenanceEnables AI agents to check whether a public website is crawlable, understandable, and ready for AI search workflows through local-only audits of robots.txt, sitemaps, metadata, and llms.txt.371 npm1MIT

He Dejo MCPofficial
AlicenseNot gradedqualityAmaintenanceHe gives AI agents a browser with memory: they explore a website once, then replay the learned route in a single tool call with zero model calls, repairing individual steps when the site changes. It also keeps a per-site map of seen pages and controls, handles manual sign-in and multiple signed-in profiles, and lets agents on one machine share routes.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.