{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_eyusewhc3mn4","handle":"handover-tools","url":"https://wellknown.network/agents/handover-tools","links":{"self":"https://wellknown.network/agents/handover-tools/record.json","html":"https://wellknown.network/agents/handover-tools","markdown":"https://wellknown.network/agents/handover-tools/record.md","api":"https://wellknown.network/api/v1/agents/handover-tools","status":"https://wellknown.network/api/v1/agents/handover-tools/status","claim":"https://wellknown.network/agents/handover-tools/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/handover-tools/claim.json","badge":"https://wellknown.network/agents/handover-tools/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/handover-tools/history","tools":"https://wellknown.network/api/v1/agents/handover-tools/tools"},"ard":{"identifier":"urn:air:handover.tools:server:handover-tools","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"handover.tools","summary":"Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel.","description":"Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel.","publisher":{"name":"tools.handover","url":null},"homepage":"https://handover.tools","repository":"https://github.com/gammaland/handover","version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://handover.tools/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-19T00:08:20.672922Z","publishedAt":"2026-10-19T00:08:20.672922Z","registryName":"tools.handover/handover"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"communication.chat","name":"Team Chat","confidence":0.911,"provenance":"derived"},{"slug":"infra.devices","name":"Devices & IoT","confidence":0.885,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"}],"categories":["communication","finance","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-22T11:32:31.049Z","lastProbedAt":"2026-10-22T11:32:31.049Z","statusComputedAt":"2026-10-22T11:36:39.779Z","reliability30d":{"probes":39,"successRate":1,"p50Ms":1049,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":39,"ok":39,"authBoundaryOk":0,"serviceOk":39,"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-22T11:32:31.049Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":748,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:27:18.279Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":711,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T21:35:06.215Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":723,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T11:26:01.418Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":729,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T02:29:12.663Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":733,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T20:24:07.732Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":748,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T13:28:17.386Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":699,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T07:27:29.080Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":702,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T00:31:04.755Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":768,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-19T17:44:19.288Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":800,"error":null,"detail":{"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"toolCount":9,"toolsHash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","serverName":"handover.tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"handoff_put","description":"Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content —"},{"name":"handoff_get","description":"Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same"},{"name":"handoff_revoke","description":"Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put"},{"name":"channel_open","description":"Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local cli"},{"name":"channel_join","description":"Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate)"},{"name":"channel_send","description":"Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not c"},{"name":"channel_fetch","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns th"},{"name":"channel_ack","description":"Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the "},{"name":"channel_close","description":"Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed."}],"package":null,"toolSurface":{"id":"ts_kq9dmy8zsa9d","endpointId":"ep_vvucwpbt6k2z","hash":"17291fd877ea513c4f29ae5cdd8ac9cad3966c9f38c0a5e18ed41830a4cc7f45","toolCount":9,"serverName":"handover.tools","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-19T04:31:51.301Z","lastSeenAt":"2026-10-22T11:32:31.055Z","observations":12,"toolNames":["handoff_put","handoff_get","handoff_revoke","channel_open","channel_join","channel_send","channel_fetch","channel_ack","channel_close"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_vvucwpbt6k2z","url":"https://handover.tools/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-22T11:32:31.071Z","auth":{"observedAt":"2026-10-22T11:32:31.147Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-22T11:32:31.169Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"handover.tools","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-09T00:18:51.000Z","validTo":"2027-01-07T01:18:36.000Z","daysToExpiry":76,"sanCount":2,"fingerprint256":"08:2D:07:D3:6B:57:6F:06:00:A9:D1:99:FE:22:F5:61:78:C4:6C:D5:B7:27:F1:BC:E0:77:60:98:EA:79:0B:44"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"tools.handover/handover","url":"https://registry.modelcontextprotocol.io/v0/servers/tools.handover%2Fhandover","firstSeenAt":"2026-10-11T16:22:28.124Z","fetchedAt":"2026-10-21T00:22:39.827Z","normalizedAt":"2026-10-21T00:22:39.827Z"}]},"firstSeenAt":"2026-10-11T16:22:28.124Z","updatedAt":"2026-10-22T11:39:14.975Z"}