Passive domain-perimeter checks — cert expiry, subdomain takeover, lookalikes — as agent tools
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Liveness check for the Perimeter Watch API. Returns ok, service, version. Call first to verify connectivity before pw_snapshot.
This tool takes no arguments.
Liveness check for the Perimeter Watch API. Returns ok, service, version. Call first to verify connectivity before pw_snapshot.
No arguments.
{
"type": "object",
"title": "pw_healthArguments",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| authority* | boolean |
{
"type": "object",
"title": "pw_snapshotArguments",
"required": [
"domain",
"authority"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain"
},
"authority": {
"type": "boolean",
"title": "Authority"
}
}
}Service funnel counters: page views, snapshots run, paid registrations. Read-only.
No arguments.
{
"type": "object",
"title": "pw_statsArguments",
"properties": {}
}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)
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"title": "pw_watch_statusArguments",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain"
}
}
}Read 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`.
| Argument | Type | Description |
|---|---|---|
| uri* | string |
{
"type": "object",
"title": "read_skillArguments",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri"
}
}
}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`.
No arguments.
{
"type": "object",
"title": "skills_list_toolArguments",
"properties": {}
}