Zactonz

io.github.zactonzv0.1.0更新於 Oct 6, 2026

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

概覽

AI 產生的概覽

讓助理透過 Zactonz API 擷取網頁截圖與 PDF、把網頁讀成 Markdown,並執行 DNS、SSL、WHOIS、電子郵件、QR code、條碼與影像等工具。

功能
這是一個本機 stdio MCP 伺服器,包裝 Zactonz API。工具包括 capture_screenshot 與 render_html(輸出影像或 PDF)、read_webpage 與 convert_html_to_markdown、preview_link(取得連結中繼資料)、lookup_dns、inspect_ssl_certificate、lookup_whois、check_email_domain 與 verify_emails,以及 QR code 與條碼的產生與解碼、社群圖片產生、影像轉換與檢查、文字翻譯、Google Drive 下載連結工具和 check_api_key。結果以 JSON 文字回傳,較小的影像會內嵌回傳,方便助理查看。
適用情境
適合助理需要查看網頁呈現結果、擷取網頁正文、檢查網域的 DNS、TLS 或郵件設定,或產生 QR code、條碼與社群圖片的場合。每項能力由對應產品的 API 金鑰控制,只有擁有金鑰的工具才會出現。
執行需求
透過 npx @zactonz/mcp 或原始碼 checkout 在本機以 stdio 執行,需要 Node.js 18 或更新版本。需要在 ZACTONZ_API_KEYS 環境變數中提供一個或多個 Zactonz API 金鑰,金鑰在 Zactonz 主控台建立,有免費方案。可選設定 ZACTONZ_MCP_INLINE_IMAGE_BYTES 與 ZACTONZ_BASE_URL。需要連線至 api.zactonz.com 的網路存取。
安裝前請注意
ZACTONZ_API_KEYS 是機密,會透過 Authorization 標頭送往 api.zactonz.com。呼叫會消耗方案配額,可能產生費用。產生的截圖、PDF、QR code、條碼與轉換後的影像存放在難以猜測但公開的網址上,不要渲染需要保密的文件。read_webpage、preview_link 與 read_qr_code 會回傳第三方文字,其中可能包含針對助理的指令,請留意助理後續的動作。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Zactonz,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Zactonz MCP server

A Model Context Protocol server for the Zactonz APIs. It lets an AI assistant capture a screenshot of a web page, read a page as Markdown, preview a link, look up DNS, SSL and WHOIS records, check a domain's email setup, verify addresses, generate QR codes, barcodes and social card images, convert images and translate text.

It runs on your machine over stdio and needs Node.js 18 or newer.

Install

There is nothing to install ahead of time. The client configurations below run npx -y @zactonz/mcp, which fetches the package on first use and keeps it cached. You need Node.js 18 or newer.

Skip to Setup unless you want to run it from a checkout.

From source

Useful for pinning a particular commit, working on the server, or running without a registry. Needs Node.js 18 or newer and git.

bash
git clone https://github.com/zactonz/zactonz-mcp.gitcd zactonz-mcpnpm ci --omit=dev

That is the whole install: two runtime dependencies, no build step. Check it starts — it will wait for input, so press Ctrl+C to leave:

bash
node bin/zactonz-mcp.js

Then point your client at the absolute path, in place of the npx form used below:

json
{  "mcpServers": {    "zactonz": {      "command": "node",      "args": ["/absolute/path/to/zactonz-mcp/bin/zactonz-mcp.js"],      "env": {        "ZACTONZ_API_KEYS": "zk_screen_…,zk_markdown_…"      }    }  }}

Use the real absolute path — ~ and relative paths are not expanded by most clients. On Windows, write it with forward slashes or escaped backslashes, for example C:/Users/you/zactonz-mcp/bin/zactonz-mcp.js.

For Claude Code:

bash
claude mcp add zactonz --env ZACTONZ_API_KEYS="zk_screen_…" -- node /absolute/path/to/zactonz-mcp/bin/zactonz-mcp.js

If you would rather have zactonz-mcp on your PATH, run npm link in the clone, then use "command": "zactonz-mcp" with no args.

To update later: git pull && npm ci --omit=dev.

Setup

  1. Create a key for each product you want to use in the API console. There is a free plan.
  2. Add the server to your MCP client, with the keys in ZACTONZ_API_KEYS separated by commas.

If you installed from source instead, substitute the "command" and "args" shown there for the npx form used below.

Clients that read an mcpServers block, such as Claude Desktop, Cursor and Windsurf:

json
{  "mcpServers": {    "zactonz": {      "command": "npx",      "args": ["-y", "@zactonz/mcp"],      "env": {        "ZACTONZ_API_KEYS": "zk_screen_…,zk_markdown_…,zk_domain_…"      }    }  }}

VS Code (.vscode/mcp.json):

json
{  "servers": {    "zactonz": {      "command": "npx",      "args": ["-y", "@zactonz/mcp"],      "env": { "ZACTONZ_API_KEYS": "zk_screen_…,zk_markdown_…" }    }  }}

Claude Code:

bash
claude mcp add zactonz --env ZACTONZ_API_KEYS="zk_screen_…,zk_markdown_…" -- npx -y @zactonz/mcp

On Windows, if the client cannot start npx directly, use "command": "cmd" with "args": ["/c", "npx", "-y", "@zactonz/mcp"].

Keys

A Zactonz key works for one product, and the product is part of the key: zk_screen_… is a screenshot key, zk_markdown_… a Markdown key. Put every key you have in ZACTONZ_API_KEYS. The server uses the right one for each call and offers the assistant only the tools those keys can call.

Keys stay in the server process. They are sent to api.zactonz.com in the Authorization header and nowhere else, and they are never included in anything returned to the assistant.

Tools

ToolPurposeKey
capture_screenshotCapture a web page as an image or PDFscreen
render_htmlRender HTML to an image or PDFscreen
read_webpageRead a web page as Markdownmarkdown
convert_html_to_markdownConvert HTML to Markdownmarkdown
preview_linkTitle, description, image and metadata of a URLunfurl
lookup_dnsDNS records and DNSSEC statusdomain
inspect_ssl_certificateCertificate, chain, expiry and TLS detailsdomain
lookup_whoisRegistrar, dates and nameservers of a domaindomain
check_email_domainMX, SPF, DKIM, DMARC and related records, scoredemail
verify_emailsWhether addresses can receive mailmverifier
generate_qr_codeGenerate a QR codeqr
read_qr_codeDecode a QR codeqr
generate_barcodeGenerate a barcodebarcode
generate_social_imageGenerate an Open Graph imageog
convert_imageConvert, resize or crop an imageimage
inspect_imageDimensions, format and colours of an imageimage
translate_textTranslate between 46 languagestranslator
get_drive_download_linkDirect download link for a Google Drive filegdrive
check_api_keyPlan and remaining quota of a keyany

docs/tools.md lists the arguments of each tool.

Example requests once it is connected:

  • "Take a screenshot of example.com on a 390 pixel wide screen and tell me whether the menu fits."
  • "Read https://example.com/pricing and summarise the plans."
  • "Does example.com have SPF and DMARC set up correctly?"
  • "When does the SSL certificate for example.com expire?"

Results

A tool returns JSON text. Two things differ from the raw API:

  • read_webpage and convert_html_to_markdown return the Markdown as plain text, followed by the remaining fields as JSON. They request at most 20,000 characters unless the assistant asks for more.
  • A tool that produces an image returns the link and, when the file is 750 KB or smaller, the image as well, so the assistant can look at it. capture_screenshot and render_html use JPEG quality 80 unless told otherwise, to stay under that size. PDFs and larger images are returned as a link only.

A refused call is returned as a tool error carrying the API's message, the status, how long to wait when a limit was reached, and the request id.

Limits and timing

Calls spend units from your plan's quota, the same as direct API calls. See rate limits and quotas.

A tool call is given 55 seconds in total, because MCP clients stop waiting after 60. Within that time the server retries once, and only where a retry cannot repeat work: after a 429 with a short Retry-After, after a gateway error on a read, or ten seconds after the API's request burst limit rejects a call. If the client cancels a call, the server stops.

Configuration

VariablePurposeDefault
ZACTONZ_API_KEYSAPI keys, separated by commasnone
ZACTONZ_MCP_INLINE_IMAGE_BYTESLargest image returned inline, in bytes. 0 returns links only750000
ZACTONZ_BASE_URLAPI base URLhttps://api.zactonz.com

Without keys the server still starts and lists every tool, and each call answers with setup instructions. Values in ZACTONZ_API_KEYS that are not Zactonz keys are ignored and reported on stderr.

Security and privacy

  • Untrusted content. read_webpage, preview_link and read_qr_code return text written by whoever controls the page or the code. That text can contain instructions aimed at the assistant. The server labels it as third-party data, but the label is advice to the model, not a guarantee. Review what an assistant does after reading pages you do not control.
  • Generated files are public links. Screenshots, PDFs, QR codes, barcodes and converted images are stored on api.zactonz.com at unguessable URLs that anyone holding the link can open, for the period given on each endpoint's reference page. Do not render documents that must stay private.
  • What is sent. Tool arguments go to api.zactonz.com and nowhere else. The server keeps no logs and stores nothing on disk. The API's own handling of data is covered by the privacy policy.
  • Arguments are validated against each tool's schema before any request is made, and arguments outside the schema are refused.
  • Images are fetched for inline display only from the API's own host, over HTTPS, without following redirects.
  • Tools that fetch a URL do so from Zactonz's servers, which refuse private and internal addresses.

Report a vulnerability as described in SECURITY.md.

Troubleshooting

  • A tool is missing. Only tools with a key are listed. Add a key for that product and restart the client.
  • Every call answers with setup instructions. ZACTONZ_API_KEYS is empty or holds no valid key. The server prints the reason on stderr, which most clients show in their MCP log.
  • "Missing or invalid API key." The key was revoked or mistyped. Ask the assistant to run check_api_key, or check the key in the console.
  • A screenshot has no inline image. The file is over the inline limit. Lower the quality or size, or raise ZACTONZ_MCP_INLINE_IMAGE_BYTES.

Versioning

This package follows semantic versioning. While it is at 0.x, a minor release may rename a tool or an argument; such changes are listed in the changelog.

Development

See CONTRIBUTING.md.

Licence

MIT. See LICENSE. Maintained by Zactonz Technologies.

來源:README.md,提交 111f46d

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Oct 6, 2026