Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Screenshots, page to Markdown, link previews, DNS, SSL, WHOIS, QR codes and more for AI agents.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
ZACTONZ_API_KEYS, ZACTONZ_MCP_INLINE_IMAGE_BYTES비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"zactonz": {
"command": "npx",
"args": [
"-y",
"@zactonz/mcp"
],
"env": {
"ZACTONZ_API_KEYS": "your-value",
"ZACTONZ_MCP_INLINE_IMAGE_BYTES": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add zactonz --env ZACTONZ_API_KEYS=your-value --env ZACTONZ_MCP_INLINE_IMAGE_BYTES=your-value -- npx -y @zactonz/mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"zactonz": {
"command": "npx",
"args": [
"-y",
"@zactonz/mcp"
],
"env": {
"ZACTONZ_API_KEYS": "your-value",
"ZACTONZ_MCP_INLINE_IMAGE_BYTES": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"zactonz": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zactonz/mcp"
],
"env": {
"ZACTONZ_API_KEYS": "your-value",
"ZACTONZ_MCP_INLINE_IMAGE_BYTES": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
ZACTONZ_MCP_INLINE_IMAGE_BYTES env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 zactonz 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: ZACTONZ_API_KEYS
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.0)은 31일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, topo^alpin
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Avalanche bulletins and mountain weather forecasts for any place in the Alps.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
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.
Useful for pinning a particular commit, working on the server, or running without a registry. Needs Node.js 18 or newer and git.
git clone https://github.com/zactonz/zactonz-mcp.git
cd zactonz-mcp npm 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:
node bin/zactonz-mcp.js
Then point your client at the absolute path, in place of the npx form used below:
{
"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:
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.
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:
{
"mcpServers": { "zactonz": { "command": "npx", "args": ["-y", "@zactonz/mcp"], "env": { "ZACTONZ_API_KEYS": "zk_screen_…,zk_markdown_…,zk_domain_…" } } } }
VS Code (.vscode/mcp.json):
{
"servers": { "zactonz": { "command": "npx", "args": ["-y", "@zactonz/mcp"], "env": { "ZACTONZ_API_KEYS": "zk_screen_…,zk_markdown_…" } } } }
Claude Code:
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"].
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.
| Tool | Purpose | Key |
|---|---|---|
capture_screenshot | Capture a web page as an image or PDF | screen |
render_html | Render HTML to an image or PDF | screen |
read_webpage | Read a web page as Markdown | markdown |
convert_html_to_markdown | Convert HTML to Markdown | markdown |
preview_link | Title, description, image and metadata of a URL | unfurl |
lookup_dns | DNS records and DNSSEC status | domain |
inspect_ssl_certificate | Certificate, chain, expiry and TLS details | domain |
lookup_whois | Registrar, dates and nameservers of a domain | domain |
check_email_domain | MX, SPF, DKIM, DMARC and related records, scored | email |
verify_emails | Whether addresses can receive mail | mverifier |
generate_qr_code | Generate a QR code | qr |
read_qr_code | Decode a QR code | qr |
generate_barcode | Generate a barcode | barcode |
generate_social_image | Generate an Open Graph image | og |
convert_image | Convert, resize or crop an image | image |
inspect_image | Dimensions, format and colours of an image | image |
translate_text | Translate between 46 languages | translator |
get_drive_download_link | Direct download link for a Google Drive file | gdrive |
check_api_key | Plan and remaining quota of a key | any |
docs/tools.md lists the arguments of each tool.
Example requests once it is connected:
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.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.
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.
| Variable | Purpose | Default |
|---|---|---|
ZACTONZ_API_KEYS | API keys, separated by commas | none |
ZACTONZ_MCP_INLINE_IMAGE_BYTES | Largest image returned inline, in bytes. 0 returns links only | 750000 |
ZACTONZ_BASE_URL | API base URL | https://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.
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.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.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.Report a vulnerability as described in SECURITY.md.
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.check_api_key, or check the key in the console.ZACTONZ_MCP_INLINE_IMAGE_BYTES.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.
See CONTRIBUTING.md.
MIT. See LICENSE. Maintained by Zactonz Technologies.