# RunStack Checks (remote · runstack.pro)

External checks of TLS, HTTP, email domain, DNS, ports, blocklists and domain expiry

- Trust score: 78/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `runstack.pro`: 78/100 (this document), [markdown](https://verifymcp.io/servers/pro-runstack-checks/api-mcp.md), [page](https://verifymcp.io/servers/pro-runstack-checks/api-mcp)

## Channel facts

- Endpoint: `https://runstack.pro/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1267 tokens (~158/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 45/100
  - Stability check failed: schema churn in the 19 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 3 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the RunStack Checks MCP server?

RunStack Checks is a hosted endpoint at https://runstack.pro/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http pro-runstack-checks 'https://runstack.pro/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "pro-runstack-checks": {
      "url": "https://runstack.pro/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pro-runstack-checks": {
      "type": "http",
      "url": "https://runstack.pro/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.pro-runstack-checks]
url = "https://runstack.pro/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pro-runstack-checks": {
      "type": "remote",
      "url": "https://runstack.pro/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pro-runstack-checks --url 'https://runstack.pro/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  pro-runstack-checks:
    url: "https://runstack.pro/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "pro-runstack-checks": {
      "Transport": "http",
      "Url": "https://runstack.pro/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add pro-runstack-checks -t streamable-http -u 'https://runstack.pro/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "pro-runstack-checks": {
      "type": "http",
      "url": "https://runstack.pro/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 38 to 41.

### 2026-11-02 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 31 to 35.

### 2026-10-31 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 25 to 28.

### 2026-10-29 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 18 to 21.

### 2026-10-27 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 11 to 15.

### 2026-10-24 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 1 to 5.

### 2026-10-20 (score 72, 0)

- [functional regression] Schema quality: 957 → 1267
- [functional] New tool “check_dnsbl”
- [functional] New tool “check_domain_expiry”

### 2026-10-19 (score 72, −1)

- [security regression] Stability: 0.03 → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security regression] Tool “ip_lookup” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “check_dns” rewrote its description, which is the text the model reads
- [security] Tool “check_email_domain” rewrote its description, which is the text the model reads
- [security] Tool “check_http” rewrote its description, which is the text the model reads
- [security] Tool “check_port” rewrote its description, which is the text the model reads
- [security] Tool “check_tls” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool “check_dns” now declares an output schema
- [functional improvement] Tool “check_email_domain” now declares an output schema
- [functional improvement] Tool “check_http” now declares an output schema
- [functional improvement] Tool “check_port” now declares an output schema
- [functional improvement] Tool “check_tls” now declares an output schema
- [functional] First check of Tool coverage: 100
- [functional] New tool “check_ip”
- [cosmetic] “check_dns” reworded the description of “domain”
- [cosmetic] “check_dns” reworded the description of “type”
- [cosmetic] “check_email_domain” reworded the description of “dkimSelector”
- [cosmetic] “check_email_domain” reworded the description of “domain”
- [cosmetic] “check_http” reworded the description of “followRedirects”
- [cosmetic] “check_http” reworded the description of “url”
- [cosmetic] “check_port” reworded the description of “host”
- [cosmetic] “check_port” reworded the description of “ports”
- [cosmetic] “check_tls” reworded the description of “host”
- [cosmetic] “check_tls” reworded the description of “port”

## MCP tools (8)

### `check_tls` (~181 tokens)

TLS / certificate check

Scan a public host's TLS from the internet: certificate validity, chain completeness, expiry date, hostname match, enabled protocols (TLS 1.0–1.3), cipher suites, HSTS. Use when browsers show certificate errors, before/after renewing or rotating a certificate, or to confirm old TLS versions are disabled. Use this (not check_http) for anything about the certificate or TLS configuration itself; works on any TLS port, not only 443. Returns a verdict, findings with cause and fix, and a shareable report link. Takes up to ~60 s.

Input parameters:

- `host` (string, required): Public hostname to scan, without scheme or path, e.g. example.com
- `port` (integer): TLS port, e.g. 443 (HTTPS), 465 (SMTPS), 993 (IMAPS). Default 443.

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_http` (~162 tokens)

HTTP response inspection

Request a public URL from outside your network and inspect the HTTP layer: status code, full redirect chain, security headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy…), caching and compression headers. Use to debug redirect loops, unexpected status codes or missing headers as real visitors and CDNs see them, or to verify a web server / CDN config change after deploy. Use check_tls instead for certificate or TLS protocol questions. Returns a verdict and findings with fixes.

Input parameters:

- `followRedirects` (boolean): Follow redirects and report every hop (default true). Set false to see only the first response.
- `url` (string, required): Full public http(s) URL, e.g. https://example.com/login

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_email_domain` (~174 tokens)

Email domain check

Audit a mail domain as other mail servers see it: MX, SPF (including the 10-DNS-lookup limit), DKIM, DMARC policy, PTR / forward-confirmed reverse DNS, SMTP STARTTLS on the MX hosts, MTA-STS, TLS-RPT, BIMI. Use when mail lands in spam or bounces, after changing mail provider or DNS, or before tightening DMARC. Use this (not check_dns) for any email deliverability or authentication question. Returns a verdict, findings with cause and fix, and a report link.

Input parameters:

- `dkimSelector` (string): DKIM selector to check in addition to common ones, e.g. google, selector1, mail. Optional.
- `domain` (string, required): Mail domain (the part after @), e.g. example.com

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_dns` (~122 tokens)

DNS lookup across resolvers

Resolve a name at several public resolvers (Google, Cloudflare, Quad9, …) and compare their answers. Use after changing DNS records to check propagation, or when some users reach a different IP or get NXDOMAIN. Use check_email_domain instead for SPF/DKIM/DMARC analysis. Returns per-resolver answers, inconsistencies and a verdict.

Input parameters:

- `domain` (string, required): Domain or hostname to resolve, e.g. www.example.com
- `type` (string): Record type to query. ALL queries the common types at once. Default ALL.

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_port` (~124 tokens)

Port reachability from the internet

Check from the internet whether TCP ports of a public host are open, closed or filtered. Use to verify firewall / security group rules, or to find out why a service works locally but is unreachable from outside. Only public addresses are accepted; this does not test the application behind the port (use check_http or check_tls for that).

Input parameters:

- `host` (string, required): Public hostname or IP address, e.g. example.com or 203.0.113.10
- `ports` (string, required): Comma-separated TCP ports, e.g. 22,80,443

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_ip` (~118 tokens)

IP / ASN lookup

Look up an IP address or ASN: owner organization, announced prefix, PTR (reverse DNS), RPKI validity and geolocation. Use to identify who is behind an address seen in logs or headers, or to check PTR / RPKI for a mail or BGP issue. Does not test reachability (use check_port).

Input parameters:

- `input` (string, required): IPv4 or IPv6 address, or an ASN, e.g. 1.1.1.1, 2606:4700::1111 or AS13335

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_dnsbl` (~189 tokens)

DNSBL / blocklist check

Check whether an IP address or a domain is on email blocklists (DNSBL/RBL): Spamhaus ZEN and DBL, SpamCop, Barracuda, UCEPROTECT, Mailspike, SURBL, URIBL and others. For a domain, its own name is checked on domain lists and its A/AAAA addresses on IP lists. Use when mail bounces with 'listed'/'blocked' errors or lands in spam, or after a server was compromised. Lists that refuse queries from public resolvers are reported as not tested, never as listed. Returns listed lists with the reason and a delisting link. For SPF/DKIM/DMARC use check_email_domain.

Input parameters:

- `input` (string, required): Public IPv4/IPv6 address of the sending mail server, or a domain, e.g. 203.0.113.10 or example.com

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

### `check_domain_expiry` (~121 tokens)

Domain registration / expiry

Look up a domain's registration in the registry (RDAP, or WHOIS for .ru/.su/.рф): expiry date and days left, registrar, creation date, EPP status codes (clientHold, redemptionPeriod, transfer locks…) with explanations, nameservers and DNSSEC. Use to check when a domain must be renewed or why it suddenly stopped resolving. Subdomains are reduced to the registered domain. For DNS records use check_dns.

Input parameters:

- `domain` (string, required): Domain name, e.g. example.com or пример.рф

Output parameters:

- `error` (string): Error code when ok is false
- `facts` (array)
- `findings` (array)
- `headline` (string): One-line summary
- `message` (string)
- `notice` (string): Usage note, e.g. anonymous-tier limits
- `ok` (boolean): false when the check could not run (see error / message)
- `reportUrl` (string): Shareable report link
- `target` (string): What was checked
- `tool` (string)
- `verdict` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/pro-runstack-checks/api-mcp#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 78
- 2026-11-03: 77
- 2026-11-02: 77
- 2026-11-01: 76
- 2026-10-31: 76
- 2026-10-30: 75
- 2026-10-29: 75
- 2026-10-28: 74
- 2026-10-27: 74
- 2026-10-26: 73
- 2026-10-25: 73
- 2026-10-24: 73
- 2026-10-23: 72
- 2026-10-22: 72
- 2026-10-21: 72
- 2026-10-20: 72
- 2026-10-19: 72
- 2026-10-18: 73
- 2026-10-17: 73

## Common questions

### What is the RunStack Checks MCP server?

RunStack Checks is an MCP server listed in the public MCP registry as pro.runstack/checks. External checks of TLS, HTTP, email domain, DNS, ports, blocklists and domain expiry. This page covers its hosted endpoint (https://runstack.pro/api/mcp).

### Is the RunStack Checks MCP server safe to use?

RunStack Checks scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the RunStack Checks MCP server expose?

RunStack Checks exposes 8 tools: check_tls, check_http, check_email_domain, check_dns, check_port, and 3 more. Their descriptions and schemas cost roughly 1,191 tokens of context every time the server is loaded.

### Does the RunStack Checks MCP server require authentication?

No. We connected to RunStack Checks without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the RunStack Checks MCP server still maintained?

RunStack Checks is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://runstack.pro/api/mcp
- Repository: https://github.com/WithoutCowards/runstack-mcp
- Website: https://runstack.pro/developers
- Changelog RSS feed: https://verifymcp.io/servers/pro-runstack-checks/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/pro-runstack-checks/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/pro-runstack-checks/api-mcp
