Skip to main content
Glama

Server Details

Passive domain-perimeter checks — cert expiry, subdomain takeover, lookalikes — as agent tools

Ownership verified
Status
Healthy
Uptime
99.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
entradox/perimeter-watch-scanner
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: health check, one-time scan, service stats, plan enrollment status, and skill listing/reading. There is no overlap between these operations, so an agent can reliably select the right tool.

Naming Consistency2/5

Naming is inconsistent: the first four tools share a 'pw_' prefix, but the last two use a different convention ('read_skill', 'skills_list_tool'). Verb-noun order also varies—'pw_health' is noun-like, 'read_skill' is imperative, and 'skills_list_tool' is noun-verb-noun. This mixing makes patterns harder to predict.

Tool Count5/5

Six tools is well within the typical range for a focused server. Each tool earns its place: four directly support the core security-scanning workflow, and two provide skill access. No obvious excess or deficiency.

Completeness3/5

The core scanning workflow is covered (health, scan, stats, plan status), but there is no tool to enroll a domain in a paid plan or modify monitoring settings, leaving a notable gap in lifecycle management. The skill tools only support listing and reading, not writing, which may be fine but is a limited surface if skills need updates.

Available Tools

6 tools
pw_healthA
Read-onlyIdempotent
Inspect

Liveness check for the Perimeter Watch API. Returns ok, service, version. Call first to verify connectivity before pw_snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by stating the return values (ok, service, version) and positioning the call as a connectivity verification. This goes beyond the annotations 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.

Conciseness5/5

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

The description is two sentences with no wasted words. The core purpose is stated first, followed immediately by the essential usage guidance and relevant sibling reference. Every sentence earns its place.

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 zero-parameter health-check tool, the description is complete: it explains what the tool does, what it returns, when to call it, and how it relates to pw_snapshot. Annotations cover the read-only and idempotent nature, and no output schema is needed given the simple return description.

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?

The tool has zero parameters, and schema description coverage is 100%. Per the rubric, a zero-parameter tool receives a baseline of 4 since there are no parameter meanings to add. The description's mention of returned fields is complementary rather than parametric.

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?

The description opens with a specific verb and resource: 'Liveness check for the Perimeter Watch API.' It further clarifies the tool's output by naming the returned fields (ok, service, version), leaving no ambiguity about what the tool does. This clearly distinguishes it from the sibling tools like pw_snapshot and pw_stats.

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?

The description explicitly instructs when to invoke the tool: 'Call first to verify connectivity before pw_snapshot.' This provides a direct usage sequence and references a sibling tool, making the intended workflow clear to an agent.

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

pw_snapshotAInspect

Run a free one-time external-perimeter scan on a domain you control.

Checks TLS certificate expiry, domain renewal status, dangling CNAME takeover risk, and CT-log lookalike domains. Returns a rating plus per-check detail. NOT idempotent (each call consumes rate limit); takes 20-60s; rate-limited to 3 scans per IP per 24h.

Args: domain: the domain to scan (e.g. example.com) authority: MUST be true — attests you or your principal own/manage this domain. Scanning third-party domains without authority is prohibited. Scan takes 20-60s. Rate limit: 3/IP/24h.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
authorityYes

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond annotations by disclosing non-idempotency, rate-limit consumption, 20-60s duration, and the 3-scans-per-IP-per-24h limit. It also explains the authority attestation requirement. These are important behavioral traits not inferable from the schema or annotations alone.

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?

The description is information-dense and front-loaded with a clear summary, followed by useful constraints and parameter details. It loses a point for minor redundancy: the 20-60s duration and rate limit are stated twice, once in the overview and again in the authority parameter explanation.

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?

Despite having no output schema, the description states what is returned (rating plus per-check detail), covers timing, rate limits, ownership requirements, and prohibitions. For a two-parameter tool, this is complete enough for an agent to invoke it correctly and avoid policy violations.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates: domain is defined with an example, and authority is defined as a mandatory attestation of ownership/control with explicit prohibition of third-party scanning. Both required parameters are given meaningful semantics beyond their names and types.

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?

The description clearly states the tool runs a one-time external-perimeter scan on a domain the user controls, listing specific checks (TLS expiry, domain renewal, dangling CNAME, CT-log lookalikes) and the output (rating plus per-check detail). This distinguishes it from sibling tools like pw_health or pw_stats by emphasizing the snapshot-like, domain-perimeter nature of the scan.

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?

The description provides clear context: use it on a domain you control, and authority must be true. It explicitly prohibits scanning third-party domains. However, it does not directly compare against sibling tools or state when an alternative would be more appropriate, so it stops short of full alternative-exclusion guidance.

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

pw_statsA
Read-onlyIdempotent
Inspect

Service funnel counters: page views, snapshots run, paid registrations. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description redundantly states 'Read-only'. It adds minor context by listing the kinds of counters, but does not describe any additional behavioral details such as freshness, aggregation, or response shape.

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?

The description is a single concise sentence that front-loads the core purpose ('Service funnel counters') and includes the safety qualifier. No unnecessary words or repetition.

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?

Given the tool has no parameters, a simple read-only stats operation, and strong annotations, the description provides sufficient context. The listed counter categories make the purpose clear, though an explicit mention of the return format would make it marginally more complete.

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?

The input schema has zero parameters, so there is nothing for the description to clarify. The baseline of 4 applies because the description does not need to compensate for undocumented parameters.

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 clearly identifies the tool as providing service funnel counters and specifies the kinds of data (page views, snapshots run, paid registrations). It is distinct enough from sibling tools like pw_health or pw_snapshot, though it does not explicitly name them as alternatives.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use pw_stats versus the sibling tools. It states 'Read-only' but does not explain the intended use case or any conditions that would make this tool preferable to pw_health, pw_snapshot, or pw_watch_status.

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

pw_watch_statusA
Read-onlyIdempotent
Inspect

Check whether a domain is enrolled on a paid weekly monitoring plan.

Returns enrollment status. Paid plans add weekly re-scans with email briefs. Read-only lookup.

Args: domain: the domain to look up (e.g. example.com)

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by explaining that paid plans add weekly re-scans with email briefs and explicitly reinforces 'Read-only lookup.' No contradictions 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.

Conciseness5/5

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

The description is compact and front-loaded: the core purpose appears in the first sentence, followed by return behavior, plan context, safety indication, and parameter documentation. Every sentence earns its place, and the Args section is cleanly formatted.

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 simple single-parameter read-only lookup, the description covers the purpose, the input format, the output concept ('enrollment status'), and the meaning of the plan. Annotations handle safety and idempotency, so nothing essential is missing for correct selection and invocation.

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

Parameters5/5

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

The input schema provides no description for 'domain,' so schema coverage is 0%. The description compensates fully by documenting the 'domain' argument with a concrete example ('e.g. example.com'), giving the agent exactly what it needs to supply the parameter correctly.

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?

The description opens with a specific verb and resource: 'Check whether a domain is enrolled on a paid weekly monitoring plan.' It clearly identifies the tool's purpose as an enrollment/status lookup, which distinguishes it from siblings like pw_health, pw_snapshot, and pw_stats even without naming them.

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?

The description makes the usage context explicit: use this when you need to determine whether a domain has paid weekly monitoring, and it notes the lookup is read-only. It does not explicitly contrast with sibling tools or state when not to use it, but the intended use case is clear enough for an agent to select it.

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

read_skillAInspect

Read a product skill file by its skill:// URI.

Args: uri: e.g. skill:////SKILL.md Get valid URIs from skills_list_tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states the action is a read, implying non-destructive behavior, but it does not disclose return format, error handling, or any side effects. The URI format hint is useful but overlaps with parameter semantics rather than behavioral transparency.

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?

The description is two sentences with zero fluff. The main purpose is front-loaded, and the arg example is compact and directly relevant. Every sentence earns its place.

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 simple read operation with one required parameter and no output schema, the description provides the URI format and a source for valid values. It does not explicitly state the return type, but the tool name 'read_skill' and the action 'read' make it adequately predictable. Minor omission of return details is acceptable given the low complexity.

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?

The input schema provides no description for the 'uri' parameter (0% coverage). The description compensates by giving a concrete example format (skill://<product>/<skill-name>/SKILL.md) and directing the agent to skills_list_tool for valid URIs, which adds significant meaning beyond the bare schema.

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?

The description states a specific action ('Read a product skill file') with a specific resource (a skill:// URI) and mechanism. It also references skills_list_tool for obtaining valid URIs, differentiating it from the listing sibling.

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?

The description explicitly tells the agent where to get valid URIs (from skills_list_tool), implying a two-step pattern. It does not explicitly state when not to use this tool or list alternatives beyond that, but the context is clear enough for an agent to know it should be used after listing.

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

skills_list_toolAInspect

List this product's skills. Each entry carries the SKILL.md URI, its name and description, verbatim frontmatter, and a per-file sha256 manifest. Read a body with read_skill.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It details exactly what each entry contains (SKILL.md URI, name, description, frontmatter, sha256 manifest), which is behavioral transparency about the return payload. It does not explicitly state read-only behavior, but the act of listing and the mention of a separate read tool strongly imply it. This is adequate for a list operation.

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?

The description is two concise sentences with no filler. The primary purpose is stated first, followed by a precise enumeration of the return contents and a clear pointer to the sibling tool. Every word earns its place.

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 parameterless list tool with no output schema, the description fully specifies what an agent needs: the action, the content of each entry, and how to proceed to read a skill body. No critical information is missing for correct invocation and interpretation.

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?

The tool has zero parameters, so the input schema is trivially complete (100% coverage). The description adds value by describing what the returned list entries contain, which goes beyond the schema. Since there are no parameters to explain, the baseline of 4 applies, and the description enriches the usage context.

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?

The description begins with a specific verb and resource: 'List this product's skills.' It clearly distinguishes itself from the sibling tools by naming `read_skill` as the companion for reading a body, and the pw_* tools are clearly unrelated to listing skills. The mention of what each entry contains further clarifies the tool's exact function.

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?

The description provides clear context by stating it lists skills and explicitly directs the agent to `read_skill` for reading a body, which implies when to use this tool vs. its sibling. It does not list exclusions or alternative tools for other purposes, but for a listing operation, the guidance is sufficient.

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. 2 tool updates
    • Addedread_skill
    • Addedskills_list_tool
  2. 4 tool updates
    • First observedpw_health
    • First observedpw_snapshot
    • First observedpw_stats
    • First observedpw_watch_status

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to perform passive security scans on domains, checking email spoofing (DMARC/SPF/DKIM), TLS weaknesses, security headers, exposed files, and subdomain-takeover risk without needing an API key.
    7
    47 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Domain security reconnaissance for AI agents — 13 tools (DNS+DNSSEC, SSL/TLS, HTTP security headers, SPF/DKIM/DMARC email auth, port scan, ASN, RDAP/WHOIS) plus a one-shot security_scan returning a 0–100 Health Score (A–F). Free, no API key.
    20
    555 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.