{"id":300065,"recorded_at":"2026-10-26T22:20:49.209074Z","observed_at":"2026-10-26T22:20:49.208945Z","subject_kind":"endpoint","subject":"5962291f-9229-476e-a455-8b643b94f8fe","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":10,"tools":[{"description":"Fetch incoming SMS received on your shortcodes/numbers, oldest first, in batches (default 25 per call). Pass last_received_id (0 for the first call, then `next_last_received_id` from the previous reply) to move through them; `has_more` stays true while a call returns messages, so keep calling until `count` is 0. Optional shortcode and keyword filters. GET /version1/messaging.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"keyword":{"description":"Only messages that start with this keyword.","maxLength":50,"type":"string"},"last_received_id":{"description":"Id of the last message already read (default 0 = from the start).","maximum":9007199254740991,"minimum":0,"type":"integer"},"limit":{"description":"Most messages to return per call (default 25); `has_more` says if more are waiting.","maximum":100,"minimum":1,"type":"integer"},"short_code":{"description":"Only messages sent to this shortcode / number.","maxLength":20,"type":"string"}},"type":"object"},"name":"africastalking_fetch_messages"},{"description":"Look up an airtime transaction by its transaction id (the requestId / ATPid_... from a send reply): status, amount, destination and discount. GET /query/transaction/find.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"transaction_id":{"description":"The transaction id, e.g. ATPid_...","maxLength":100,"minLength":1,"type":"string"}},"required":["transaction_id"],"type":"object"},"name":"africastalking_find_airtime_transaction"},{"description":"Look up a mobile data transaction by its transactionId (from a send reply): status, product, destination and cost. GET bundles /query/transaction/find.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"transaction_id":{"description":"The mobile data transactionId.","maxLength":100,"minLength":1,"type":"string"}},"required":["transaction_id"],"type":"object"},"name":"africastalking_find_mobile_data_transaction"},{"description":"The Africa's Talking app balance (SMS/airtime wallet), e.g. {\"balance\": \"KES 1250.0000\"}. The sandbox app has no balance. GET /version1/user.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"africastalking_get_balance"},{"description":"The balance of the mobile data wallet, e.g. {\"status\": \"Success\", \"balance\": \"KES 500.0000\"}. GET bundles /query/wallet/balance.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"africastalking_get_mobile_data_wallet_balance"},{"description":"Number of outbound calls currently queued on each of your voice numbers. Live apps only. POST voice /queueStatus (a read: nothing is changed).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"phone_numbers":{"description":"Your Africa's Talking voice numbers to check.","items":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"maxItems":20,"minItems":1,"type":"array"}},"required":["phone_numbers"],"type":"object"},"name":"africastalking_get_voice_queue_status"},{"description":"WRITE: place an outbound voice call from one of your Africa's Talking numbers to up to 10 phone numbers. The call is billed and rings real phones; what is said is decided by the voice callback URL configured for the number in the dashboard. Needs confirm=true after the user approved the numbers. Live apps only (the sandbox has no voice service). Returns a per-number queue status. POST voice /call.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"call_from":{"description":"Your Africa's Talking voice number to call from (international format).","pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"call_to":{"description":"Numbers to call (max 10).","items":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"maxItems":10,"minItems":1,"type":"array"},"client_request_id":{"description":"Optional label passed back to your voice callback URL as clientRequestId.","pattern":"^[A-Za-z0-9._:-]{1,64}$","type":"string"},"confirm":{"description":"Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit.","type":"boolean"}},"required":["call_from","call_to","confirm"],"type":"object"},"name":"africastalking_make_voice_call"},{"description":"WRITE: top up mobile airtime for up to 25 phone numbers. Spends account credit immediately and cannot be reversed. Needs confirm=true after the user approved each number and amount. Amounts are in the given ISO currency (e.g. KES, UGX, TZS). Pass an idempotency_key to make a retry safe. Returns per-number status and requestId (use africastalking_find_airtime_transaction to follow up). POST /version1/airtime/send.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"confirm":{"description":"Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit.","type":"boolean"},"idempotency_key":{"description":"Optional unique key (8-100 chars) for this send; the same key makes Africa's Talking ignore a duplicate request.","pattern":"^[A-Za-z0-9._:-]{8,100}$","type":"string"},"recipients":{"items":{"properties":{"amount":{"description":"Amount of airtime in that currency.","exclusiveMinimum":0,"maximum":1000000,"type":"number"},"currency_code":{"pattern":"^[A-Z]{3}$","type":"string"},"phone_number":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"}},"required":["phone_number","currency_code","amount"],"type":"object"},"maxItems":25,"minItems":1,"type":"array"}},"required":["recipients","confirm"],"type":"object"},"name":"africastalking_send_airtime"},{"description":"WRITE: send mobile data bundles to up to 25 phone numbers from your Africa's Talking data wallet. Spends wallet credit and cannot be reversed. Needs confirm=true after the user approved each number and bundle. product_name is your data product (created in the Africa's Talking dashboard). Pass an idempotency_key to make a retry safe. Returns per-number status and transactionId (see africastalking_find_mobile_data_transaction). POST bundles /mobile/data/request.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"confirm":{"description":"Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit.","type":"boolean"},"idempotency_key":{"description":"Optional unique key (8-100 chars) for this send; the same key makes Africa's Talking ignore a duplicate request.","pattern":"^[A-Za-z0-9._:-]{8,100}$","type":"string"},"product_name":{"description":"Name of your mobile data product in the Africa's Talking dashboard.","maxLength":100,"minLength":1,"type":"string"},"recipients":{"items":{"properties":{"metadata":{"additionalProperties":{"type":"string"},"description":"Optional key-value labels stored with the transaction.","propertyNames":{"type":"string"},"type":"object"},"phone_number":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"quantity":{"description":"Bundle size in `unit`.","exclusiveMinimum":0,"maximum":100000,"type":"number"},"unit":{"enum":["MB","GB"],"type":"string"},"validity":{"enum":["Day","Week","BiWeek","Month","Quarterly"],"type":"string"}},"required":["phone_number","quantity","unit","validity"],"type":"object"},"maxItems":25,"minItems":1,"type":"array"}},"required":["product_name","recipients","confirm"],"type":"object"},"name":"africastalking_send_mobile_data"},{"description":"WRITE: send one text message to up to 100 phone numbers. Spends account credit and delivers to real phones (the sandbox app only reaches the simulator). Needs confirm=true after the user approved the recipients and text. Returns the vendor's per-recipient status (statusCode 101 = sent), message ids and cost. Never retried. POST /version1/messaging.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"confirm":{"description":"Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit.","type":"boolean"},"message":{"description":"The SMS text (1-1600 characters; long texts are split into several billed parts).","maxLength":1600,"minLength":1,"type":"string"},"sender_id":{"description":"Approved alphanumeric sender ID, shortcode or long-code number (e.g. +27... in South Africa); omit to use the account default.","pattern":"^(?:\\+\\d{6,16}|[A-Za-z0-9 ._-]{1,16})$","type":"string"},"to":{"description":"Recipients in international format, e.g. +254711000000 (max 100).","items":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"maxItems":100,"minItems":1,"type":"array"}},"required":["to","message","confirm"],"type":"object"},"name":"africastalking_send_sms"}]},"body_sha256":"ab8082cf1d164f4c93c4fccbaf1fc51bb2e07bfeb811d499b5d994fd455e889d","prev_id":null,"leaf":"0x70b8bee367fb9b3e09b1d66dad882313d1718020e4b1e18a662876f516a31d24","leaf_text":"{\"body\":\"ab8082cf1d164f4c93c4fccbaf1fc51bb2e07bfeb811d499b5d994fd455e889d\",\"id\":300065,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793053249208945,\"prev\":null,\"subject\":\"5962291f-9229-476e-a455-8b643b94f8fe\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x70b9162ef0c7a25dea4323707464a1ca09fccaf18d473862faa6911ff5e70efb","0x8b36b335590c3576ea6f15c64466c837e53020f1f7c01c41d293850a26b19645","0x290b3908c79fa3e48e16f8193705a8dd10d39a7089d7807d1d3fa4d37d4a9bbf","0x6fdef7b30406dbae9fd7ad18db44f46f6182cc0eacd01c32d818e1a544b6e4ba","0x39eac95bdc383a9b5f25b2e58fcd59d6da660c96822d4a942987fc9e598e7d27","0xd6d37f7e5e212a189f8dc9f4eb1888767b43e3ccc8c0a4128f1da6f3dfe8e836","0x01fc212e8bcdf4707a1146e827dd5109103a93229c71a011c5f5a1c14807f15c","0x68ace2b23863c07baf76c5982c8b23143d30bb4f21cd0533cf09549184b48620","0xc9ba8e512a3ad74ee604f8b1759e25b1172f9f8f62ba4f8f8bcc35beb64f6fcb","0x3801dc224ee69349c6fe3a8804f83a6392c51dbf385196ccaca4e1bc01124391","0x85ea4bbb5113622e4aa66d1805aad88594922ba95c70691ba980547dd9edd2b2","0x5be1d69fd9353c3a75685caffea8c98e8f079f5072011c82517cc5f365ba32f8","0x14b83e3bc6587240f31cd033d09d131e0775b7b00aada9042597008a70399013","0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d","0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40","0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0","0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d","0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}