Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,331counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:eae3ecaec0c5f8fde7e9b3fa022615a7b647783557ef6b2a482a2d6d0ba65583 | sha256sum