Server definition
- Hash
- sha256:eae3ecaec0c5f8fde7e9b3fa022615a7b647783557ef6b2a482a2d6d0ba65583
- What it is
- What a remote MCP server returned when asked what it offers: 29 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Check a site's robots.txt for explicit directives targeting known AI crawlers (GPTBot, ClaudeBot, CCBot, PerplexityBot, Google-Extended, Bytespider, Amazonbot, and others used for LLM training or AI search/answer products), and check for an llms.txt file. Useful for publishers deciding whether their content policy toward AI crawlers matches their intent, or for auditing a competitor's stance.",
"inputSchema": {
"properties": {
"url": {
"description": "Any URL on the site to check (origin is derived from it)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "ai_crawler_policy_check",
"outputSchema": null
},
{
"description": "Crawl a site starting from a URL (same-origin pages only, bounded by maxPages) and check every linked URL for broken status codes. Returns broken links with the page(s) they were found on. Note: some external sites (e.g. social platforms) block automated HEAD/GET requests and may show up as false positives.",
"inputSchema": {
"properties": {
"checkExternal": {
"description": "Also check links pointing off-site (default true; crawling never follows off-site links)",
"type": "boolean"
},
"maxPages": {
"description": "Max same-origin pages to crawl (default 20, capped at 50)",
"type": "number"
},
"url": {
"description": "Starting URL to crawl",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "broken_link_check",
"outputSchema": null
},
{
"description": "TCP-connect scan a host for open ports. Defaults to a list of ~20 common service ports (SSH, HTTP/S, mail, DBs, etc.) if none are given. For checking your own infrastructure's exposure — capped at 100 ports per call.",
"inputSchema": {
"properties": {
"host": {
"description": "Hostname or IP to scan (no scheme)",
"type": "string"
},
"ports": {
"description": "Specific ports to check. Defaults to a common-ports list. Max 100 ports per call.",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"host"
],
"type": "object"
},
"name": "check_open_ports",
"outputSchema": null
},
{
"description": "Check whether a site has a valid robots.txt and sitemap.xml, and return their raw contents (truncated).",
"inputSchema": {
"properties": {
"url": {
"description": "Any URL on the site to check (origin is derived from it)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "check_robots_sitemap",
"outputSchema": null
},
{
"description": "Send a probe request with a foreign Origin header to a URL and report its CORS response headers. Flags wildcard-origin + credentials combinations and arbitrary-origin reflection, both common CORS misconfigurations.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to probe",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "cors_policy_check",
"outputSchema": null
},
{
"description": "Query a DNS record for a domain against several major public resolvers (Google, Cloudflare, Quad9, OpenDNS) in parallel and compare the answers. Flags mismatches, which usually mean propagation is still in progress after a DNS change.",
"inputSchema": {
"properties": {
"domain": {
"description": "Bare domain to query, e.g. example.com",
"type": "string"
},
"recordType": {
"description": "Record type: A, AAAA, MX, TXT, NS, or CNAME (default A)",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "dns_propagation_check",
"outputSchema": null
},
{
"description": "Check whether a domain is registered, plus scan common typo-squat variants (adjacent-key substitution, letter omission/doubling, transposition) across popular TLDs (.com, .net, .org, .io, .co, .ai, .app, .dev) for brand-protection or domain-flipping research. WHOIS-based; capped at 40 variants checked per call for latency.",
"inputSchema": {
"properties": {
"checkSquats": {
"description": "Also scan typo-squat variants (default true)",
"type": "boolean"
},
"domain": {
"description": "Bare domain to check, e.g. example.com",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "domain_availability_check",
"outputSchema": null
},
{
"description": "Check a domain's registration expiry (via WHOIS) and DNS health: nameservers, A/AAAA, MX, SPF, and DMARC records. Flags common misconfigurations.",
"inputSchema": {
"properties": {
"domain": {
"description": "Bare domain to check, e.g. example.com (no scheme/path)",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "domain_health_check",
"outputSchema": null
},
{
"description": "Bundle: runs seo_audit, domain_health_check (WHOIS + DNS: nameservers, A/AAAA, MX, SPF, DMARC), and email_deliverability_check (DKIM, SPF lookup-count, DMARC strength, DNSBL) against a domain in one call, one charge. Cheaper than calling the three tools separately. Each sub-check reports independently, so a failure in one doesn't void the others.",
"inputSchema": {
"properties": {
"domain": {
"description": "Bare domain to report on, e.g. example.com (no scheme/path)",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "domain_report",
"outputSchema": null
},
{
"description": "Validate a single email address: RFC syntax check, MX record lookup on the domain, disposable/temporary-email-provider detection, and role-account detection (info@, admin@, etc.). Per-address check — different from email_deliverability_check, which audits a whole domain's sending reputation (SPF/DKIM/DMARC/PTR/DNSBL).",
"inputSchema": {
"properties": {
"email": {
"description": "Email address to validate",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "email_address_validate",
"outputSchema": null
},
{
"description": "Deep-dive email deliverability check for a domain: MX records + reverse-DNS (PTR) on each MX host, common DKIM selector probing, SPF lookup-count (RFC 7208 caps at 10), DMARC policy strength, and DNSBL blacklist lookups (Spamhaus Zen, SpamCop, Barracuda) on MX IPs. Note: public-resolver DNSBL queries are frequently rate-limited or blocked by Spamhaus, so a `listed: null` result means \"unknown\", not \"clean\" — treat null results as inconclusive, not as a clean bill of health.",
"inputSchema": {
"properties": {
"domain": {
"description": "Bare domain to check, e.g. example.com",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "email_deliverability_check",
"outputSchema": null
},
{
"description": "Check a site for favicon, apple-touch-icon, web app manifest, and theme-color presence — a quick completeness check for browser/OS chrome and PWA metadata.",
"inputSchema": {
"properties": {
"url": {
"description": "Any URL on the site to check (origin is derived from it)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "favicon_manifest_check",
"outputSchema": null
},
{
"description": "Check a GitHub repository's health signals: stars, forks, open issues, license, archived/disabled status, and days since last push. Flags likely-abandoned or unlicensed repos. Useful before depending on a repo.",
"inputSchema": {
"properties": {
"owner": {
"description": "Repository owner (user or org)",
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo"
],
"type": "object"
},
"name": "github_repo_health_check",
"outputSchema": null
},
{
"description": "Resolve a hostname to its IPv4 addresses and look up each one's ASN, network prefix, country code, and network owner via Team Cymru's DNS-based WHOIS service (no API key). Country-level only — not city/street geolocation.",
"inputSchema": {
"properties": {
"host": {
"description": "Hostname or bare IPv4 address to look up",
"type": "string"
}
},
"required": [
"host"
],
"type": "object"
},
"name": "ip_geolocation_asn_lookup",
"outputSchema": null
},
{
"description": "Fetch a URL, extract every JSON-LD (<script type=\"application/ld+json\">) block, and validate basic structure — @context/@type presence plus required fields for common schema.org types (Article, Product, Organization, WebSite, LocalBusiness, BreadcrumbList, FAQPage). Reports per-block errors rather than failing the whole call on one bad block.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to check",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "json_ld_schema_validator",
"outputSchema": null
},
{
"description": "Look up a package (optionally pinned to a version) against OSV.dev's aggregated vulnerability database (GitHub Advisories, PyPA, RustSec, Go vuln DB, etc.) for known CVEs/advisories. Supports npm, PyPI, crates.io, RubyGems, Go, Maven, NuGet, and Packagist ecosystems. Useful before adding a dependency.",
"inputSchema": {
"properties": {
"ecosystem": {
"description": "Package ecosystem",
"enum": [
"npm",
"pypi",
"cargo",
"rubygems",
"go",
"maven",
"nuget",
"packagist"
],
"type": "string"
},
"name": {
"description": "Package name",
"type": "string"
},
"version": {
"description": "Optional exact version to check; omit to check the package generally",
"type": "string"
}
},
"required": [
"ecosystem",
"name"
],
"type": "object"
},
"name": "package_vulnerability_check",
"outputSchema": null
},
{
"description": "Fetch a URL and measure time-to-first-byte, total fetch time, and response size. Flags missing compression, missing Cache-Control, oversized payloads, and slow TTFB.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to measure",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "page_performance_check",
"outputSchema": null
},
{
"description": "Run Google's real PageSpeed Insights (Lighthouse + Chrome UX Report) against a URL: performance score, Core Web Vitals (LCP, CLS, INP/TBT), and real-user field data where available. Authoritative version of a local timing check — hits Google's own infrastructure. Works without an API key at low volume; set GOOGLE_PAGESPEED_API_KEY server-side for higher throughput.",
"inputSchema": {
"properties": {
"strategy": {
"description": "Device strategy (default mobile)",
"enum": [
"mobile",
"desktop"
],
"type": "string"
},
"url": {
"description": "The URL to test",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "pagespeed_insights",
"outputSchema": null
},
{
"description": "Follow a URL through every HTTP redirect hop and report the full chain, final destination, and issues like redirect loops, too many hops, or HTTPS-to-HTTP downgrades.",
"inputSchema": {
"properties": {
"url": {
"description": "The starting URL to trace",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "redirect_chain_check",
"outputSchema": null
},
{
"description": "Check a URL against Google Safe Browsing's malware/phishing/unwanted-software/PUA blocklists. Requires GOOGLE_SAFE_BROWSING_API_KEY to be configured server-side (free Google Cloud API key).",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to check",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "safe_browsing_check",
"outputSchema": null
},
{
"description": "Fetch a URL and audit its response for security-relevant HTTP headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy). Flags missing/misconfigured headers with a score.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to audit",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "security_headers_audit",
"outputSchema": null
},
{
"description": "Fetch a URL and run an SEO audit: title/meta description length, canonical tag, Open Graph + Twitter Card tags, html lang attribute, viewport meta, heading structure, image alt-text coverage, internal/external link counts and generic-anchor-text detection, robots meta (noindex/nofollow), structured data (JSON-LD) presence, and robots.txt/sitemap.xml presence.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to audit",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "seo_audit",
"outputSchema": null
},
{
"description": "Parse a site's sitemap.xml (following one level of sitemap-index nesting) and check the HTTP status of every listed URL. Concurrency-limited, capped at 200 URLs checked per call. Reports broken/redirecting URLs found in the sitemap.",
"inputSchema": {
"properties": {
"url": {
"description": "URL of the sitemap.xml to validate (or any page URL — /sitemap.xml on that origin is used)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "sitemap_url_validator",
"outputSchema": null
},
{
"description": "Connect to a host over TLS and report its certificate's expiry date, days remaining, issuer, and subject.",
"inputSchema": {
"properties": {
"hostname": {
"description": "Hostname to check, e.g. papacasper.com (no scheme/path)",
"type": "string"
},
"port": {
"description": "TLS port to connect to (default 443)",
"type": "number"
}
},
"required": [
"hostname"
],
"type": "object"
},
"name": "ssl_cert_check",
"outputSchema": null
},
{
"description": "Full SSL Labs-style TLS assessment: overall letter grade, protocol support (TLS 1.0-1.3), cipher strength, certificate chain issues, and known vulnerabilities (Heartbleed, POODLE, etc.) for each endpoint. Slower than ssl_cert_check (can take up to ~90s on a cold cache; SSL Labs caches results for 24h server-side).",
"inputSchema": {
"properties": {
"hostname": {
"description": "Hostname to assess, e.g. example.com (no scheme/path)",
"type": "string"
}
},
"required": [
"hostname"
],
"type": "object"
},
"name": "ssl_labs_grade",
"outputSchema": null
},
{
"description": "Fetch a URL and extract structured data deterministically: JSON-LD blocks, OpenGraph/meta tags, and optional caller-supplied CSS-selector fields (e.g. { price: '.product-price', title: 'h1' }). No LLM involved — pure HTML parsing via CSS selectors, so results are exact matches only, not summarized or inferred.",
"inputSchema": {
"properties": {
"attr": {
"description": "Optional HTML attribute to extract instead of text content (e.g. 'href', 'src', 'content'). Applies to all selector fields in this call.",
"type": "string"
},
"selectors": {
"additionalProperties": {
"type": "string"
},
"description": "Optional map of field name -> CSS selector (e.g. { price: '.product-price', headline: 'h1' }). Each field returns an array of matched, whitespace-normalized text values in document order.",
"type": "object"
},
"url": {
"description": "The URL to extract from",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "structured_data_extract",
"outputSchema": null
},
{
"description": "Fetch a URL and fingerprint its likely tech stack from response headers (server, x-powered-by, x-generator) and HTML markers (generator meta tag, framework/CMS-specific script or class patterns). Best-effort — not exhaustive, no additional paths are probed.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to fingerprint",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "tech_stack_fingerprint",
"outputSchema": null
},
{
"description": "Fetch a URL and return its main text content as clean, readable plain text/markdown-ish output. Strips scripts, styles, and HTML tags.",
"inputSchema": {
"properties": {
"url": {
"description": "The URL to fetch",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "url_to_markdown",
"outputSchema": null
},
{
"description": "Test a WebSocket endpoint (ws:// or wss://): attempts the handshake, reports success/failure, time-to-open in ms, and close code/reason. Useful for verifying a WebSocket server is reachable and completes its upgrade handshake before you wire real traffic to it.",
"inputSchema": {
"properties": {
"url": {
"description": "WebSocket URL to test, e.g. wss://example.com/socket",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "websocket_endpoint_check",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:eae3ecaec0c5f8fde7e9b3fa022615a7b647783557ef6b2a482a2d6d0ba65583 | sha256sum