{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_dpywrfyj4kc4","handle":"postdata","url":"https://wellknown.network/agents/postdata","links":{"self":"https://wellknown.network/agents/postdata/record.json","html":"https://wellknown.network/agents/postdata","markdown":"https://wellknown.network/agents/postdata/record.md","api":"https://wellknown.network/api/v1/agents/postdata","status":"https://wellknown.network/api/v1/agents/postdata/status","claim":"https://wellknown.network/agents/postdata/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/postdata/claim.json","badge":"https://wellknown.network/agents/postdata/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/postdata/history","tools":"https://wellknown.network/api/v1/agents/postdata/tools"},"ard":{"identifier":"urn:air:api.postdata.cloud:server:postdata","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"PostData","summary":"No-signup IoT backend: device names, sensor readings, history and live charts. No API key needed.","description":"No-signup IoT backend: device names, sensor readings, history and live charts. No API key needed.","publisher":{"name":"cloud.postdata","url":null},"homepage":"https://postdata.cloud/docs#mcp","repository":null,"version":"2.3.2","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.postdata.cloud/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-20T12:57:30.424512Z","publishedAt":"2026-10-20T12:57:30.424512Z","registryName":"cloud.postdata/postdata"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"infra.devices","name":"Devices & IoT","confidence":1,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":1,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"code.testing","name":"Testing","confidence":0.51,"provenance":"derived"}],"categories":["analytics","code","content","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-27T03:22:35.046Z","lastProbedAt":"2026-10-27T03:22:35.046Z","statusComputedAt":"2026-10-27T03:24:53.526Z","reliability30d":{"probes":20,"successRate":1,"p50Ms":190,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":20,"ok":20,"authBoundaryOk":0,"serviceOk":20,"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-27T03:22:35.046Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":117,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T20:28:08.951Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":218,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T13:28:28.482Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":306,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T05:29:17.417Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":225,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T22:25:29.439Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T14:27:13.060Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":290,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T07:25:29.053Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":221,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T00:29:40.247Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":189,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T17:35:47.340Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":296,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T10:22:54.544Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":144,"error":null,"detail":{"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"toolCount":6,"toolsHash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","serverName":"postdata","capabilities":["tools"],"serverVersion":"2.3.2","protocolVersion":"2025-06-18"}}],"tools":[{"name":"new_device_name","description":"Get an unused device name (like amber-otter-4821) with its ingest, read, live-stream and chart URLs. Names are public and first come, first served, so use this "},{"name":"publish_reading","description":"Store one reading for a device, exactly as POST /add/{device} would. Useful for testing a dashboard or integration before hardware exists, or for writing to a c"},{"name":"get_latest","description":"The most recent reading from a device, when it arrived (unix seconds) and how long ago, plus its chart URL. Device names, metric names and metric values are wri"},{"name":"get_history","description":"Numeric history for a device over the last N hours (up to 2208, ~92 days): min/max/mean/first/last per metric, and a downsampled series where each point is the "},{"name":"wait_for_reading","description":"Wait until a device sends a new reading, then return it. \"New\" means after the moment of this call, or after the unix time in \"after\" if given. Call this right "},{"name":"list_recent_devices","description":"The 20 most recently active public devices with their latest readings. Handy for examples of real payloads. Device names, metric names and metric values are wri"}],"package":null,"toolSurface":{"id":"ts_6ptzsrm4dazw","endpointId":"ep_fdnmbjkye8av","hash":"051cbd44bf4dd11d472764bd0c5648e3501fd69e460ddd596a8106efaf993ac4","toolCount":6,"serverName":"postdata","serverVersion":"2.3.2","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-21T12:25:16.997Z","lastSeenAt":"2026-10-27T03:22:35.052Z","observations":20,"toolNames":["new_device_name","publish_reading","get_latest","get_history","wait_for_reading","list_recent_devices"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_fdnmbjkye8av","url":"https://api.postdata.cloud/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-23T20:23:33.320Z","auth":{"observedAt":"2026-10-23T20:23:33.411Z","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-23T20:23:33.438Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"postdata.cloud","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-25T15:02:22.000Z","validTo":"2026-12-24T16:02:20.000Z","daysToExpiry":58,"sanCount":3,"fingerprint256":"BD:00:58:16:37:FB:55:61:F3:7C:9C:51:A2:EA:BC:92:D9:56:73:A5:29:02:F3:67:42:5C:2B:C5:B9:18:18:25"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"cloud.postdata/postdata","url":"https://registry.modelcontextprotocol.io/v0/servers/cloud.postdata%2Fpostdata","firstSeenAt":"2026-10-21T09:28:57.007Z","fetchedAt":"2026-10-24T23:21:47.567Z","normalizedAt":"2026-10-24T23:21:47.567Z"}]},"firstSeenAt":"2026-10-21T09:28:57.007Z","updatedAt":"2026-10-27T03:25:47.824Z"}