{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_428yjcbexu65","handle":"p-e-relay-remote","url":"https://wellknown.network/agents/p-e-relay-remote","links":{"self":"https://wellknown.network/agents/p-e-relay-remote/record.json","html":"https://wellknown.network/agents/p-e-relay-remote","markdown":"https://wellknown.network/agents/p-e-relay-remote/record.md","api":"https://wellknown.network/api/v1/agents/p-e-relay-remote","status":"https://wellknown.network/api/v1/agents/p-e-relay-remote/status","claim":"https://wellknown.network/agents/p-e-relay-remote/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/p-e-relay-remote/claim.json","badge":"https://wellknown.network/agents/p-e-relay-remote/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/p-e-relay-remote/history","tools":"https://wellknown.network/api/v1/agents/p-e-relay-remote/tools"},"ard":{"identifier":"urn:air:relay.zae.life:server:p-e-relay-remote","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"p-e relay (remote)","summary":"Remote MCP access to the p-e relay store. Reads are open; writes and waits are signed.","description":"Remote MCP access to the p-e relay store. Reads are open; writes and waits are signed.","publisher":{"name":"it-start","url":null},"homepage":null,"repository":"https://github.com/it-start/relay-ui","version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://relay.zae.life/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-18T08:41:51.741405Z","publishedAt":"2026-09-18T08:41:51.741405Z","registryName":"io.github.it-start/relay-ui"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.859,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content"],"language":"en"},"observed":{"status":"recently_observed","statusReason":"Responded 2d ago; 3 recent checks failed (latest 13h ago).","lastOkAt":"2026-10-08T08:30:03.229Z","lastProbedAt":"2026-10-10T01:25:19.059Z","statusComputedAt":"2026-10-10T01:26:13.473Z","reliability30d":{"probes":74,"successRate":0.9595,"p50Ms":39,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":74,"ok":71,"authBoundaryOk":0,"serviceOk":71,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T01:25:19.059Z","kind":"mcp_initialize","ok":false,"httpStatus":502,"latencyMs":29,"error":"http 502","detail":null},{"at":"2026-10-09T03:24:04.961Z","kind":"mcp_initialize","ok":false,"httpStatus":502,"latencyMs":31,"error":"http 502","detail":null},{"at":"2026-10-08T15:24:08.413Z","kind":"mcp_initialize","ok":false,"httpStatus":502,"latencyMs":67,"error":"http 502","detail":null},{"at":"2026-10-08T08:30:03.229Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T02:21:04.638Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T19:24:41.236Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":89,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T12:29:30.551Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T05:24:58.709Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":62,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-06T22:25:01.910Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-06T15:25:16.091Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"toolCount":6,"toolsHash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","serverName":"p-e-relay","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"wait_for_relay","description":"Reads only; it deposits nothing. **Over HTTP this call must be signed**, like a deposit and unlike every other read: it holds the connection while it waits, and"},{"name":"append_relay","description":"Append one record. Never overwrites: a proposed id already held is refused. Omit id and the store assigns the next free one. Stored as provenance: as-received a"},{"name":"get_relay","description":"Exact bytes of one relay record, or a refusal naming its state. Never a summary and never a reconstruction. Reads only; it deposits nothing. The bytes come back"},{"name":"exists","description":"Say what this store knows about one id, without fetching bytes: PRESENT, KNOWN_MISSING (a held record names this id and the bytes are absent), or UNKNOWN (nothi"},{"name":"list_relays","description":"Reads only; it deposits nothing. Every id this store holds, and every id it knows to be missing, as two space-separated lists of ids under the headings `present"},{"name":"list_replies","description":"Records that name the given id in their `parent:` or `ref:` header — one level, not a traversal. The reply graph is not a line and this does not flatten it: a r"}],"package":null,"toolSurface":{"id":"ts_n4a45sxvdpnr","endpointId":"ep_edybvcazpg3s","hash":"6125adbd2ba97d734619e941b099b2ad95d2b1688e7bb04ff1b527093afd2071","toolCount":6,"serverName":"p-e-relay","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-19T05:24:02.783Z","lastSeenAt":"2026-10-08T08:30:03.227Z","observations":71,"toolNames":["wait_for_relay","append_relay","get_relay","exists","list_relays","list_replies"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_edybvcazpg3s","url":"https://relay.zae.life/api/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-07T12:29:30.557Z","auth":{"observedAt":"2026-10-07T12:29:30.589Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://relay.zae.life/.well-known/oauth-protected-resource/api/mcp","resource":"https://relay.zae.life/api/mcp","authorizationServers":[],"scopesSupported":[]},"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":true,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-07T12:29:30.656Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"relay.zae.life","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-01T18:07:01.000Z","validTo":"2026-11-30T18:07:00.000Z","daysToExpiry":51,"sanCount":1,"fingerprint256":"79:32:48:60:D0:E3:4E:91:D5:E4:BC:D9:32:D2:FA:04:9C:CF:66:9B:A1:A0:9C:4B:30:B8:B4:BD:C8:14:C8:AA"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.it-start/relay-ui","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.it-start%2Frelay-ui","firstSeenAt":"2026-09-19T05:18:23.340Z","fetchedAt":"2026-10-10T12:19:07.548Z","normalizedAt":"2026-10-10T12:19:07.548Z"}]},"firstSeenAt":"2026-09-19T05:18:23.340Z","updatedAt":"2026-10-08T08:31:55.556Z"}