Perimeter Watch
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Passive domain-perimeter checks — cert expiry, subdomain takeover, lookalikes — as agent tools
| Author | io.github.entradox |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 179 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Perimeter Watch": {
"url": "https://perimeter-watch-api-production.up.railway.app/mcp/",
"transport": "streamable-http"
}
}
}
Measured tools (6)
pw_healthread-onlyLiveness check for the Perimeter Watch API. Returns ok, service, version. Call first to verify connectivity before pw_snapshot.
Hints: read-only yes · destructive no · idempotent yes · open-world not declared
pw_snapshotRun 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.
Parameters:
domain(required) — stringauthority(required) — boolean
Hints: read-only no · destructive no · idempotent no · open-world not declared
pw_watch_statusread-onlyCheck 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)
Parameters:
domain(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world not declared
pw_statsread-onlyService funnel counters: page views, snapshots run, paid registrations. Read-only.
Hints: read-only yes · destructive no · idempotent yes · open-world not declared
skills_list_toolList 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`.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
read_skillRead a product skill file by its skill:// URI. Args: uri: e.g. skill://<product>/<skill-name>/SKILL.md Get valid URIs from `skills_list_tool`.
Parameters:
uri(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.