protogrid

Search / io.github.entradox/perimeter-watch-scanner

Perimeter Watch

R0· no sign-in

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

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust94of 100
Uptime, 30 days99%
Latency p50259 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "perimeter-watch-scanner": {
      "type": "http",
      "url": "https://perimeter-watch-api-production.up.railway.app/mcp/"
    }
  }
}
claude mcp add --transport http perimeter-watch-scanner https://perimeter-watch-api-production.up.railway.app/mcp/
[mcp_servers.perimeter-watch-scanner]
url = "https://perimeter-watch-api-production.up.railway.app/mcp/"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "perimeter-watch-scanner": {
      "type": "remote",
      "url": "https://perimeter-watch-api-production.up.railway.app/mcp/",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "perimeter-watch-scanner": {
      "type": "http",
      "url": "https://perimeter-watch-api-production.up.railway.app/mcp/"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=perimeter-watch-scanner&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGVyaW1ldGVyLXdhdGNoLWFwaS1wcm9kdWN0aW9uLnVwLnJhaWx3YXkuYXBwL21jcC8ifQ%3D%3D"
}
{
  "servers": {
    "perimeter-watch-scanner": {
      "type": "http",
      "url": "https://perimeter-watch-api-production.up.railway.app/mcp/"
    }
  }
}
{
  "mcpServers": {
    "perimeter-watch-scanner": {
      "httpUrl": "https://perimeter-watch-api-production.up.railway.app/mcp/"
    }
  }
}
extensions:
  "perimeter-watch-scanner":
    enabled: true
    name: "perimeter-watch-scanner"
    type: streamable_http
    uri: "https://perimeter-watch-api-production.up.railway.app/mcp/"
    timeout: 300

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • warn
    tools.annotationsonly 4 of 6 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: pw_health (openWorldHint); pw_stats (openWorldHint); read_skill (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 616 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 616 tokens to load them all · tool set d2f0d97d5edb · checked 2026-10-20 11:08 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance90
liveness100
freshness85
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-99% ~updated-47d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://perimeter-watch-api-production.up.railway.app/mcp/ streamable-httpnoneyes99%259 ms2025-11-252026-10-20

Tools (6)

pw_healthread-onlyLiveness check for the Perimeter Watch API. Returns ok, service, version. Call first to verify connectivity before pw_snapshot.
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.
pw_statsread-onlyService funnel counters: page views, snapshots run, paid registrations. Read-only.
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)
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`.
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`.

Schemas: list_tools.

Similar MCP servers

More from io.github.entradox

And 1 more from this publisher.

Official server.json
{
  "name": "io.github.entradox/perimeter-watch-scanner",
  "title": "Perimeter Watch",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://perimeter-watch-api-production.up.railway.app/mcp/",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/entradox/perimeter-watch-scanner",
    "source": "github"
  },
  "websiteUrl": "https://entradox.github.io/perimeter-watch-site/",
  "description": "Passive domain-perimeter checks — cert expiry, subdomain takeover, lookalikes — as agent tools"
}