Skip to content

SIMcloud

by simcloud.co.za · remote · no sign-in to list tools · v0.2.0 · published by za.co.simcloud

South African MCP server for airtime, data, SMS, VAS, electricity, balance, and network lookup.

Deletes · 6Changes · 2

17 tools: 6 can delete or cancel things, 2 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http simcloud https://simcloud.co.za/api/mcp.php

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "lookup_network" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "lookup_network" says "lookup": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

17 tools

Deletes or cancels 6Claude Code: deny
  • create_airtime_orderUse this when an authenticated SIMcloud user asks to send or recharge prepaid airtime to a South African mobile number on MTN, Vodacom, Cell C or Telkom.No findings

    Why it is in this group

    • The name "create_airtime_order" says "create": a word for a change.
    • The description says "irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an authenticated SIMcloud user asks to send or recharge prepaid airtime to a South African mobile number on MTN, Vodacom, Cell C or Telkom. Confirm the MSISDN, network, rand amount and reference before calling. This spends wallet funds and queues an irreversible external transaction. Never automatically retry an ambiguous result. Duplicate same-MSISDN-and-amount requests inside 5 minutes return HTTP 409.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
  • create_data_orderUse this when an authenticated SIMcloud user asks to send a confirmed South African mobile data bundle.No findings

    Why it is in this group

    • The name "create_data_order" says "create": a word for a change.
    • The description says "irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an authenticated SIMcloud user asks to send a confirmed South African mobile data bundle. Call list_data_products first and use an available network and sell value. This spends wallet funds and queues an irreversible external transaction. Never automatically retry an ambiguous result. Duplicate same-MSISDN-and-amount requests inside 5 minutes return HTTP 409.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
  • create_electricity_orderUse this when an authenticated SIMcloud user asks to buy prepaid electricity for a meter already confirmed with check_electricity_meter.No findings

    Why it is in this group

    • The name "create_electricity_order" says "create": a word for a change.
    • The description says "irreversible".
    • The input addresses people (input.recipient): what it sends cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an authenticated SIMcloud user asks to buy prepaid electricity for a meter already confirmed with check_electricity_meter. Confirm the meter, rand amount, reference and SMS recipient before calling. This spends wallet funds and submits an irreversible external transaction; do not automatically retry an ambiguous result.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
  • create_vas_orderUse this when an authenticated SIMcloud user asks to buy a confirmed VAS voucher.No findings

    Why it is in this group

    • The name "create_vas_order" says "create": a word for a change.
    • The description says "irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an authenticated SIMcloud user asks to buy a confirmed VAS voucher. Call list_vas_products first and use an available product and denomination. This spends wallet funds and queues an irreversible external transaction; do not automatically retry an ambiguous result.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
  • register_simcloud_userCreate a normal SIMcloud account under the authenticated account for a client application user.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a normal SIMcloud account under the authenticated account for a client application user. Confirm that the person consents to account creation and that their cell number, email and password are correct before calling. The response contains the child account API token, which must be stored securely and used only for that child account.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
  • send_smsUse this when an authenticated SIMcloud user asks to send a confirmed SMS to a South African recipient.No findings

    Why it is in this group

    • The name "send_sms" says "send": a word for sending, and what is sent cannot be taken back.
    • The description says "irreversible".
    • The input addresses people (input.recipient): what it sends cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an authenticated SIMcloud user asks to send a confirmed SMS to a South African recipient. Confirm the final recipient and message before calling. Sending is an irreversible external action and may spend wallet funds; do not automatically retry an ambiguous result.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: false
Changes things 2Claude Code: ask
  • check_electricity_meterUse this before create_electricity_order to check whether a prepaid electricity meter is supported.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this before create_electricity_order to check whether a prepaid electricity meter is supported. This does not buy electricity or spend wallet funds.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • lookup_networkUse this when the user needs to identify the South African mobile network for a number before sending airtime, data or SMS.1 finding

    Why it is in this group

    • The name "lookup_network" says "lookup": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "lookup_network" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "lookup_network" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Use this when the user needs to identify the South African mobile network for a number before sending airtime, data or SMS. The lookup is recorded in the authenticated account history.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
Only reads 9Claude Code: allow
  • get_airtime_orderUse this after create_airtime_order, or after an ambiguous create result, to fetch the authenticated account airtime order by request_id or orderno.No findings

    Why it is in this group

    • The name "get_airtime_order" says "get": a word for reading.
    Description, as the server wrote it
    Use this after create_airtime_order, or after an ambiguous create result, to fetch the authenticated account airtime order by request_id or orderno.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_data_orderUse this after create_data_order, or after an ambiguous create result, to fetch the authenticated account data order by request_id or orderno.No findings

    Why it is in this group

    • The name "get_data_order" says "get": a word for reading.
    Description, as the server wrote it
    Use this after create_data_order, or after an ambiguous create result, to fetch the authenticated account data order by request_id or orderno.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_electricity_orderUse this after create_electricity_order, or after an ambiguous create result, to fetch an authenticated account electricity order by order_id, client_reference or order_reference_i…No findings

    Why it is in this group

    • The name "get_electricity_order" says "get": a word for reading.
    Description, as the server wrote it
    Use this after create_electricity_order, or after an ambiguous create result, to fetch an authenticated account electricity order by order_id, client_reference or order_reference_id.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_sms_statusUse this after send_sms to fetch the delivery status of an authenticated account SMS by sms_id.No findings

    Why it is in this group

    • The name "get_sms_status" says "get": a word for reading.
    Description, as the server wrote it
    Use this after send_sms to fetch the delivery status of an authenticated account SMS by sms_id.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_transaction_historyUse this to retrieve read-only transaction history for the authenticated SIMcloud account across web, CSV, recurring and API airtime, data, SMS, VAS and electricity activity.No findings

    Why it is in this group

    • The name "get_transaction_history" says "get": a word for reading.
    Description, as the server wrote it
    Use this to retrieve read-only transaction history for the authenticated SIMcloud account across web, CSV, recurring and API airtime, data, SMS, VAS and electricity activity. Require a date range; optionally filter one or more services with a comma-separated type value. SMS is successful only after a delivery receipt.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_vas_orderUse this after create_vas_order, or after an ambiguous create result, to fetch an authenticated account VAS order by order_id or transaction_id.No findings

    Why it is in this group

    • The name "get_vas_order" says "get": a word for reading.
    Description, as the server wrote it
    Use this after create_vas_order, or after an ambiguous create result, to fetch an authenticated account VAS order by order_id or transaction_id.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_wallet_balanceUse this before a wallet-funded SIMcloud transaction or when the user asks for their available SIMcloud balance.No findings

    Why it is in this group

    • The name "get_wallet_balance" says "get": a word for reading.
    Description, as the server wrote it
    Use this before a wallet-funded SIMcloud transaction or when the user asks for their available SIMcloud balance. Returns the authenticated account wallet balance and does not spend funds.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_data_productsUse this before create_data_order to list the current SIMcloud data bundle products and exact sell values available for API ordering, optionally filtered by South African network.No findings

    Why it is in this group

    • The name "list_data_products" says "list": a word for reading.
    Description, as the server wrote it
    Use this before create_data_order to list the current SIMcloud data bundle products and exact sell values available for API ordering, optionally filtered by South African network.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_vas_productsUse this before create_vas_order to list active SIMcloud VAS voucher products and their available denominations.No findings

    Why it is in this group

    • The name "list_vas_products" says "list": a word for reading.
    Description, as the server wrote it
    Use this before create_vas_order to list active SIMcloud VAS voucher products and their available denominations.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http simcloud https://simcloud.co.za/api/mcp.php

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__simcloud__get_wallet_balance",
      "mcp__simcloud__get_transaction_history",
      "mcp__simcloud__get_sms_status",
      "mcp__simcloud__get_airtime_order",
      "mcp__simcloud__list_data_products",
      "mcp__simcloud__get_data_order",
      "mcp__simcloud__list_vas_products",
      "mcp__simcloud__get_vas_order",
      "mcp__simcloud__get_electricity_order"
    ],
    "ask": [
      "mcp__simcloud__lookup_network",
      "mcp__simcloud__check_electricity_meter"
    ],
    "deny": [
      "mcp__simcloud__register_simcloud_user",
      "mcp__simcloud__send_sms",
      "mcp__simcloud__create_airtime_order",
      "mcp__simcloud__create_data_order",
      "mcp__simcloud__create_vas_order",
      "mcp__simcloud__create_electricity_order"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as simcloud. Review it before you use it.