{"name":"io.github.ovladon/seenrelay","slug":"ovladon-seenrelay","title":"SeenRelay","description":"Avoid redundant expensive validation. CHECK recent evidence; OBSERVE fresh independent results.","url":"https://mcp.market/server/ovladon-seenrelay","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":20,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T14:47:57.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T22:55:55.630Z","last_ok_at":"2026-09-20T22:55:55.630Z","latency_ms":255},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/ovladon/seenrelay","website":null,"version":"0.3.10","remotes":[{"type":"streamable-http","url":"https://seenrelay.com/mcp"}],"packages":[],"tools":[{"name":"check_fact","description":"Cost preflight before repeated paid or slow source-backed validation, especially across an agent fleet. Use before paid web search, metered scraping, browser/extraction, rate-limited APIs or multi-step validation when the caller already has a known value. Returns SAME_OBSERVED, CHANGED_OBSERVED, CONTESTED, STALE or UNKNOWN. Only SAME_OBSERVED can be considered for caller-policy-gated reuse; every other status requires normal authoritative validation before OBSERVE. SeenRelay never browses or verifies externally.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fact":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":256,"description":"Human-readable label; excluded from canonical fact identity."},"predicate":{"type":"string","minLength":1,"maxLength":128,"description":"Stable shared machine identifier; identity-bearing only when locator is absent."},"qualifiers":{"description":"Identity-bearing semantic qualifiers. Include only fields needed to distinguish otherwise identical source-backed facts.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"source":{"type":"string","maxLength":2048,"format":"uri","description":"Stable credential-free absolute HTTP(S) source URL. Tracking parameters are removed; authentication or signature query parameters are rejected."},"locator":{"description":"Stable source-native locator. Prefer this when the source exposes one.","type":"object","properties":{"scheme":{"type":"string","enum":["json_pointer","element_id","source_key"],"description":"Source-native locator type: RFC 6901-style JSON pointer, stable HTML element id, or stable source-native key."},"value":{"type":"string","minLength":1,"maxLength":1024,"description":"Source-native locator value. json_pointer values must begin with /; locator bytes are otherwise preserved."}},"required":["scheme","value"]}},"required":["subject","predicate","source"],"description":"Source-backed fact coordinate whose recent shared evidence should be checked."},"known_value":{"description":"Caller-known value to compare with recent observations. Mutable observed content is excluded from fact identity.","$ref":"#/$defs/__schema0"},"max_age_seconds":{"description":"Maximum age, in seconds, of shared observations the caller is willing to consider. Omit to use the service default.","type":"integer","minimum":1,"maximum":604800}},"required":["fact","known_value"],"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}},{"name":"observe_fact","description":"After independently performing a source-backed validation, deposit the observed result for later CHECKs. Returns accepted=true when a new observation is stored or deduplicated=true for a recognized retry/recent duplicate. Never OBSERVE hearsay. Optional Ed25519 proof establishes key possession and continuity, not truth or real-world independence.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fact":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":256,"description":"Human-readable label; excluded from canonical fact identity."},"predicate":{"type":"string","minLength":1,"maxLength":128,"description":"Stable shared machine identifier; identity-bearing only when locator is absent."},"qualifiers":{"description":"Identity-bearing semantic qualifiers. Include only fields needed to distinguish otherwise identical source-backed facts.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"source":{"type":"string","maxLength":2048,"format":"uri","description":"Stable credential-free absolute HTTP(S) source URL. Tracking parameters are removed; authentication or signature query parameters are rejected."},"locator":{"description":"Stable source-native locator. Prefer this when the source exposes one.","type":"object","properties":{"scheme":{"type":"string","enum":["json_pointer","element_id","source_key"],"description":"Source-native locator type: RFC 6901-style JSON pointer, stable HTML element id, or stable source-native key."},"value":{"type":"string","minLength":1,"maxLength":1024,"description":"Source-native locator value. json_pointer values must begin with /; locator bytes are otherwise preserved."}},"required":["scheme","value"]}},"required":["subject","predicate","source"],"description":"Source-backed fact coordinate for the independently obtained observation."},"value":{"description":"Value independently obtained by the caller. Mutable observed content is excluded from fact identity.","$ref":"#/$defs/__schema0"},"observed_at":{"description":"ISO-8601 time when the caller obtained the observation. Omit to use server receipt time.","type":"string"},"observer_id":{"description":"Optional self-asserted continuity label. It is unverified unless accompanied by observer_proof.","type":"string","minLength":1,"maxLength":128},"observer_proof":{"description":"Optional Ed25519 proof of key possession, continuity and payload integrity; not proof of truth or real-world independence.","type":"object","properties":{"scheme":{"type":"string","const":"ed25519-v1","description":"Observer proof contract version."},"public_key":{"type":"string","minLength":1,"maxLength":128,"description":"Raw 32-byte Ed25519 public key encoded as unpadded base64url."},"timestamp":{"type":"string","minLength":1,"maxLength":64,"description":"ISO-8601 signing time; it must fall within the configured proof-skew window."},"nonce":{"type":"string","minLength":1,"maxLength":128,"description":"16..64 random bytes encoded as unpadded base64url."},"signature":{"type":"string","minLength":1,"maxLength":256,"description":"Raw 64-byte Ed25519 signature encoded as unpadded base64url."}},"required":["scheme","public_key","timestamp","nonce","signature"]},"evidence_fingerprint":{"description":"Optional caller-supplied fingerprint of the independently obtained evidence. SeenRelay stores it as provenance metadata and does not verify it against the source.","type":"string","minLength":1,"maxLength":256},"source_validator":{"description":"Optional source-validator metadata from the independent validation. The caller decides whether a returned hint is sufficient for source confirmation.","type":"object","properties":{"kind":{"type":"string","enum":["etag","last_modified","content_hash","other"],"description":"Type of observer-supplied source-validator metadata."},"value":{"type":"string","minLength":1,"maxLength":512,"pattern":"^[^\\r\\n]+$","description":"Observer-supplied validator value. Stored and returned only as a hint; SeenRelay does not verify it against the source."}},"required":["kind","value"]},"idempotency_key":{"description":"Caller-chosen retry key for the same OBSERVE operation. Reusing it deduplicates an idempotent retry.","type":"string","minLength":1,"maxLength":128}},"required":["fact","value"],"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-20T20:11:35.983Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:11:35.969Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 741ms"]},"poisoning":{"score":15,"max":15,"notes":["2 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://seenrelay.com/mcp","reachable":true,"authRequired":false,"latencyMs":741,"serverInfo":{"name":"seenrelay","version":"0.3.10"}}],"packages":[],"repo":{"found":true,"owner":"ovladon","repo":"seenrelay","archived":false,"pushedAt":"2026-09-19T14:47:57Z","stars":0,"forks":0,"openIssues":8,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/83345843?v=4","ownerCreatedAt":"2021-04-28T10:59:57Z","license":"NOASSERTION"},"icon":{"url":"https://seenrelay.com/seenrelay-logo.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-09-19T14:47:57.000Z","score":20}}}},"grade_history":[],"reviews":[]}