{"$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-05T15:53:04.765Z","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link","markdownUrl":"https://verifymcp.io/servers/joverman-xrplink/xrp-link.md","server":{"slug":"joverman-xrplink","name":"XRPLink","registryName":"io.github.joverman/xrplink","description":"Verify XRP payments on Flare FDC. Agents subscribe or pay per attestation via x402 on XRPL.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"xrp-link","type":"remote","identifier":"https://xrp-link.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link","version":"0.3.0","transport":null,"scoredAt":"2026-11-05T09:09:21.629Z"},"score":{"total":65,"tier":"medium","status":"scored","weekDelta":2,"history":[{"date":"2026-11-05","total":65},{"date":"2026-11-04","total":64},{"date":"2026-11-03","total":64},{"date":"2026-11-02","total":63},{"date":"2026-11-01","total":63},{"date":"2026-10-31","total":63},{"date":"2026-10-30","total":63},{"date":"2026-10-29","total":63},{"date":"2026-10-28","total":63},{"date":"2026-10-27","total":62},{"date":"2026-10-26","total":62}]},"categories":[{"name":"Endpoint Security","score":51,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not fully verified: no authorisation is required to call this server, and 4 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 406, which proves neither a plaintext path nor enforcement.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_undeclared","args":{"undeclared_tools":"4"}},{"code":"https.inconclusive","args":{"reason":"plaintext_status","status":"406"}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":82,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Tool/resource definitions use about 469 tokens (~58/item across 8 items; 4 tools + 4 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"58","items":"8","tools":"4","tokens":"469","resources":"4"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":11,"verdict":"fail","reasons":["Stability check failed: schema churn in the 10 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions."],"codes":[{"code":"stability.churn","args":{"days":"10","added":"0","breaks":"0","removed":"1","auth_transport":"0"}}]},{"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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"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":["Authorisation not fully verified: no authorisation is required to call this server, and 4 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 406, which proves neither a plaintext path nor enforcement."],"malware":[],"components":[{"slug":"xrp-link","type":"remote","identifier":"https://xrp-link.com/mcp","withdrawn":false,"score":65,"current":true,"url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link","markdownUrl":"https://verifymcp.io/servers/joverman-xrplink/xrp-link.md"}],"facts":[{"label":"Endpoint","value":"https://xrp-link.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"0.3.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"verify_xrp_payment","title":null,"description":"Submit a native XRP Payment hash for FDC attestation on Flare. Only Payments from the last 14 days can be proven. Subscription API keys inside quota are not charged extra (Paid: 20 mainnet attestations per billing period; Pro: 100). Failed prepares do not consume quota. Without a key, or over quota, the tool returns an x402 payment challenge (RLUSD first, then XRP via the XRPL facilitator). Over-quota subscribers can upgrade or buy a single extra attestation. A valid PAYMENT-SIGNATURE pays for exactly one attestation. Status checks are free. Proof takes ~90-180 seconds; use get_attestation_status.","inputs":[{"name":"txHash","type":"string","required":true,"description":"XRP transaction hash (64 hex characters, with or without 0x prefix). Example: 388076B7245A60A13D6A764C8D0B5919F8A77E04E720C32CA1E30E9B7A291F22"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":215},{"name":"get_attestation_status","title":null,"description":"Get the current status of an attestation by its UUID. Unauthenticated callers receive the public receipt subset. The owning API key receives the full proof.","inputs":[{"name":"id","type":"string","required":true,"description":"Attestation UUID returned from verify_xrp_payment"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"lookup_attestation_by_tx","title":null,"description":"Look up an attestation by its original XRP transaction hash. Unauthenticated callers receive the public receipt subset. The owning API key receives the full proof.","inputs":[{"name":"txHash","type":"string","required":true,"description":"XRP transaction hash (64 hex characters). Example: 388076B7245A60A13D6A764C8D0B5919F8A77E04E720C32CA1E30E9B7A291F22"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"get_server_info","title":null,"description":"Get XRPLink server information, network details, contract addresses, and white-label branding.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":26}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T09:09:21.000Z","track":"remote","endpoint":"https://xrp-link.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=xrp-link.com","issuer":"CN=YE2,O=Let's Encrypt,C=US","notBefore":"2026-10-25T07:06:00Z","notAfter":"2027-01-23T07:05:59Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE2,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"xrp-link.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"xrp-link.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":406},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-26","recent":[{"id":"chg_01a1aaf8-4c73-7530-ba6d-633bee094a0a","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a1aaf8-4c73-7530-ba6d-633bee094a0a"},{"id":"chg_01a1a0a6-f9af-71bd-b0de-8b9fd9472bf9","kind":"score.total_changed","summary":"Trust score (63 → 64)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a1a0a6-f9af-71bd-b0de-8b9fd9472bf9"},{"id":"chg_01a181c1-09f9-7ecd-8b53-32ce2a55a28f","kind":"check.verdict","summary":"Stability (0.03 → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09f9-7ecd-8b53-32ce2a55a28f"},{"id":"chg_01a181c1-09fb-715e-90dd-e907f88e4fb3","kind":"check.verdict","summary":"HSTS header (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fb-715e-90dd-e907f88e4fb3"},{"id":"chg_01a181c1-09fb-7e45-bc2e-5d2dee82490a","kind":"check.measure","summary":"Schema quality (49 → 58)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fb-7e45-bc2e-5d2dee82490a"},{"id":"chg_01a181c1-09fc-746b-a021-f2bd33d79029","kind":"tool.removed","summary":"Tool “get_attestation_by_round” was removed","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fc-746b-a021-f2bd33d79029"},{"id":"chg_01a181c1-09fc-7ac9-8cf2-8cae07bdc4a6","kind":"tool.description_changed","summary":"Tool “get_attestation_status” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fc-7ac9-8cf2-8cae07bdc4a6"},{"id":"chg_01a181c1-09fd-7b6c-959f-02db317e619b","kind":"tool.description_changed","summary":"Tool “lookup_attestation_by_tx” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fd-7b6c-959f-02db317e619b"},{"id":"chg_01a181c1-09fe-7371-8173-8b0252ef3f6c","kind":"tool.description_changed","summary":"Tool “verify_xrp_payment” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fe-7371-8173-8b0252ef3f6c"},{"id":"chg_01a181c1-09fe-77df-add4-7ecb33a885a1","kind":"resource.removed","summary":"Resource “Live Network Status” was removed","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fe-77df-add4-7ecb33a885a1"},{"id":"chg_01a181c1-09fe-7c85-b49b-5344639d9789","kind":"server.breaking_without_version_bump","summary":"A breaking change shipped without a version bump (still 0.3.0)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09fe-7c85-b49b-5344639d9789"},{"id":"chg_01a181c1-09ff-72db-b079-adb21fb5bd48","kind":"score.total_changed","summary":"Trust score (62 → 63)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a181c1-09ff-72db-b079-adb21fb5bd48"},{"id":"chg_01a17c9b-2508-7aac-9ec9-9649fc17dcfd","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a17c9b-2508-7aac-9ec9-9649fc17dcfd"},{"id":"chg_01a17c9b-2509-7259-9f52-44b1f2f904d9","kind":"tool.description_changed","summary":"Tool “verify_xrp_payment” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a17c9b-2509-7259-9f52-44b1f2f904d9"},{"id":"chg_01a17815-4481-78a1-a0e7-eeb4b8aa6714","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/joverman-xrplink/xrp-link#chg-chg_01a17815-4481-78a1-a0e7-eeb4b8aa6714"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/joverman-xrplink/xrp-link/changelog.json"},"links":{"html":"https://verifymcp.io/servers/joverman-xrplink/xrp-link","markdown":"https://verifymcp.io/servers/joverman-xrplink/xrp-link.md","changelogJson":"https://verifymcp.io/servers/joverman-xrplink/xrp-link/changelog.json","changelogRss":"https://verifymcp.io/servers/joverman-xrplink/xrp-link.xml","external":[{"label":"Remote endpoint","href":"https://xrp-link.com/mcp"},{"label":"Repository","href":"https://github.com/joverman/xrplink"}]}}