{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:26:46.560Z","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat.md","server":{"slug":"pipeworx-io-ripe-stat","name":"Ripe Stat","registryName":"io.github.pipeworx-io/ripe-stat","description":"RIPE Stat MCP — IP/ASN/BGP data","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-ripe-stat","type":"npm","identifier":"@pipeworx/mcp-ripe-stat","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T00:07:15.747Z"},"score":{"total":85,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":85},{"date":"2026-11-04","total":85},{"date":"2026-11-03","total":82},{"date":"2026-11-02","total":82},{"date":"2026-11-01","total":82},{"date":"2026-10-31","total":82},{"date":"2026-10-30","total":82},{"date":"2026-10-29","total":82}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-ripe-stat).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pipeworx-io/mcp-ripe-stat"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":82,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1148 tokens (~114/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"114","items":"10","tools":"10","tokens":"1148","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"11","judged":"11"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"ripe-stat-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/ripe-stat/mcp","withdrawn":false,"score":71,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/ripe-stat-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/ripe-stat-mcp.md"},{"slug":"pipeworx-mcp-ripe-stat","type":"npm","identifier":"@pipeworx/mcp-ripe-stat","withdrawn":false,"score":85,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-ripe-stat"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"whois","title":null,"description":"\"Whois lookup for IP / ASN / prefix\" / \"who owns IP [X]\" / \"WHOIS for [resource]\" — aggregated whois data for an IP address, IP prefix, or AS number across all five RIRs (ARIN, RIPE, APNIC, LACNIC, AFRINIC). Returns registrant org, registration country, abuse contacts, allocation date. Use for IP ownership, abuse-response, network forensics.","inputs":[{"name":"resource","type":"string","required":true,"description":"IP address, prefix, or AS number (e.g. \"8.8.8.8\", \"8.8.8.0/24\", \"AS15169\")"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"network_info","title":null,"description":"\"What ASN does IP [X] belong to\" / \"network info for [IP]\" / \"what prefix is [IP] in\" — get the allocated prefix and originating ASN for an IPv4/IPv6 address. Use for \"which network owns this IP\", DDoS source attribution, hosting-provider lookup.","inputs":[{"name":"resource","type":"string","required":true,"description":"IPv4/IPv6 address"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"as_overview","title":null,"description":"\"Who owns AS[N]\" / \"AS[number] info\" / \"what company is ASN [X]\" / \"Cloudflare / Google / Amazon ASN\" — summary for an Autonomous System Number (ASN): holder organization, country, AS type (transit / content / IXP), allocation date. Pass \"AS15169\" or \"15169\". Use for network attribution, BGP analysis.","inputs":[{"name":"asn","type":"string","required":true,"description":"AS number (e.g. \"AS15169\" or \"15169\")"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":113},{"name":"asn_neighbours","title":null,"description":"\"BGP peers / neighbours of AS[N]\" / \"who does [ASN] peer with\" / \"upstream providers for [AS]\" — BGP neighbours of an AS observed by RIPE's RIS (Routing Information Service) route collectors. Use for transit / peering analysis, network topology mapping.","inputs":[{"name":"asn","type":"string","required":true,"description":"AS number"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"bgp_state","title":null,"description":"\"BGP routes for [prefix]\" / \"what AS announces [IP]\" / \"BGP hijack check\" / \"current routing state for [resource]\" — origin ASNs and AS-path lengths currently announcing a resource on the global BGP table. Use to detect BGP hijacks, audit route propagation, find anycast announcers.","inputs":[{"name":"resource","type":"string","required":true,"description":"IP, prefix, or ASN"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"abuse_contact","title":null,"description":"\"Abuse contact for IP [X]\" / \"where to report abuse on [IP / ASN]\" / \"report spam from [resource]\" — official abuse-contact email(s) for an IP, prefix, or ASN drawn from RIR records (inetnum / aut-num objects). Use for spam/abuse/DDoS report routing.","inputs":[{"name":"resource","type":"string","required":true,"description":"IP, prefix, or ASN"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"geoloc","title":null,"description":"\"What country is IP [X] in\" / \"geolocate [IP]\" / \"RIR country for [resource]\" — country geolocation of an IP or prefix derived from RIR registration data. NOTE: registration-based geo, not GeoIP — accurate for ownership country but not necessarily the host's physical location. Use for compliance / jurisdiction questions where registry truth matters.","inputs":[{"name":"resource","type":"string","required":true,"description":"IP or prefix"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"prefix_overview","title":null,"description":"\"Prefix overview for [CIDR]\" / \"info on IP block [X/Y]\" — comprehensive summary for an IP prefix: BGP announcements, origin ASes, allocation history. Use to understand a whole IP block at once instead of chaining bgp_state + whois.","inputs":[{"name":"resource","type":"string","required":true,"description":"Prefix (e.g. \"8.8.8.0/24\")"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"ripestat_announced_prefixes","title":null,"description":"\"What IP ranges does AS[N] announce\" / \"all prefixes for [ASN]\" / \"what IP blocks does Cloudflare / Google / AWS own\" / \"netblocks announced by [AS]\" — every IPv4 and IPv6 prefix currently announced in global BGP by an Autonomous System, as seen by RIPE's RIS route collectors. AUTHORITATIVE for \"which IP ranges belong to this network\": use it to build allowlists, attribute traffic to a provider, or size a network's address footprint. Note RIPEstat excludes prefixes seen by fewer than 10 full-feed peers, so very low-visibility announcements are omitted.","inputs":[{"name":"asn","type":"string","required":true,"description":"AS number (e.g. \"AS13335\" or \"13335\")"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":164},{"name":"ripestat_asn_search","title":null,"description":"\"What is [company]'s ASN\" / \"find the AS number for [organisation]\" / \"search ASNs by name\" — resolve an organisation or network name to its AS numbers and prefixes using RIPEstat's resource autocomplete. Returns candidate ASNs with their holder descriptions, so it is the lookup step BEFORE as_overview / ripestat_announced_prefixes / asn_neighbours when you only know the company name. Matches on the registered AS name and holder description across all five RIRs.","inputs":[{"name":"query","type":"string","required":true,"description":"Organisation or network name to search for (e.g. \"cloudflare\", \"deutsche telekom\")"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":141}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:07:15.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1a89a-6801-75bc-8fd4-666a0230d1b8","kind":"score.total_changed","summary":"Trust score (49 → 85)","materiality":"functional","direction":"improvement","scoreDelta":36,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a89a-6801-75bc-8fd4-666a0230d1b8"},{"id":"chg_01a1a89a-67fd-7e64-9b7e-d113348cd06e","kind":"check.reverified","summary":"Stability (unverified → 0.20)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a89a-67fd-7e64-9b7e-d113348cd06e"},{"id":"chg_01a1a895-c5b8-7b7f-b8c7-d5a27ab34fce","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b8-7b7f-b8c7-d5a27ab34fce"},{"id":"chg_01a1a895-c5b9-7610-9c66-2a5a67a37d44","kind":"score.total_changed","summary":"Trust score (82 → 49)","materiality":"functional","direction":"regression","scoreDelta":-33,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b9-7610-9c66-2a5a67a37d44"},{"id":"chg_01a1a895-c5b6-7d98-9681-ac0355d93fc7","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b6-7d98-9681-ac0355d93fc7"},{"id":"chg_01a1a895-c5b5-7e6a-b3e3-3f99b5511f1f","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b5-7e6a-b3e3-3f99b5511f1f"},{"id":"chg_01a1a895-c5b2-7a0e-b864-42fa9f76c637","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b2-7a0e-b864-42fa9f76c637"},{"id":"chg_01a1a895-c5b0-7dcc-848b-c88ae23cd7fd","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b0-7dcc-848b-c88ae23cd7fd"},{"id":"chg_01a1a895-c5b7-740a-ba08-4aa77bf4f8ff","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a1a895-c5b7-740a-ba08-4aa77bf4f8ff"},{"id":"chg_01a186de-9b20-7089-8dbd-52c7670b033d","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat#chg-chg_01a186de-9b20-7089-8dbd-52c7670b033d"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat","markdown":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-ripe-stat/pipeworx-mcp-ripe-stat.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-ripe-stat"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-ripe-stat"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-ripe-stat"},{"label":"Website","href":"https://pipeworx.io/packs/ripe-stat"}]}}