# Zactonz (npm · @zactonz/mcp)

Screenshots, page to Markdown, link previews, DNS, SSL, WHOIS, QR codes and more for AI agents.

- Trust score: 79/100 (medium)
- Change this week: +30
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- npm · `@zactonz/mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp.md), [page](https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp)

## Channel facts

- Registry: `npm`
- Package: `@zactonz/mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-10-17.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 92 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to zactonz/zactonz-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 10 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3089 tokens (~162/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 19 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Zactonz MCP server?

Zactonz runs locally as an npm package, launched with npx -y @zactonz/mcp. 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 zactonz-zactonz-mcp -- npx -y @zactonz/mcp
```

### Cursor

```json
{
  "mcpServers": {
    "zactonz-zactonz-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zactonz/mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "zactonz-zactonz-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zactonz/mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add zactonz-zactonz-mcp -- npx -y @zactonz/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zactonz-zactonz-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@zactonz/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zactonz-zactonz-mcp --command npx --arg -y --arg @zactonz/mcp
```

### Hermes

```yaml
mcp_servers:
  zactonz-zactonz-mcp:
    command: "npx"
    args: ["-y", "@zactonz/mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "zactonz-zactonz-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@zactonz/mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add zactonz-zactonz-mcp -t stdio -c npx -a -y @zactonz/mcp
```

### Other

```json
{
  "mcpServers": {
    "zactonz-zactonz-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zactonz/mcp"
      ]
    }
  }
}
```

## 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-10-14 (score 79, +30)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 100

### 2026-10-13 (score 49, 0)

- [functional improvement] Security disclosure: unverified → pass

### 2026-10-12 (score 49, 0)

- [functional regression] Security disclosure: pass → unverified

### 2026-10-08 (score 49)

First indexed and scored.

## MCP tools (19)

### `capture_screenshot` (~409 tokens)

Capture a screenshot of a web page

Loads a public web page in a headless browser and captures it as a JPEG, PNG or WebP image, or as a PDF. Returns a link to the file, and the image itself when it is small enough to look at directly. Suited to checking how a page renders or keeping a visual record of it.

Input parameters:

- `delay` (integer): Seconds to wait after the page has loaded before capturing, 0 to 15. Default 5.
- `format` (string): Output type. `jpeg` (default), `png`, `webp`, or `pdf` for a paged document.
- `height` (integer): Viewport height in pixels, 150 to 4320. Values outside the range are clamped. Default 1024.
- `marginBottom` (number): PDF only. Bottom margin in inches, 0 to 5. Default 0.4.
- `marginLeft` (number): PDF only. Left margin in inches, 0 to 5. Default 0.4.
- `marginRight` (number): PDF only. Right margin in inches, 0 to 5. Default 0.4.
- `marginTop` (number): PDF only. Top margin in inches, 0 to 5. Default 0.4.
- `orientation` (string): PDF only.
- `paperHeight` (number): PDF only. Paper height in inches.
- `paperWidth` (number): PDF only. Paper width in inches.
- `quality` (integer): JPEG quality from 1 to 100. Sent as 80 when omitted, which keeps most captures small enough to be returned inline. Ignored for other formats.
- `scale` (number): PDF only. Render scale.
- `url` (string, required): Absolute URL of the page to capture.
- `width` (integer): Viewport width in pixels, 200 to 3840. Values outside the range are clamped. Default 1280.

### `render_html` (~224 tokens)

Render HTML to an image or PDF

Renders an HTML document you provide as a JPEG, PNG or WebP image, or as a PDF: an invoice, a report, a certificate. Returns a link to the file, and the image itself when it is small enough. Images, fonts and stylesheets referenced by the HTML must use absolute URLs.

Input parameters:

- `format` (string): Output type. `jpeg` (default), `png`, `webp`, or `pdf` for a paged document.
- `height` (integer): Viewport height in pixels, 150 to 4320. Values outside the range are clamped. Default 1024.
- `html` (string, required): The HTML document to render, up to 2 MB.
- `quality` (integer): JPEG quality from 1 to 100. Sent as 80 when omitted, which keeps most captures small enough to be returned inline. Ignored for other formats.
- `width` (integer): Viewport width in pixels, 200 to 3840. Values outside the range are clamped. Default 1280.

### `read_webpage` (~187 tokens)

Read a web page as Markdown

Fetches a public web page and returns its main content as Markdown, without navigation, adverts or scripts. For pages that build their content with JavaScript, set render to true.

Input parameters:

- `fresh` (boolean): When true, bypasses the cache.
- `images` (boolean): When false, drops images from the output.
- `links` (boolean): When false, replaces links with their text.
- `max_chars` (integer): Longest Markdown to return, in characters, from 1000 to 500000. Sent as 20000 when omitted. The reply says whether the text was cut short.
- `mode` (string): `article` (default) keeps the main content. `full` converts the whole body.
- `render` (boolean): When true, loads the page in a headless browser first.
- `url` (string, required): The page to read.

### `convert_html_to_markdown` (~128 tokens)

Convert HTML to Markdown

Converts HTML you already hold to Markdown. Nothing is fetched.

Input parameters:

- `html` (string, required): The HTML to convert, up to 2 MB.
- `images` (boolean): When false, drops images from the output.
- `links` (boolean): When false, replaces links with their text.
- `max_chars` (integer): Longest Markdown to return, in characters, from 1000 to 500000. Sent as 20000 when omitted.
- `mode` (string): `article` (default) keeps the main content. `full` converts the whole body.

### `preview_link` (~140 tokens)

Preview a link

Reads the metadata of a public URL: title, description, preview image, favicon, site name, author, publication date, language and feeds. A quick way to learn what a link points to without reading the page.

Input parameters:

- `fresh` (boolean): When true, bypasses the one-hour cache.
- `render` (boolean): When true, loads the page in a headless browser before reading its tags.
- `url` (string, required): The page to preview. `https://` is assumed when the scheme is omitted.
- `verify_image` (boolean): When true, downloads the preview image to confirm it exists and to report its real dimensions and type.

### `lookup_dns` (~93 tokens)

Look up DNS records

Returns the DNS records of a host or domain (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV) and its DNSSEC status.

Input parameters:

- `name` (string, required): Host or domain name.
- `type` (array): Record types to look up. Omit for A, AAAA, MX, TXT, NS, CNAME, SOA and CAA.

### `inspect_ssl_certificate` (~113 tokens)

Inspect an SSL certificate

Connects to a host and reports its TLS certificate: issuer, subject, validity dates, days remaining, whether the chain is trusted and the name matches, and the protocol and cipher in use.

Input parameters:

- `fresh` (boolean): When true, bypasses the cache.
- `host` (string, required): Host name, or a URL from which the host is taken.
- `port` (integer): TLS port: 443, 8443, 465, 993, 995, 636 or 5061.

### `lookup_whois` (~86 tokens)

Look up a domain registration

Returns the registration record of a domain from RDAP or WHOIS: registrar, creation, update and expiry dates, status codes, nameservers and abuse contact.

Input parameters:

- `domain` (string, required): Domain name. A host name or URL is reduced to its registrable domain.
- `raw` (boolean): When true, includes the raw WHOIS text when the fallback service was used.

### `check_email_domain` (~131 tokens)

Check the email setup of a domain

Audits how a domain is configured for email: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT and BIMI records, whether it is a disposable or free mail provider, a score out of 100 and a list of findings.

Input parameters:

- `domain` (string, required): Domain to audit. An email address is accepted and reduced to its domain.
- `probe` (boolean): When true, connects to the primary MX to read its banner and STARTTLS support.
- `selectors` (array): DKIM selectors to check in addition to the common ones, up to 20.

### `verify_emails` (~58 tokens)

Verify email addresses

Checks whether email addresses can receive mail by asking the receiving mail server, without sending a message. Returns valid or invalid for each address. Can take up to a minute.

Input parameters:

- `emails` (array, required): The addresses to check, at most ten.

### `generate_qr_code` (~226 tokens)

Generate a QR code

Encodes text or a URL as a QR code. Returns a link to the image and the image itself. With the text format it returns the code as rows of 0 and 1 instead.

Input parameters:

- `accuracy` (string): Error-correction level. Higher levels survive more damage but produce denser codes.
- `bgcolor` (string): Background colour as six hex digits, for example `ff6700`, or a decimal RGB integer. Default white.
- `color` (string): Foreground colour as six hex digits, for example `ff6700`, or a decimal RGB integer. Default black.
- `content` (string, required): The text or URL to encode, up to 4000 characters.
- `format` (string): `png` (default), `jpg`, `svg`, or `text` for a 0/1 matrix in JSON.
- `padding` (integer): Quiet zone around the code in modules, 0 to 20. Default 2.
- `size` (integer): Pixels per QR module, from `1` to `20`.

### `read_qr_code` (~81 tokens)

Read a QR code

Decodes the QR code in an image and returns the text it holds.

Input parameters:

- `format` (string): How `image` is given: `url` for a link, `base64` for the image bytes.
- `image` (string, required): A link to the image, or the base64-encoded image bytes when format is `base64`.

### `generate_barcode` (~299 tokens)

Generate a barcode

Renders a barcode: Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, ITF-14 or Codabar. Returns a link valid for 24 hours, the dimensions and the image itself.

Input parameters:

- `bgcolor` (string): Background colour as six hex digits.
- `color` (string): Bar colour as six hex digits.
- `content` (string, required): The value to encode. Each symbology has its own alphabet and length, listed under the `type` parameter.
- `format` (string): `png` (default), `svg` or `jpg`.
- `height` (integer): Bar height in pixels, 20 to 300.
- `scale` (integer): Width of the narrowest bar in pixels, 1 to 10.
- `type` (string): `code128` (printable ASCII, up to 80 characters), `code39` (digits, capitals and `- . $ / + %`), `code93`, `ean13` (12 digits, or 13 with the check digit), `ean8` (7 or 8 digits), `upca` (11 or 12 di…

### `generate_social_image` (~255 tokens)

Generate a social card image

Creates an Open Graph image, the card shown when a link is shared, from a title and an optional subtitle, site label and logo. Returns a link valid for seven days and the image itself.

Input parameters:

- `accent` (string): Accent colour as six hex digits.
- `bg` (string): Background colour as six hex digits, overriding the theme.
- `font` (string): `titillium`, `system` or `serif`.
- `format` (string): `png` (default), `jpeg` or `webp`.
- `logo` (string): Public URL of a PNG, JPEG, WebP, GIF or SVG logo, up to 512 KB.
- `site` (string): Short label shown at the bottom, for example your domain, up to 60 characters.
- `size` (string): Pixel size.
- `subtitle` (string): Secondary line, up to 200 characters.
- `template` (string): `card` (accent bar and logo), `minimal` (centred) or `split` (text beside an accent panel).
- `theme` (string): `light` or `dark`.
- `title` (string, required): Main text, up to 120 characters.

### `convert_image` (~346 tokens)

Convert or resize an image

Converts an image at a public URL to WebP, AVIF, JPEG, PNG or GIF, optionally resizing, cropping, rotating, flipping, blurring, sharpening or removing colour. Returns a link valid for 24 hours with the source and output details, and the image itself when it is small enough.

Input parameters:

- `background` (string): Six hex digits used to flatten transparency and to pad `contain`. JPEG output is flattened on white when unset.
- `blur` (integer): Gaussian blur passes, 0 to 20.
- `fit` (string): `inside` (default, shrink to fit, never enlarge), `cover` (fill and crop), `contain` (fit with padding, see `background`) or `fill` (stretch).
- `flip` (string): `h`, `v` or `both`.
- `format` (string): Output format: `webp` (default), `avif`, `jpeg`, `png`, `gif`, or `keep` to keep the source format.
- `grayscale` (boolean): When true, converts to grayscale.
- `height` (integer): Target height in pixels, up to 8000. Omit to derive from the width.
- `quality` (integer): 1 to 100 for lossy formats.
- `rotate` (integer): Clockwise degrees, 0 to 359. EXIF orientation is always applied first.
- `sharpen` (boolean): When true, applies a sharpening kernel.
- `url` (string, required): Public URL of the image to convert.
- `width` (integer): Target width in pixels, up to 8000. Omit to derive from the height.

### `inspect_image` (~47 tokens)

Inspect an image

Reports the width, height, format, file size, orientation, transparency and dominant colours of an image at a public URL.

Input parameters:

- `url` (string, required): Public URL of the image to inspect.

### `translate_text` (~89 tokens)

Translate text

Translates text from one language to another. 46 languages are supported.

Input parameters:

- `from` (string): Two-letter code of the source language, such as `en`. Defaults to English.
- `text` (string, required): The text to translate.
- `to` (string, required): Two-letter code of the target language, such as `es`, `fr`, `de`, `ar` or `ur`.

### `get_drive_download_link` (~37 tokens)

Get a Google Drive download link

Converts a Google Drive share link into a URL that downloads the file directly.

Input parameters:

- `url` (string, required): The Google Drive share link.

### `check_api_key` (~47 tokens)

Check a Zactonz API key

Reports the plan of a configured Zactonz API key and the quota it has left today and this month. Costs nothing.

Input parameters:

- `product` (string, required): The product whose key to check.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp#diagnostics

## Score history

- 2026-10-17: 79
- 2026-10-16: 79
- 2026-10-15: 79
- 2026-10-14: 79
- 2026-10-13: 49
- 2026-10-12: 49
- 2026-10-08: 49

## Common questions

### What is the Zactonz MCP server?

Zactonz is an MCP server listed in the public MCP registry as io.github.zactonz/zactonz-mcp. Screenshots, page to Markdown, link previews, DNS, SSL, WHOIS, QR codes and more for AI agents. This page covers its npm package (@zactonz/mcp).

### Is the Zactonz MCP server safe to use?

Zactonz scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 17 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 Zactonz MCP server expose?

Zactonz exposes 19 tools: capture_screenshot, render_html, read_webpage, convert_html_to_markdown, preview_link, and 14 more. Their descriptions and schemas cost roughly 2,996 tokens of context every time the server is loaded.

### Is the Zactonz MCP server still maintained?

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

### What licence is the Zactonz MCP server under?

Zactonz declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@zactonz/mcp
- Socket report: https://socket.dev/npm/package/@zactonz/mcp
- Repository: https://github.com/zactonz/zactonz-mcp
- Website: https://developers.zactonz.com/
- Changelog RSS feed: https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp.json
- HTML version of this page: https://verifymcp.io/servers/zactonz-zactonz-mcp/zactonz-mcp
