Skip to content
RU

MCP Server for Enterno.io

Install enterno.io into Claude Desktop, Cursor, or Zed and let your AI agent run HTTP, DNS, SSL, Ping, and IP checks natively — no context switch, no copy-paste.

https://enterno.io/mcp

Install in Claude Desktop (30 seconds)

1. Open Claude Desktop config

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

2. Add enterno to mcpServers

{
    "mcpServers": {
        "enterno": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote@0.15.1",
                "https://enterno.io/mcp",
                "--header",
                "Authorization:${ENTERNO_AUTH}"
            ],
            "env": {
                "ENTERNO_AUTH": "Bearer ent_YOUR_API_KEY"
            }
        }
    }
}

3. Restart Claude Desktop

Requires Node.js: the mcp-remote bridge runs via npx and sends your key as a header. After the restart the chat input lists the 49 enterno tools.

Install in Cursor / Zed

Cursor

~/.cursor/mcp.json

{
    "mcpServers": {
        "enterno": {
            "url": "https://enterno.io/mcp",
            "headers": {
                "Authorization": "Bearer ent_YOUR_API_KEY"
            }
        }
    }
}

Zed

~/.config/zed/settings.json → "context_servers"

{
    "context_servers": {
        "enterno": {
            "url": "https://enterno.io/mcp",
            "headers": {
                "Authorization": "Bearer ent_YOUR_API_KEY"
            }
        }
    }
}

Core MCP tools — full catalog below

check_http

Fetch HTTP status, headers, timing. Follows redirects, SSRF-safe.

check_dns

Query A, AAAA, MX, NS, TXT, CNAME, SOA records for a domain.

check_ssl

Certificate chain, protocol, cipher, SAN list, expiry days, HSTS, OCSP.

check_ping

ICMP ping a host 1–10 times; returns min/avg/max/loss.

check_ip

Geolocation, ASN, reverse DNS, threat signals for an IP or hostname.

Example prompts

After installing, try these in chat — the agent will pick the right tool automatically.

  • Is enterno.io reachable? Run check_http on it.
  • What SSL cipher does github.com use? How many days until its cert expires?
  • Resolve the MX records for cloudflare.com.
  • Traceroute cloudflare.com from Moscow and tell me the hops.
  • Is 8.8.8.8 a known Google server? Run check_ip.

Protocol details

Transport

Streamable HTTP (JSON-RPC 2.0), no SSE required

Protocol version

2024-11-05

Auth

Authorization: Bearer ent_… (X-API-Key is also accepted)

Rate limit

Per-key sliding window, headers X-RateLimit-*

Discovery

/.well-known/mcp.json and /.well-known/mcp/server-card.json

Spec

modelcontextprotocol.io

Ready to connect?

Grab a free API key and paste the JSON snippet above into your MCP client config. Your agent will have access to enterno.io's diagnostic toolkit in under a minute.

Tool catalog

These 49 tools are callable from any MCP-compatible AI agent (Claude Desktop, Cursor, Zed).

check_httpFree

Fetch HTTP response headers, status, timing for a URL. SSRF-safe.

Required: url Optional: method, follow, timeout

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_http",
        "arguments": {
            "url": "https://example.com",
            "method": "GET"
        }
    }
}
check_dnsFree

Query A, AAAA, MX, NS, TXT, CNAME, SOA records for a domain.

Required: domain Optional: types

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_dns",
        "arguments": {
            "domain": "example.com",
            "types": [
                "A",
                "MX",
                "TXT"
            ]
        }
    }
}
check_sslFree

Inspect TLS certificate chain, protocol, cipher, expiry, SAN list.

Required: host Optional: port

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_ssl",
        "arguments": {
            "host": "example.com",
            "port": 443
        }
    }
}
check_pingFree

ICMP ping a host N times (1–10) and report min/avg/max/loss.

Required: host Optional: count

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_ping",
        "arguments": {
            "host": "example.com",
            "count": 4
        }
    }
}
check_ipFree

Look up geolocation, ASN, reverse DNS for an IP or hostname.

Required: host

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_ip",
        "arguments": {
            "host": "1.1.1.1"
        }
    }
}
check_whoisFree

WHOIS lookup: registrar, creation/expiry dates, name servers, status.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_whois",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_securityFree

Security grade by the /security tool (headers, HTTPS, cookies). Score + grade.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_security",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_redirectsFree

Trace the redirect chain for a URL — every 3xx hop with code + target.

Required: url Optional: max_redirects

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_redirects",
        "arguments": {
            "url": "https://example.com",
            "max_redirects": 10
        }
    }
}
check_speedFree

PageSpeed Insights for a URL — mobile + desktop. Core Web Vitals + opportunities.

Required: url Optional: strategy

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_speed",
        "arguments": {
            "url": "https://example.com",
            "strategy": "mobile"
        }
    }
}
check_tracerouteFree

mtr-based traceroute. Per-hop IP, rDNS, packet loss%, avg/best/worst RTT.

Required: host Optional: max_hops

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_traceroute",
        "arguments": {
            "host": "example.com",
            "max_hops": 20
        }
    }
}
check_emailFree

Full email-deliverability audit: MX, SPF, DMARC, DKIM, BIMI, MTA-STS.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_email",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_mxFree

List MX records (mail server hostnames + priorities) for a domain.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_mx",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_robotsFree

Fetch /robots.txt: user-agents, allow/disallow rules, sitemap URLs.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_robots",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_subdomain_enumFree

Discover subdomains via Certificate Transparency logs (crt.sh).

Required: domain Optional: limit

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_subdomain_enum",
        "arguments": {
            "domain": "example.com",
            "limit": 50
        }
    }
}
check_ai_readinessFree

AI-agent discoverability by the /ai-check tool (20 signals). Score + grade.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_ai_readiness",
        "arguments": {
            "domain": "example.com"
        }
    }
}
plane_assetsFree

List the assets this account observes, and what has been seen on each.

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "plane_assets",
        "arguments": {
            "type": "hostname",
            "q": "example.com"
        }
    }
}
plane_eventsFree

Recent changes and alerts across this account's assets.

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "plane_events",
        "arguments": {
            "since_days": 7,
            "min_severity": "example.com"
        }
    }
}
plane_assetFree

One asset in depth: coverage, statistics and its recent timeline.

Required: asset_id Optional: limit

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "plane_asset",
        "arguments": {
            "asset_id": 1
        }
    }
}
monitor_listFree

List this account's monitors and their last status.

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_list",
        "arguments": {
            "status": "down",
            "limit": 20
        }
    }
}
monitor_getFree

One monitor in detail, without secrets.

Required: monitor_id

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_get",
        "arguments": {
            "monitor_id": 42
        }
    }
}
monitor_createFree

Create a monitor within the plan's limit and interval.

Required: url Optional: check_type, interval_minutes, name, keyword, tags

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_create",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
monitor_updateFree

Change a monitor; only the arguments sent change.

Required: monitor_id Optional: url, interval_minutes, name, keyword, tags

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_update",
        "arguments": {
            "monitor_id": 42
        }
    }
}
monitor_pauseFree

Stop checking a monitor until it is resumed.

Required: monitor_id

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_pause",
        "arguments": {
            "monitor_id": 42
        }
    }
}
monitor_resumeFree

Start checking a paused monitor again.

Required: monitor_id

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "monitor_resume",
        "arguments": {
            "monitor_id": 42
        }
    }
}
check_cookieFree

Cookie flags and trackers.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_cookie",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_corsFree

CORS policy.

Required: url Optional: origin

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_cors",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_cspFree

Content-Security-Policy grade.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_csp",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_http_statusFree

Status code and timing.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_http_status",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_protocolFree

HTTP version and TLS negotiation.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_protocol",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_mixed_contentFree

Mixed content on an HTTPS page.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_mixed_content",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_schemaFree

Structured data.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_schema",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_tech_detectFree

Technology fingerprint.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_tech_detect",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_og_previewFree

Open Graph and social preview.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_og_preview",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_cmsFree

CMS detection.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_cms",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_url_expandFree

Resolve a short link.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_url_expand",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_resolve_urlFree

Resolve a URL to its final target.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_resolve_url",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_waybackFree

Wayback Machine history.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_wayback",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_seo_auditFree

On-page SEO audit.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_seo_audit",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_ai_checkFree

AI readiness.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_ai_check",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_carbonFree

Carbon footprint estimate.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_carbon",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_performanceFree

Performance metrics.

Required: url

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_performance",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_pagespeedFree

PageSpeed.

Required: url Optional: strategy

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_pagespeed",
        "arguments": {
            "url": "https://example.com"
        }
    }
}
check_dkimFree

DKIM public key.

Required: domain Optional: selector

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_dkim",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_email_checkFree

SPF, DKIM and DMARC.

Required: domain

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_email_check",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_email_headerFree

Parse raw email headers.

Required: headers

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_email_header",
        "arguments": {
            "headers": "From: sender@example.com\nTo: you@example.com\nSubject: test"
        }
    }
}
check_propagationFree

DNS propagation across resolvers.

Required: domain Optional: type

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_propagation",
        "arguments": {
            "domain": "example.com"
        }
    }
}
check_smtp_testFree

SMTP banner and STARTTLS.

Required: target Optional: port

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_smtp_test",
        "arguments": {
            "target": "smtp.example.com"
        }
    }
}
check_asnFree

ASN and network owner.

Required: query

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_asn",
        "arguments": {
            "query": "1.1.1.1"
        }
    }
}
check_reverse_ipFree

Domains sharing an address.

Required: ip

Example payload
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_reverse_ip",
        "arguments": {
            "ip": "1.1.1.1"
        }
    }
}

Setup snippets

Paste one of these into your agent config and the enterno MCP server is live.

{
  "mcpServers": {
    "enterno": {
      "command": "npx",
      "args": ["-y", "mcp-remote@0.15.1", "https://enterno.io/mcp", "--header", "Authorization:${ENTERNO_AUTH}"],
      "env": { "ENTERNO_AUTH": "Bearer ent_YOUR_KEY_HERE" }
    }
  }
}
{
  "mcpServers": {
    "enterno": {
      "url": "https://enterno.io/mcp",
      "headers": { "Authorization": "Bearer ent_YOUR_KEY_HERE" }
    }
  }
}
curl -sS https://enterno.io/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ent_YOUR_KEY_HERE" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Personal usage analytics

Log in to see your last 30 days of MCP traffic, top tools, and daily quota.

Log in