프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Stack And Dns MCP

제작자: Mewnah버전 1.0.1i★ –i컴퓨터 또는 클라우드
레지스트리 이름io.github.Mewnah/stack-and-dns-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Inspect any domain: tech stack, SPF/DKIM/DMARC/MX email health and security posture, for AI agents

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 컴퓨터 또는 클라우드
  • 전송 방식: stdio, Streamable HTTP
  • 카테고리: 클리닉 및 건강
  • 입력해야 할 값: Authorization

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 2개 중 1개 통과 실패
  • 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
  • 직접 입력할 값: STACKDNS_USAGE_FILE, STACKDNS_DB_FILE, STACKDNS_DNS_SERVERS, STACKDNS_LOG_LEVEL, Authorization

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

또는 내 컴퓨터에서 실행하기

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "stack-and-dns": {
      "command": "npx",
      "args": [
        "-y",
        "stack-and-dns-mcp"
      ],
      "env": {
        "STACKDNS_USAGE_FILE": "your-value",
        "STACKDNS_DB_FILE": "your-value",
        "STACKDNS_DNS_SERVERS": "your-value",
        "STACKDNS_LOG_LEVEL": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http stack-and-dns https://mcp.example.com/mcp --header 'Authorization: your-value'

또는 내 컴퓨터에서 실행하기

claude mcp add stack-and-dns --env STACKDNS_USAGE_FILE=your-value --env STACKDNS_DB_FILE=your-value --env STACKDNS_DNS_SERVERS=your-value --env STACKDNS_LOG_LEVEL=your-value -- npx -y stack-and-dns-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "stack-and-dns": {
      "url": "https://mcp.example.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

또는 내 컴퓨터에서 실행하기

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "stack-and-dns": {
      "command": "npx",
      "args": [
        "-y",
        "stack-and-dns-mcp"
      ],
      "env": {
        "STACKDNS_USAGE_FILE": "your-value",
        "STACKDNS_DB_FILE": "your-value",
        "STACKDNS_DNS_SERVERS": "your-value",
        "STACKDNS_LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "stack-and-dns": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

또는 내 컴퓨터에서 실행하기

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "stack-and-dns": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "stack-and-dns-mcp"
      ],
      "env": {
        "STACKDNS_USAGE_FILE": "your-value",
        "STACKDNS_DB_FILE": "your-value",
        "STACKDNS_DNS_SERVERS": "your-value",
        "STACKDNS_LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • STACKDNS_USAGE_FILE env
    Usage file path (default ./data/usage.json, relative to the client's working directory; absolute path recommended).
  • STACKDNS_DB_FILE env
    SQLite database for stored scans, bulk checks and monitoring (default ./data/stackdns.db; absolute path recommended, none disables storage).
  • STACKDNS_DNS_SERVERS env
    Comma-separated DNS resolvers: ip, ipv4:port, [ipv6]:port or [ipv4]:port, port 1-65535 (optional; default: system resolvers; anything else stops startup).
  • STACKDNS_LOG_LEVEL env
    Log level, written to stderr (server default info; warn recommended for MCP clients).
  • Authorization 비밀 필수 HTTP header
    Bearer sdm_live_... API key, or a session token issued after an HTTP 402 payment.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

마지막으로 점검했을 때 서버가 응답하지 않아서 도구를 읽지 못했어요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 Mewnah 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • ✕ 실패

    엔드포인트 응답

    점검할 때 6초 안에 응답하지 않았어요

  • – 해당 없음

    OAuth로 로그인

    점검할 때 6초 안에 응답하지 않았어요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

클리닉 및 건강 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 870개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 870개 중 90%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 870개 중 28%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Stack And Dns MCP, 안전한가요?

해당하는 기본 점검 2개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: Authorization

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.1)은 그저께 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Mirobody, FHIR MCP Server, Google Health MCP

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Mirobody

제작자: thetahealth

Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.

내 컴퓨터에서 실행★ 1,408Apache-2.06일 전 업데이트
설치

FHIR MCP Server

제작자: wso2

MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications

내 컴퓨터에서 실행★ 137Apache-2.09일 전 업데이트
설치

Google Health MCP

제작자: davidmosiah

Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents

내 컴퓨터에서 실행★ 79MIT4개월 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

stack-and-dns-mcp

A monetized Model Context Protocol server that inspects any public domain for AI agents. Give it a domain and it returns the company's web technology stack, its email deliverability and DNS health (MX / SPF / DKIM / DMARC / MTA-STS / TLS-RPT / BIMI), and its HTTPS security posture, all as strictly-typed JSON with 0-100 scores and remediation-ready findings.

Built for Cursor, Claude Desktop, Claude Code, autonomous SDR bots and research agents. Runs locally over stdio with zero configuration, or as a hosted Streamable HTTP / SSE service that meters usage per API key and can sell prepaid credits through HTTP 402 payment challenges (Stripe hosted checkout or x402 / Machine Payments Protocol stablecoin payments) or API key subscriptions through a self-serve signup page.

Every scan is remembered, so it can also tell you what changed: domain_history shows when a company adopted or dropped a tool or weakened its DMARC policy, bulk checks work through whole lead lists (as MCP tools or a CSV-friendly REST API), watched domains raise alerts, by poll or signed webhook, when their email posture or stack changes, and find_domains_using answers "who runs Klaviyo?" from a robots.txt-respecting crawl of a domain list you supply.


Contents

  • What the tools return
  • Quick start (local, stdio)
  • Client configuration
  • Tool reference
  • Hosted mode (HTTP) and monetization
  • Configuration reference
  • Defensive design
  • Scoring model
  • Signature database
  • Deployment
  • Publishing to MCP marketplaces
  • Development and testing
  • Troubleshooting

What the tools return

ToolWhat it doesCost
inspect_tech_stackFetches the homepage (3 s per attempt, at most 6 s with its TLS and http:// fallbacks, transparent bot UA, redirect and WAF aware) and matches it against 450+ regex signatures covering CMS, e-commerce, JS frameworks, CDNs, hosting, WAFs, analytics, tag managers, marketing automation, CRM, live chat, payments, ad pixels, consent tools and more. Also inspects the TLS certificate and grades security headers.1 credit
verify_email_infrastructureLive DNS: MX with provider identification, SPF with recursive include expansion and lookup counting, DKIM discovery across 86 common selectors (key type/length), DMARC with org-domain fallback and report-destination authorization, MTA-STS policy fetch, TLS-RPT, BIMI, disposable-domain detection. Returns severity-sorted risks and a deliverability score.1 credit
comprehensive_auditRuns both concurrently and aggregates an overall health score (email 40 %, security 35 %, infrastructure maturity 25 %) with merged findings and highlights.2 credits
domain_historyReturns what earlier scans recorded about a domain without scanning again: current and past technologies with first-seen and last-seen dates, the latest email posture, and a dated change log (tool added or removed, DMARC weakened, DKIM key lost, MX provider changed). Available when storage is enabled.1 credit
start_bulk_check + get_bulk_check, list_bulk_checks, cancel_bulk_checkChecks a whole lead list (email, tech or audit per domain) as a background job with paged results and CSV export. Also available as a REST API.per accepted domain, at the single-domain price; polling is free
watch_domain + get_alerts, list_watches, unwatch_domainRe-checks watched domains on a schedule and raises alerts when their email posture or technology stack changes, readable with get_alerts or pushed to a signed webhook.included in plans; prepaid callers pay per scheduled check
find_domains_using + list_technologiesReverse lookup: which domains run a technology (Shopify, Klaviyo, HubSpot...), from a polite background crawl of an operator-supplied domain list.2 credits per page; listing is free

Every successful result is delivered twice: as pretty-printed JSON in content[0].text (for clients that only read text) and as structuredContent validated against a Zod output schema. Failures never crash the server; they come back as isError results with no structuredContent, carrying { "error": { "code", "message", "retryable", "details" } } in content[0].text and in _meta.error. Arguments that do not match a tool's input schema (an empty domain, a wrong type, a missing field) and unknown tool names are rejected by the MCP SDK before the tool runs, with a plain-text isError result (MCP error -32602: ...) that has no error object and is not charged; fix the arguments rather than retrying unchanged.

Example (abbreviated) comprehensive_audit highlights for a real store:

Platform: Shopify on Cloudflare (10 technologies detected).

Analytics & tags: Elevar, Google Tag Manager, RudderStack. Go-to-market stack: Attentive. Security: B (81/100); TLS valid, HSTS on, CSP off. Email: Google Workspace; SPF fail; DKIM found; DMARC p=reject (score 92/100, A).


Quick start (local, stdio)

Requirements: Node.js 22.13+. Stored scans, the shared credit ledger and every feature built on them (domain_history, bulk checks, monitoring, reverse lookup) use the built-in node:sqlite module. When it cannot be loaded, or the database cannot be opened, the server still starts with the live inspection tools only and logs why.

git clone https://github.com/Mewnah/stack-and-dns-mcp.git

cd stack-and-dns-mcp npm install npm run build

Try it without any MCP client:

npm run smoke -- shopify.com            # comprehensive audit

npm run smoke -- shopify.com --tech # tech stack only npm run smoke -- shopify.com --email # email infrastructure only

Open it in the MCP Inspector:

npm run inspector

Or run the server directly (stdio is the default transport):

node dist/index.js

Logs always go to stderr as JSON lines; stdout is reserved for the MCP protocol.


Client configuration

The usage file and the database default to ./data/usage.json and ./data/stackdns.db, relative to the directory the server is started in. MCP clients usually start servers somewhere else (an application folder, /, whichever project is open), so the examples below set both to absolute paths. Otherwise the data lands in a different place per client, or storage is switched off with only a log warning when that directory is not writable.

Cursor

A project-level file is included at .cursor/mcp.json. Cursor runs project servers from the workspace root, so the relative paths work after npm run build. For a global install use absolute paths, with a checkout or with the published package:

{

"mcpServers": { "stack-and-dns": { "command": "node", "args": ["/absolute/path/to/stack-and-dns-mcp/dist/index.js"], "env": { "STACKDNS_LOG_LEVEL": "warn", "STACKDNS_USAGE_FILE": "/absolute/path/to/stack-and-dns-mcp/data/usage.json", "STACKDNS_DB_FILE": "/absolute/path/to/stack-and-dns-mcp/data/stackdns.db" } } } }

{

"mcpServers": { "stack-and-dns": { "command": "npx", "args": ["-y", "stack-and-dns-mcp"], "env": { "STACKDNS_LOG_LEVEL": "warn", "STACKDNS_USAGE_FILE": "/absolute/path/to/stack-and-dns-data/usage.json", "STACKDNS_DB_FILE": "/absolute/path/to/stack-and-dns-data/stackdns.db" } } } }

Claude Desktop

Edit claude_desktop_config.json (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS). A Windows example is in examples/claude_desktop_config.json.

{

"mcpServers": { "stack-and-dns": { "command": "node", "args": ["D:\\Projects\\MCP\\stack-and-dns-mcp\\dist\\index.js"], "env": { "STACKDNS_LOG_LEVEL": "warn", "STACKDNS_USAGE_FILE": "D:\\Projects\\MCP\\stack-and-dns-mcp\\data\\usage.json", "STACKDNS_DB_FILE": "D:\\Projects\\MCP\\stack-and-dns-mcp\\data\\stackdns.db" } } } }

macOS / Linux:

{

"mcpServers": { "stack-and-dns": { "command": "node", "args": ["/Users/you/stack-and-dns-mcp/dist/index.js"], "env": { "STACKDNS_LOG_LEVEL": "warn", "STACKDNS_USAGE_FILE": "/Users/you/stack-and-dns-mcp/data/usage.json", "STACKDNS_DB_FILE": "/Users/you/stack-and-dns-mcp/data/stackdns.db" } } } }

Restart Claude Desktop; the tools appear under the tools icon: the three inspection tools always, plus domain_history, the four bulk-check tools and the four monitoring tools when storage is available (12 in all), and find_domains_using / list_technologies when a crawl seed file is set.

Claude Code
claude mcp add stack-and-dns \

-e STACKDNS_USAGE_FILE=/absolute/path/to/stack-and-dns-mcp/data/usage.json \ -e STACKDNS_DB_FILE=/absolute/path/to/stack-and-dns-mcp/data/stackdns.db \ -- node /absolute/path/to/stack-and-dns-mcp/dist/index.js

Remote deployment:

claude mcp add --transport http stack-and-dns https://mcp.example.com/mcp --header "Authorization: Bearer sdm_live_..."
Metering a local stdio install with a customer key

A stdio server never contacts a hosted deployment; to use a hosted server's key, connect over HTTP as in the remote example above. STACKDNS_API_KEY only selects one of the keys configured in the same process (STACKDNS_API_KEYS or STACKDNS_API_KEYS_FILE in the same env block), so a local install can be metered and rate-limited under that key's plan. Without such keys the variable is ignored (the server logs a warning at startup) and the server runs in open local mode, unless STACKDNS_REQUIRE_AUTH=true, in which case every tool call answers UNAUTHORIZED. With keys configured but STACKDNS_API_KEY unset, or set to a key that matches none (that case logs a warning), the process runs as an anonymous free caller: the other tools work within the free plan's quota, and the bulk-check and monitoring tools answer UNAUTHORIZED.


Tool reference

The tools that take a domain (the three inspection tools, domain_history and watch_domain) accept it as a bare hostname (example.com), a URL (https://www.example.com/pricing) or an email address (jane@example.com); start_bulk_check takes a list of the same forms. Scheme, path, port, query and a leading www. (for email checks) are stripped; IDN names are punycoded. An empty or whitespace-only domain fails the input schema (see above), not INVALID_DOMAIN.

inspect_tech_stack
{ "domain": "allbirds.com", "includeRawHeaders": false, "includeEvidence": true }

Key output fields:

FieldDescription
fetchFinal URL, status, redirect chain, protocol, timings, HTTPS downgrade / TLS error flags, structured error when unreachable
blocked{ blocked, vendor, challengeType, reason } for Cloudflare, Akamai, Imperva, DataDome, HUMAN, AWS WAF, Kasada, Vercel, Sucuri, F5 challenges
partialtrue when the fetch failed, was blocked, or the body was truncated
technologies[]{ id, name, category, categoryLabel, website, confidence, version, implied, evidence[] }
categoriesCategory id to detected names
summarycms, ecommerce, framework, cdn, hosting, webServer, tagManager, analytics[], marketingAutomation[], crm[], payments[], liveChat[], advertising[], waf[]

| security | score, grade, breakdown, full tls insp

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기