Skip to main content
Glama

Server Details

Continuous website testing by Validoria — monitor security, SEO, performance, and accessibility.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 78 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.6/5.0

Scored across 3 tools

Disambiguation3/5

The guest_start_scan/guest_get_scan pair is clearly split by action (start vs. poll), and discover_tools is a distinct meta-tool. However, discover_tools references call_read_tool and call_tool (plus a hidden mass of area tools) that are not part of this surface, so an agent cannot tell whether to use the dispatcher, the named tool, or a tool it cannot see.

Naming Consistency4/5

All names are snake_case and follow a verb_noun shape (discover_tools, guest_start_scan, guest_get_scan), with a clean guest_ family prefix for the scan pair. The only oddity is that discover_tools is a generic meta-tool while the other two are domain-specific, but that is a minor deviation.

Tool Count2/5

Only three tools are exposed, yet the description of discover_tools reveals a very large domain (automation rules, journeys, load tests, notifications, reports, secrets, SLA, admin, etc.) accessed through a generic dispatcher. That mismatch makes the surface both too thin and opaque relative to the server's apparent scope.

Completeness3/5

The guest flow is complete for a start/poll lifecycle, but there is no cancel/stop, no authenticated scan or target-creation tool (create_target is referenced but absent), and the many tool areas mentioned by discover_tools are not actually represented. Notable gaps remain for anything beyond a one-off anonymous scan.

Available Tools

3 tools
discover_toolsDiscover ToolsA
Read-only
Inspect

Only everyday tools are listed; the rest (automation rules, journeys, load tests, maintenance, notifications, reports, secrets, keywords, SLA, settings, admin …) are found here. No arguments: every tool you can run, by area. query: matching tools with a summary, effect and parameters. tools: their full input schemas. Run one with call_read_tool (reads) or call_tool (changes), or by its own name.

NameRequiredDescriptionDefault
queryNoWhat you want to do, e.g. "maintenance window" or "mute alerts"
toolsNoTool names whose full input schema to return

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark it as read-only (readOnlyHint=true). The description adds useful behavioral detail: query returns matching tools with summaries, effects, and parameters; tools returns full input schemas. It also indicates how to invoke discovered tools, which is helpful context beyond annotations.

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

Conciseness3/5

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

The description front-loads the distinction between everyday and other tools, but the long parenthetical list of areas is somewhat cluttered. The parameter explanations and invocation guidance are useful but could be more tightly structured.

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

Completeness4/5

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

For a discovery meta-tool with no output schema, the description does a good job explaining the output for each parameter mode and how to proceed after discovery. It does not mention limits like maxItems (e.g., 10 tools) or pagination, but those are covered by the schema.

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%, but the description goes further by explaining what the query parameter yields (matching tools with summary, effect, and parameters) and what the tools parameter returns (full input schemas). This adds semantic value beyond the schema's brief descriptions.

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

Purpose4/5

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

The description identifies this as a discovery tool for tools not in the everyday list, and explains what query and tools return. The opening sentence is a bit ambiguous about where tools are 'listed', but the overall purpose is clear enough for an agent to understand it as a tool search.

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

Usage Guidelines4/5

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

It states that no arguments returns every tool by area, and explains how to run a discovered tool via call_read_tool, call_tool, or by name. This gives clear usage context, though it doesn't explicitly contrast with just calling tools directly.

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

guest_get_scanGet guest scan resultsA
Read-only
Inspect

Poll results for a guest_start_scan. Pass the scanId and guestSessionId from the start response. No API key required.

NameRequiredDescriptionDefault
scanIdYesScan workflow id from guest_start_scan
guestSessionIdNoGuest session id returned by guest_start_scan

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint=false, so the description is not carrying the safety burden. It does add genuinely non-obvious context beyond the annotations: that no API key is required and that the two ids come from the start response. It stops short of saying what a poll returns or whether an incomplete result is possible.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then the inputs, then the auth note. Every sentence carries distinct information and nothing is padded.

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

Completeness3/5

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

There is no output schema, so the description should indicate what a poll returns (status field, completion indicator, partial results). It says only "poll results," leaving the return shape and polling-termination semantics to inference — a meaningful gap for a polling tool.

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

Parameters3/5

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

Schema description coverage is 100% — both scanId and guestSessionId are documented in the schema, including that they come from guest_start_scan. The description repeats that provenance but adds no new detail such as format, lifetime, or whether guestSessionId is optional in practice.

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

Purpose4/5

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

States a specific verb and resource ("Poll results") and ties it directly to guest_start_scan, so the agent understands this is the retrieval counterpart to the start tool. It is not an explicit contrast with siblings (discover_tools is unmentioned), but the start/get pairing is clear enough to route correctly.

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

Usage Guidelines3/5

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

"Poll results for a guest_start_scan" implies the tool is called after starting a scan and may be called repeatedly, but there is no explicit guidance on retry cadence, when to stop polling, or what to do if results are not yet ready. Usage is implied rather than stated.

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

guest_start_scanGuest quick scan (no account)AInspect

Run a free 6-test HTTP scan against a public URL without an API key. Rate-limited (5/IP/hour, 3/session/day). Returns scanId — poll with guest_get_scan. For continuous monitoring, sign up free and use create_target. See teste-no://docs/quickstart.

NameRequiredDescriptionDefault
urlYesPublic http(s) URL to scan, e.g. https://example.com

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: annotations only say it is non-read-only, open-world, non-idempotent and non-destructive, while the description discloses concrete rate limits (5/IP/hour, 3/session/day), the absence of an API key requirement, the fact that it is asynchronous, and that it returns a scanId requiring polling. Those are exactly the operational facts an agent needs before calling.

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

Conciseness5/5

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

Four tight sentences, front-loaded with purpose, then limits, then the return/polling contract, then the upgrade path, and finally a docs pointer. No sentence is filler; each carries a distinct decision-relevant fact.

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?

There is no output schema, and the description compensates by stating the return value (scanId) and the follow-up call needed to retrieve results. Combined with the rate limits and the anonymous-access condition, nothing material is missing for correct invocation.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already documents 'url' with format and an example. The description's phrase 'against a public URL' reinforces the constraint but adds no format, syntax, or validation detail beyond what the schema provides.

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 ('Run a free 6-test HTTP scan against a public URL') with the qualifying constraint 'without an API key'. It also distinguishes itself from siblings by naming guest_get_scan for polling and create_target for monitoring, so an agent can route correctly without opening any 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 gives the when (free, anonymous, one-off scan of a public URL), the alternative (create_target for continuous monitoring), and the follow-up path (poll with guest_get_scan). It also states the exclusion implied by 'public URL' plus the rate-limit ceiling, which tells the agent when this tool will fail.

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. 77 tool updates
    • Removedaccept_visual_baseline
    • Removedacknowledge_incident
    • Removedactive_runs
    • Removedadd_keyword
    • Removedanalyze_target
    • Removedcancel_load_test
    • Removedcreate_automation_rule
    • Removedcreate_journey
    • Removedcreate_maintenance_window
    • Removedcreate_muting_rule
    • Removedcreate_notification_rule
    • Removedcreate_page_fragment
    • Removedcreate_scheduled_report
    • Removedcreate_target
    • Removeddaily_trends
    • Removeddelete_automation_rule
    • Removeddelete_journey
    • Removeddelete_maintenance_window
    • Removeddelete_notification_rule
    • Removeddelete_page_fragment
    • Removeddelete_scheduled_report
    • Removeddelete_secret
    • Removeddelete_target
    • Removeddisable_all_tests
    • Addeddiscover_tools
    • Removedenable_all_tests
    • Removedget_automation_rule
    • Removedget_finding
    • Removedget_incident
    • Removedget_journey
    • Removedget_load_test
    • Removedget_run
    • Removedget_site_map
    • Removedget_target
    • Removedget_target_scores
    • Removedget_target_sla
    • Removedget_team_settings
    • Removedimport_targets
    • Removedlist_automation_rules
    • Removedlist_findings
    • Removedlist_incidents
    • Removedlist_journeys
    • Removedlist_keywords
    • Removedlist_load_tests
    • Removedlist_maintenance_windows
    • Removedlist_notification_channels
    • Removedlist_notification_rules
    • Removedlist_page_fragments
    • Removedlist_runs
    • Removedlist_scheduled_reports
    • Removedlist_secrets
    • Removedlist_targets
    • Removedlist_tests
    • Removedlist_visual_baselines
    • Removedmute_finding
    • Removedrecompute_scores
    • Removedrecord_deployment
    • Removedremove_keyword
    • Removedresolve_incident
    • Removedrotate_secret
    • Removedset_target_test
    • Removedstart_load_test
    • Removedstore_secret
    • Removedsystem_health
    • Removedtarget_stats
    • Removedteam_stats
    • Removedtrigger_all_tests
    • Removedtrigger_journey
    • Removedtrigger_test
    • Removedupdate_automation_rule
    • Removedupdate_journey
    • Removedupdate_notification_rule
    • Removedupdate_page_fragment
    • Removedupdate_scheduled_report
    • Removedupdate_target
    • Removedupdate_team_settings
    • Removedupdate_test
  2. 2 tool updates
    • Addedaccept_visual_baseline
    • Addedlist_visual_baselines
  3. 2 tool updates
    • Changedupdate_target1 field changed
      • changedInput schema / properties / uptimeKeyword / description
        Previous value: -"Keyword to verify in response body during uptime checks. When set, every uptime ping GETs the page and verifies this text appears (case-insensitive). If missing, the site is treated as DOWN even on HTTP 200. Set to null to disable keyword verification."New value: +"Keyword to verify in response body during uptime checks. When set, every uptime ping GETs the page and verifies this text appears (case-insensitive). If missing, the site is treated as DOWN even on HTTP 200 (reported as \"keyword not found\"). Saving a keyword fetches the page once and is refused when the keyword is not on it. Set to null to disable keyword verification."
    • Changedupdate_team_settings1 field changed
      • changedInput schema / properties / maxDailyRunsPerTarget / description
        Previous value: -"Max test runs per target per day (0=unlimited). Prevents overwhelming hosted sites with limited request budgets."New value: +"Max scheduled and adaptive test runs per target per UTC day (0=unlimited). Runs started by hand (app, MCP, API) are not counted or stopped. Prevents overwhelming hosted sites with limited request budgets."
  4. 4 tool updates
    • Changedcreate_notification_rule1 field changed
      • changedInput schema / properties / eventTypes / items / enum
        Previous value: -[
        -  "INCIDENT_OPENED",
        -  "INCIDENT_RESOLVED",
        -  "INCIDENT_ACKNOWLEDGED",
        -  "FINDING_CREATED",
        -  "FINDING_RESOLVED",
        -  "FINDING_ESCALATED",
        -  "TARGET_DOWN",
        -  "TARGET_RECOVERED",
        -  "TEST_FAILED",
        -  "TEST_RECOVERED",
        -  "SCAN_COMPLETED",
        -  "BILLING_LIMIT_REACHED",
        -  "ACTION_REQUIRED"
        -]New value: +[
        +  "INCIDENT_OPENED",
        +  "INCIDENT_RESOLVED",
        +  "INCIDENT_ACKNOWLEDGED",
        +  "FINDING_CREATED",
        +  "FINDING_RESOLVED",
        +  "FINDING_ESCALATED",
        +  "TARGET_DOWN",
        +  "TARGET_RECOVERED",
        +  "TEST_FAILED",
        +  "TEST_RECOVERED",
        +  "SCAN_COMPLETED",
        +  "BILLING_LIMIT_REACHED",
        +  "ACTION_REQUIRED",
        +  "SLA_BUDGET"
        +]
    • Addedget_target_sla
    • Changedupdate_notification_rule1 field changed
      • changedInput schema / properties / eventTypes / items / enum
        Previous value: -[
        -  "INCIDENT_OPENED",
        -  "INCIDENT_RESOLVED",
        -  "INCIDENT_ACKNOWLEDGED",
        -  "FINDING_CREATED",
        -  "FINDING_RESOLVED",
        -  "FINDING_ESCALATED",
        -  "TARGET_DOWN",
        -  "TARGET_RECOVERED",
        -  "TEST_FAILED",
        -  "TEST_RECOVERED",
        -  "SCAN_COMPLETED",
        -  "BILLING_LIMIT_REACHED",
        -  "ACTION_REQUIRED"
        -]New value: +[
        +  "INCIDENT_OPENED",
        +  "INCIDENT_RESOLVED",
        +  "INCIDENT_ACKNOWLEDGED",
        +  "FINDING_CREATED",
        +  "FINDING_RESOLVED",
        +  "FINDING_ESCALATED",
        +  "TARGET_DOWN",
        +  "TARGET_RECOVERED",
        +  "TEST_FAILED",
        +  "TEST_RECOVERED",
        +  "SCAN_COMPLETED",
        +  "BILLING_LIMIT_REACHED",
        +  "ACTION_REQUIRED",
        +  "SLA_BUDGET"
        +]
    • Changedupdate_team_settings4 fields changed
      • addedInput schema / properties / aiVisibilityMonthlyCapUsd
        Added value: +{
        +  "description": "AI visibility: monthly USD cap for all probes of the team (default 25)",
        +  "maximum": 10000,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / aiVisibilityOpperModel
        Added value: +{
        +  "description": "AI visibility: Perplexity model through Opper (default sonar)",
        +  "enum": [
        +    "sonar",
        +    "sonar-pro",
        +    "sonar-reasoning-pro"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / aiVisibilityOpperMonthlyCapUsd
        Added value: +{
        +  "description": "AI visibility: monthly USD cap for Perplexity through Opper, on top of the AI visibility cap (default 5)",
        +  "maximum": 1000,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / aiVisibilityOpperScheduled
        Added value: +{
        +  "description": "AI visibility: include Perplexity through Opper (US-routed, no zero-data-retention; probes send only public brand questions) in scheduled and full runs. Off (default) = asked only on demand with \"Ask Perplexity now\"",
        +  "type": "boolean"
        +}
  5. 1 tool update
    • Changedupdate_team_settings2 fields changed
      • addedInput schema / properties / scoreGradedCoveragePct
        Added value: +{
        +  "description": "Composite scores: % of a category's test weight that must be freshly measured for the score to be GRADED (default 80)",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / scoreProvisionalCoveragePct
        Added value: +{
        +  "description": "Composite scores: below this % of fresh evidence a category is INSUFFICIENT and shows no number (default 60)",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  6. 1 tool update
    • Addedset_target_test
  7. 1 tool update
    • Changedadd_keyword1 field changed
      • addedInput schema / properties / pageUrl
        Added value: +{
        +  "description": "The page this keyword is written for (absolute URL on the site)",
        +  "format": "uri",
        +  "maxLength": 2048,
        +  "type": "string"
        +}
  8. 1 tool update
    • Changedupdate_team_settings1 field changed
      • changedInput schema / properties / aiModel / description
        Previous value: -"OpenAI model for finding enrichment (e.g. gpt-4o-mini)"New value: +"Model id on the AI gateway for finding enrichment (e.g. mistral/mistral-small-2603, an EU route)"
  9. 1 tool update
    • Changedupdate_team_settings1 field changed
      • addedInput schema / properties / maxDailyRunsPerTarget
        Added value: +{
        +  "description": "Max test runs per target per day (0=unlimited). Prevents overwhelming hosted sites with limited request budgets.",
        +  "maximum": 1000,
        +  "minimum": 0,
        +  "type": "number"
        +}
  10. 74 tool updates
    • First observedacknowledge_incident
    • First observedactive_runs
    • First observedadd_keyword
    • First observedanalyze_target
    • First observedcancel_load_test
    • First observedcreate_automation_rule
    • First observedcreate_journey
    • First observedcreate_maintenance_window
    • First observedcreate_muting_rule
    • First observedcreate_notification_rule
    • First observedcreate_page_fragment
    • First observedcreate_scheduled_report
    • First observedcreate_target
    • First observeddaily_trends
    • First observeddelete_automation_rule
    • First observeddelete_journey
    • First observeddelete_maintenance_window
    • First observeddelete_notification_rule
    • First observeddelete_page_fragment
    • First observeddelete_scheduled_report
    • First observeddelete_secret
    • First observeddelete_target
    • First observeddisable_all_tests
    • First observedenable_all_tests
    • First observedget_automation_rule
    • First observedget_finding
    • First observedget_incident
    • First observedget_journey
    • First observedget_load_test
    • First observedget_run
    • First observedget_site_map
    • First observedget_target
    • First observedget_target_scores
    • First observedget_team_settings
    • First observedguest_get_scan
    • First observedguest_start_scan
    • First observedimport_targets
    • First observedlist_automation_rules
    • First observedlist_findings
    • First observedlist_incidents
    • First observedlist_journeys
    • First observedlist_keywords
    • First observedlist_load_tests
    • First observedlist_maintenance_windows
    • First observedlist_notification_channels
    • First observedlist_notification_rules
    • First observedlist_page_fragments
    • First observedlist_runs
    • First observedlist_scheduled_reports
    • First observedlist_secrets
    • First observedlist_targets
    • First observedlist_tests
    • First observedmute_finding
    • First observedrecompute_scores
    • First observedrecord_deployment
    • First observedremove_keyword
    • First observedresolve_incident
    • First observedrotate_secret
    • First observedstart_load_test
    • First observedstore_secret
    • First observedsystem_health
    • First observedtarget_stats
    • First observedteam_stats
    • First observedtrigger_all_tests
    • First observedtrigger_journey
    • First observedtrigger_test
    • First observedupdate_automation_rule
    • First observedupdate_journey
    • First observedupdate_notification_rule
    • First observedupdate_page_fragment
    • First observedupdate_scheduled_report
    • First observedupdate_target
    • First observedupdate_team_settings
    • First observedupdate_test

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    Not graded
    maintenance
    Provides comprehensive website validation across performance, accessibility, SEO, and security dimensions using multiple testing services including WebPageTest, Google PageSpeed Insights, Axe DevTools, Mozilla Observatory, and SSL Labs. Enables automated website health assessments through browser automation and API integrations.
    2
    12
    3 npm
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Release gate agents call before they tell users a public website is ready to ship. Scans public websites across security, SEO, accessibility, legal compliance, and sustainability.
    9
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Audit any website for privacy, security, accessibility, and performance issues — with scores, grades, and actionable fix instructions. No account required.
    3
    9 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources