mcp-server
Server Details
AI-callable tools for API mocking, testing, monitoring, security, and automation.
- Status
- Healthy
- Uptime
- 75.3% over 75 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool targets a distinct diagnostic concern (CORS, SSL, status, DNS, JWT, security headers, redirects, URL generation), and descriptions clearly delineate boundaries. There is mild overlap among the URL-fetching tools (check_url_status vs. trace_redirects vs. scan_security_headers), but the differing redirect behavior and outputs make them distinguishable.
All nine tools use consistent snake_case with a leading verb (check_, generate_, scan_, trace_, decode_, dns_lookup). The pattern is predictable and readable throughout, with no mixed conventions.
Nine tools is well-scoped for an HTTP/web diagnostics server, and each tool earns its place by covering a distinct probe or generator. Nothing feels redundant or filler.
The surface covers a broad diagnostic lifecycle: DNS, TLS, redirects, status, CORS, security headers, JWT inspection, plus test-URL generators. Minor gaps remain (e.g. connectivity/latency or WHOIS/port checks), but core diagnostic workflows are well covered.
Available Tools
9 toolscheck_corsCheck CORSARead-onlyIdempotentInspect
Read-only CORS diagnostic. Sends an OPTIONS preflight (Origin plus Access-Control-Request-Method set to method) and one GET/HEAD request with an Origin header, then returns the Access-Control-Allow-* headers and an allowed/blocked verdict with reasons. The target is only ever sent OPTIONS, GET or HEAD; method is just the method being evaluated. Follows the Fetch standard CORS protocol (https://fetch.spec.whatwg.org/#http-cors-protocol).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL. Private, loopback and cloud-metadata addresses are rejected. | |
| method | No | HTTP method the browser would use (default GET). It is only evaluated against the preflight response and is never sent to the target. | GET |
| origin | Yes | Browser origin making the request, e.g. https://app.example.com | |
| requestHeaders | No | Comma-separated custom request headers, e.g. "authorization, content-type" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), and the description goes well beyond them by disclosing the precise network traffic sent, that the target only ever receives OPTIONS/GET/HEAD, and that `method` is evaluated but never transmitted. That is exactly the behavioral context an agent needs for an outbound probe.
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 sentences, front-loaded with the read-only diagnostic framing and what is sent, then the safety guarantee, then the protocol reference. Every sentence carries information; nothing is padding.
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 usefully names the return payload (Access-Control-Allow-* headers plus an allowed/blocked verdict with reasons), which compensates well. Minor omissions remain, such as redirect or timeout behavior, so it is complete enough 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 all four parameters are already documented in the schema, including the note that `method` is only evaluated. The description restates the `method` semantics and the Origin/ACRM header composition but adds no new syntax or format detail, so the baseline 3 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?
States a specific verb and resource (CORS diagnostic) and immediately specifies the exact exchange performed: an OPTIONS preflight plus a GET/HEAD with an Origin header. Among siblings like check_ssl, dns_lookup and trace_redirects, this is unambiguously the browser-CORS-evaluation tool.
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?
Usage is implied rather than stated: an agent can infer it is for determining whether a browser would permit a cross-origin request, but there is no explicit 'use this when' guidance and no contrast with sibling diagnostics (e.g. check_ssl or scan_security_headers). Adequate but clearly gapped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sslCheck TLS/SSLARead-onlyIdempotentInspect
Attempt an HTTPS HEAD request to a hostname and report whether the TLS handshake succeeded (trusted chain, matching name) with response time.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | Bare hostname, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive, lowering the bar. The description adds genuinely useful mechanics beyond that: a HEAD request over HTTPS, the two conditions that count as success (trusted chain, matching name), and the reported response time. It stops short of describing failure/timeout behavior.
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?
One well-formed sentence with the action, the method, the success criteria, and the return value front-loaded. No filler.
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 one-parameter, read-only network check with no output schema, the description covers the mechanics and the core return value. It leaves error modes (DNS failure, connection refused, timeout) unspecified, which 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% and the single parameter is documented in the schema as a bare hostname with an example. The description adds no format or syntax meaning beyond that, so the baseline of 3 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?
States a specific verb and resource ('Attempt an HTTPS HEAD request to a hostname') and names the exact success criteria (trusted chain, matching name) plus what is returned (response time). This is clearly distinguishable from siblings like check_url_status or scan_security_headers, which address different concerns.
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 tool's purpose (verifying TLS/certificate validity) but offers no explicit when-to-use versus when-not-to-use guidance and never references alternatives such as check_url_status for plain HTTP status. Usage is inferable but not directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_url_statusCheck URL statusARead-onlyIdempotentInspect
Request a URL (GET or HEAD, redirects not followed) and return its HTTP status code, status text, response time in ms and response headers. Status semantics follow RFC 9110 (https://www.rfc-editor.org/rfc/rfc9110#name-status-codes).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL. Private, loopback and cloud-metadata addresses are rejected. | |
| method | No | HEAD is faster; GET is what browsers do. | GET |
TDQS
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 adds genuinely new behavior: redirects are deliberately not followed, and it enumerates the four returned fields, which the agent would otherwise have to guess given there is no output schema.
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 dense sentences with no filler. The operation and its return payload come first, and the redirect/method constraint is packed into a parenthetical rather than padded into its own paragraph.
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 two-parameter read tool with no output schema, the description compensates well by naming the exact return fields and the RFC basis for status interpretation. Minor omissions remain (timeout behavior, error responses for unreachable hosts), but nothing essential to correct invocation 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?
Schema description coverage is 100%, and the schema already documents both parameters including the method trade-off ('HEAD is faster; GET is what browsers do'). The description's mention of GET/HEAD merely echoes the schema, so the baseline 3 for full-coverage schemas 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?
States a specific verb (Request) and resource (URL) and enumerates exactly what is returned: HTTP status code, status text, response time, response headers. The parenthetical '(GET or HEAD, redirects not followed)' cleanly separates it from the sibling trace_redirects, so an agent can pick between them without opening a schema.
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 'redirects not followed' note implicitly signals when this tool is appropriate versus trace_redirects, and the RFC 9110 reference sets expectations for status interpretation. However, no sibling is named and no explicit when-to-use/when-not condition is stated, leaving the routing guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_jwtDecode JWTARead-onlyIdempotentInspect
Decode a JSON Web Token (header and payload) without verifying the signature. Reports expiry status, seconds until expiry, and human-readable iat/nbf/exp.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The compact JWS token (an optional "Bearer " prefix is stripped) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds the critical behavioral caveat that no signature verification occurs and enumerates what is computed (expiry status, seconds until expiry, human-readable claims), which is real added context beyond the structured data.
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?
One dense sentence with the most important qualifier (no signature verification) placed early and the returned fields listed after. Zero filler.
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?
No output schema exists, and the description compensates by naming the returned signals (expiry status, seconds until expiry, human-readable iat/nbf/exp). It omits error behavior for malformed or truncated tokens, a minor gap for a single-parameter decoding utility.
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 the single parameter is fully documented there, including the 'Bearer ' prefix stripping behavior. The description adds nothing about the token parameter, so the baseline 3 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?
States a specific verb (Decode) and resource (JWT, header and payload) and immediately scopes it with 'without verifying the signature,' which is the single most decision-relevant qualifier for a JWT tool. No sibling tool overlaps, so differentiation is unnecessary.
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?
Usage is implied rather than stated: 'without verifying the signature' hints at inspection/debugging scenarios, but there is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named (none exists among siblings). Adequate but leaves the trigger condition to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_lookupDNS lookupARead-onlyIdempotentInspect
Resolve A, AAAA, CNAME, MX, TXT or NS records for a hostname using Cloudflare DNS-over-HTTPS, returning record data and TTLs.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | A | |
| hostname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds value beyond that by disclosing the transport (Cloudflare DNS-over-HTTPS, an external dependency) and the return contents (record data plus TTLs). It does not mention failure behavior for NXDOMAIN or any rate/abuse limits on the DoH endpoint.
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?
A single well-formed sentence with zero filler, front-loaded with the action and resource and ending with the return payload. Nothing is padded.
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 read-only lookup with safety fully covered by annotations and no output schema, the description tells the agent enough to call it: what it resolves, the allowed record types, and roughly what comes back. Remaining gaps (hostname format, error/empty-result behavior) are minor but real.
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 0%, so the description must carry the burden, and it largely does not. It re-lists the record types already enumerated in the schema and names 'hostname' without clarifying format (bare host, no scheme/URL, no trailing dot) or the A default.
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 (Resolve), the resource (DNS records), the enumerated record types, the upstream resolver (Cloudflare DNS-over-HTTPS), and what comes back (record data and TTLs). This is unmistakably distinct from siblings like check_ssl, check_cors, or trace_redirects.
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?
Usage is implied — you call it to look up DNS records for a hostname — but there is no explicit when-to-use, no statement about prerequisites, and no routing to alternatives among the sibling checkers. The default of type A is left entirely to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_dummy_responseGenerate dummy JSON URLARead-onlyIdempotentInspect
Return a live URL on https://mcp.httpstatus.com serving placeholder JSON (user, users, product, products, todo, error) plus an inline sample. Plural kinds accept count (max 50).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| count | No | Number of items for users/products/todo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavior beyond them: the URL is live and hosted on mcp.httpstatus.com, and the response also includes an inline sample, which matters because no output schema exists.
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 tightly packed sentences with no filler; the returned resource and host are front-loaded before the kind enumeration and count constraint.
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 two-parameter generator with no output schema, the description covers the return value (live URL plus inline sample), the kind vocabulary, and the count bound. Nothing an agent needs to invoke it correctly 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?
Schema coverage is 50% and the description compensates by enumerating all six kind values and stating the count cap. It also says count applies only to plural kinds, which slightly diverges from the schema's 'users/products/todo' wording and could make an agent skip count for 'todo'.
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 concrete verb and resource: it returns a live URL serving placeholder JSON, and it enumerates the six supported kinds. An agent understands the artifact produced, though nothing explicitly distinguishes it from the sibling generate_status_url.
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?
Usage is only implied by the resource ('placeholder JSON'), with no statement of when to prefer this over generate_status_url or the other URL-producing siblings. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_status_urlGenerate status-code test URLARead-onlyIdempotentInspect
Return a live URL on https://mcp.httpstatus.com that responds with any HTTP status code 100-599, optionally after a delay (max 10000 ms). Useful for testing error handling, retries and timeouts.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | HTTP status code to return | |
| delayMs | No | Artificial delay before responding |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that the URL is 'live' and hosted at mcp.httpstatus.com, but it does not explain persistence/lifetime of the returned URL or what the response body/format looks like. With annotations carrying the behavioral load, this is adequate but not rich.
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 the core behavior followed by the use case. No filler and nothing that fails to earn 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?
With no output schema, the description correctly states that a URL is returned, which is the essential return-value information for a 2-parameter tool. Minor gaps (URL lifetime, whether the generated URL is reusable) remain but do not block correct invocation.
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. The description restates the effective range (100-599) and delay ceiling (max 10000 ms) but adds no semantics beyond the schema's own constraints. Baseline 3 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?
Specific verb+resource: it returns a live URL that responds with a chosen HTTP status code, and it names the hosting domain. It is clearly differentiated by function from siblings like check_url_status and generate_dummy_response, though it does not explicitly name them. An agent can tell what it produces without opening the schema.
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 states the intended context clearly: testing error handling, retries, and timeouts. There are no explicit exclusions or pointers to sibling tools (e.g., when to prefer generate_dummy_response), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_security_headersScan security headersARead-onlyIdempotentInspect
Fetch a URL (following up to 5 redirects) and report presence/values of HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy with an n/6 grade. Header definitions: MDN HTTP security headers (https://developer.mozilla.org/docs/Web/HTTP/Headers) and the OWASP Secure Headers Project.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL. Private, loopback and cloud-metadata addresses are rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the bar is lower, and the description adds genuinely useful detail: redirects are followed up to a limit of 5, and the output is graded n/6 with named header sources. It does not, however, mention rate limits, timeouts, or what happens to unreachable URLs.
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 the core action and redirect behavior, with no filler. The trailing reference links (MDN, OWASP) consume space but provide interpretability value for the header definitions.
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 explaining returns and does so by naming the reported headers and the n/6 grade, so an agent knows what to expect. Missing only edge-case behavior (errors, timeouts, non-HTTP responses).
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's constraints (absolute http(s) URL, rejected private/loopback/cloud-metadata addresses, 2048 max length) are fully documented in the schema. The description adds nothing beyond that, so the baseline 3 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?
States a specific verb (fetch/scan) and resource (HTTP security headers) and enumerates exactly which six headers are inspected plus the n/6 grading output. This cleanly separates it from sibling scanners like check_ssl, check_cors and check_url_status.
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?
Usage is only implied by the description of what it does; there is no explicit when-to-use or when-not-to-use guidance, nor any pointer to sibling tools such as trace_redirects for redirect-chain work or check_ssl for TLS. Adequate but with a clear routing gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_redirectsTrace redirect chainARead-onlyIdempotentInspect
Follow a URL through its redirect chain (max 15 hops) reporting each hop's URL, status, latency and Location header, plus the final URL and whether a loop was detected. Redirect semantics follow RFC 9110 section 15.4 (https://www.rfc-editor.org/rfc/rfc9110#name-redirection-3xx).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL. Private, loopback and cloud-metadata addresses are rejected. | |
| maxHops | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint=false), so the bar is lower. The description still adds real behavior: a hard 15-hop cap, RFC 9110 §15.4 redirect semantics, loop detection, and the exact per-hop fields returned. It omits timeout/auth behavior and whether non-HTTP methods are followed, but that is a modest gap against strong annotation coverage.
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, zero filler. The core output contract is front-loaded and the standards reference is appended where it belongs rather than interrupting the primary statement.
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 return-value burden and does so well by naming every reported hop field plus loop detection. What is missing is edge behavior (timeouts, non-2xx/3xx handling, request method), which leaves a small but real gap for a network-fetching tool.
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 50%: the url parameter is well documented with the SSRF-rejection caveat, but maxHops has no schema description. The description supplies the ceiling (max 15 hops), matching the schema maximum, but not the default of 10 or the per-call meaning of the parameter, so it only partially compensates.
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?
Specific verb+resource: it follows a URL through its redirect chain and enumerates exactly what is produced (per-hop URL, status, latency, Location; final URL; loop detection). An agent can distinguish this from check_url_status, which only reports terminal status, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose — you call it when you need to see intermediate hops rather than a single final status — but there is no explicit when-to-use/when-not and no named alternative among siblings like check_url_status or check_ssl. Guidance is sufficient to infer intent but never stated.
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
- Changed
check_cors3 fields changed- added
Input schema / properties / method / descriptionAdded value: +"HTTP method the browser would use (default GET). It is only evaluated against the preflight response and is never sent to the target." - removed
Input schema / properties / method / enumRemoved value: -[ - "GET", - "HEAD", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS" -] - added
Input schema / properties / method / patternAdded value: +"^[A-Za-z]{3,10}$"
9 tool updates
- First observed
check_cors - First observed
check_ssl - First observed
check_url_status - First observed
decode_jwt - First observed
dns_lookup - First observed
generate_dummy_response - First observed
generate_status_url - First observed
scan_security_headers - First observed
trace_redirects
Related MCP Connectors
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Free AI test helpers: injection inputs, OWASP mapping, release plans, response and tool-call packs.
Find and call verified APIs from any AI assistant, with free trial calls and previewed writes.
Discover, compare, and monitor 1,400+ APIs directly from your AI coding agent.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to call real API endpoints and verify responses against OpenAPI specs, supporting contract testing, auth presets, spec diffing, and health checks.829 npmMIT

Bowire MCPofficial
AlicenseAqualityAmaintenanceLets an AI agent discover and call the APIs of a running service — gRPC, REST/OpenAPI, GraphQL, SignalR, MQTT, WebSocket and more — and record, replay, mock and assert on those calls. Calls only go to allowlisted URLs, and tools that change state ask for confirmation first.2512Apache 2.0- AlicenseNot gradedqualityCmaintenanceEnables AI agents to inspect, test, validate, compare, and debug HTTP APIs through a structured toolkit, with features such as secret redaction, response contract validation, regression comparison, health checks, and incident investigation workflows.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to build, debug, and test hosted mock REST APIs by scaffolding persistent CRUD resources, importing OpenAPI specs, simulating requests, auto-healing failing endpoints, and injecting latency or error faults. It also exposes live OpenAPI and TypeScript contract resources for each workspace.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.