{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2te54zjjmja5","handle":"spendgate","url":"https://wellknown.network/agents/spendgate","links":{"self":"https://wellknown.network/agents/spendgate/record.json","html":"https://wellknown.network/agents/spendgate","markdown":"https://wellknown.network/agents/spendgate/record.md","api":"https://wellknown.network/api/v1/agents/spendgate","status":"https://wellknown.network/api/v1/agents/spendgate/status","claim":"https://wellknown.network/agents/spendgate/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/spendgate/claim.json","badge":"https://wellknown.network/agents/spendgate/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/spendgate/history","tools":"https://wellknown.network/api/v1/agents/spendgate/tools"},"ard":{"identifier":"urn:air:spendgate.toolweather.workers.dev:server:spendgate","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"SpendGate","summary":"Score a planned spend before an agent pays. Verdicts: approve, ask_human, or block.","description":"Score a planned spend before an agent pays. Verdicts: approve, ask_human, or block.","publisher":{"name":"toolweather","url":null},"homepage":"https://spendgate.toolweather.workers.dev","repository":"https://github.com/toolweather/spendgate","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://spendgate.toolweather.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-15T16:58:25.614883Z","publishedAt":"2026-10-15T16:58:25.614883Z","registryName":"io.github.toolweather/spendgate"},"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":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"}],"categories":["commerce"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-11-02T13:27:06.356Z","lastProbedAt":"2026-11-02T13:27:06.356Z","statusComputedAt":"2026-11-02T13:30:27.406Z","reliability30d":{"probes":56,"successRate":1,"p50Ms":44,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":56,"ok":56,"authBoundaryOk":0,"serviceOk":56,"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-11-02T13:27:06.356Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":45,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T05:26:52.191Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T21:29:45.504Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T13:29:34.907Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":51,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T06:26:33.296Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":14,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T22:28:52.786Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":38,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T14:28:12.006Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":15,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T07:28:10.519Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":34,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T00:25:41.680Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T17:27:55.351Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":103,"error":null,"detail":{"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"toolCount":4,"toolsHash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","serverName":"spendgate","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"score_spend","description":"Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status"},{"name":"get_quota","description":"Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not "},{"name":"get_api_key","description":"Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will"},{"name":"set_wallet_allowlist","description":"Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a pa"}],"package":null,"toolSurface":{"id":"ts_7hf4ajuh5uma","endpointId":"ep_4nf57qk6j84j","hash":"62a534573c063925923ed5ccb94f963e997cd402d72ef7be992fb9a5c411f6da","toolCount":4,"serverName":"spendgate","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-17T09:26:47.975Z","lastSeenAt":"2026-11-02T13:27:06.339Z","observations":56,"toolNames":["score_spend","get_quota","get_api_key","set_wallet_allowlist"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_4nf57qk6j84j","url":"https://spendgate.toolweather.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-29T19:29:33.963Z","auth":{"observedAt":"2026-10-29T19:29:33.985Z","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-29T19:29:34.018Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"toolweather.workers.dev","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-10-15T03:41:11.000Z","validTo":"2027-01-13T03:41:10.000Z","daysToExpiry":71,"sanCount":2,"fingerprint256":"FC:BC:81:8D:BA:CF:A7:9B:B7:3F:F6:27:17:58:8E:45:F5:3C:ED:07:01:DD:08:31:30:3F:DE:20:3A:0F:9F:DE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.toolweather/spendgate","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.toolweather%2Fspendgate","firstSeenAt":"2026-10-17T09:22:13.441Z","fetchedAt":"2026-10-31T03:19:39.070Z","normalizedAt":"2026-10-31T03:19:39.070Z"}]},"firstSeenAt":"2026-10-17T09:22:13.441Z","updatedAt":"2026-11-02T13:32:09.132Z"}