Africa's Talking MCP by usefulapi

Read Africa's Talking balance, incoming SMS, transactions; send SMS, airtime, data and voice calls.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
84%
이름 품질
70%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (5)

  • LOWTool 'africastalking_find_airtime_transaction' name length outside 3-30 rangeafricastalking_find_airtime_transaction에서
  • LOWTool 'africastalking_send_mobile_data' name length outside 3-30 rangeafricastalking_send_mobile_data에서
  • LOWTool 'africastalking_find_mobile_data_transaction' name length outside 3-30 rangeafricastalking_find_mobile_data_transaction에서
  • LOWTool 'africastalking_get_mobile_data_wallet_balance' name length outside 3-30 rangeafricastalking_get_mobile_data_wallet_balance에서
  • LOWTool 'africastalking_get_voice_queue_status' name length outside 3-30 rangeafricastalking_get_voice_queue_status에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,479토큰 (도구 정의)
~1.6 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.94%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "africas-talking": {
      "url": "https://africas-talking.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://africas-talking.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (10)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢africastalking_get_balance

The Africa's Talking app balance (SMS/airtime wallet), e.g. {"balance": "KES 1250.0000"}. The sandbox app has no balance. GET /version1/user.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢africastalking_fetch_messages(last_received_id, short_code, keyword, limit)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "last_received_id": {
      "description": "Id of the last message already read (default 0 = from the start).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "short_code": {
      "description": "Only messages sent to this shortcode / number.",
      "type": "string",
      "maxLength": 20
    },
    "keyword": {
      "description": "Only messages that start with this keyword.",
      "type": "string",
      "maxLength": 50
    },
    "limit": {
      "description": "Most messages to return per call (default 25); `has_more` says if more are waiting.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴africastalking_send_sms(to, message, sender_id, confirm)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "to": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\+[1-9]\\d{6,14}$"
      },
      "description": "Recipients in international format, e.g. +254711000000 (max 100)."
    },
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1600,
      "description": "The SMS text (1-1600 characters; long texts are split into several billed parts)."
    },
    "sender_id": {
      "description": "Approved alphanumeric sender ID, shortcode or long-code number (e.g. +27... in South Africa); omit to use the account default.",
      "type": "string",
      "pattern": "^(?:\\+\\d{6,16}|[A-Za-z0-9 ._-]{1,16})$"
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit."
    }
  },
  "required": [
    "to",
    "message",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴africastalking_send_airtime(recipients, idempotency_key, confirm)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "recipients": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string",
            "pattern": "^\\+[1-9]\\d{6,14}$"
          },
          "currency_code": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "amount": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000,
            "description": "Amount of airtime in that currency."
          }
        },
        "required": [
          "phone_number",
          "currency_code",
          "amount"
        ]
      }
    },
    "idempotency_key": {
      "description": "Optional unique key (8-100 chars) for this send; the same key makes Africa's Talking ignore a duplicate request.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{8,100}$"
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit."
    }
  },
  "required": [
    "recipients",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢africastalking_find_airtime_transaction(transaction_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "transaction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The transaction id, e.g. ATPid_..."
    }
  },
  "required": [
    "transaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴africastalking_send_mobile_data(product_name, recipients, idempotency_key, confirm)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Name of your mobile data product in the Africa's Talking dashboard."
    },
    "recipients": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string",
            "pattern": "^\\+[1-9]\\d{6,14}$"
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 100000,
            "description": "Bundle size in `unit`."
          },
          "unit": {
            "type": "string",
            "enum": [
              "MB",
              "GB"
            ]
          },
          "validity": {
            "type": "string",
            "enum": [
              "Day",
              "Week",
              "BiWeek",
              "Month",
              "Quarterly"
            ]
          },
          "metadata": {
            "description": "Optional key-value labels stored with the transaction.",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "phone_number",
          "quantity",
          "unit",
          "validity"
        ]
      }
    },
    "idempotency_key": {
      "description": "Optional unique key (8-100 chars) for this send; the same key makes Africa's Talking ignore a duplicate request.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{8,100}$"
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit."
    }
  },
  "required": [
    "product_name",
    "recipients",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢africastalking_find_mobile_data_transaction(transaction_id)

Look up a mobile data transaction by its transactionId (from a send reply): status, product, destination and cost. GET bundles /query/transaction/find.

입력 스키마

{
  "type": "object",
  "properties": {
    "transaction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The mobile data transactionId."
    }
  },
  "required": [
    "transaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢africastalking_get_mobile_data_wallet_balance

The balance of the mobile data wallet, e.g. {"status": "Success", "balance": "KES 500.0000"}. GET bundles /query/wallet/balance.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴africastalking_make_voice_call(call_from, call_to, client_request_id, confirm)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "call_from": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$",
      "description": "Your Africa's Talking voice number to call from (international format)."
    },
    "call_to": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\+[1-9]\\d{6,14}$"
      },
      "description": "Numbers to call (max 10)."
    },
    "client_request_id": {
      "description": "Optional label passed back to your voice callback URL as clientRequestId.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,64}$"
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true. Set it only after the user has explicitly approved this exact send (recipients, text/amount); it spends account credit."
    }
  },
  "required": [
    "call_from",
    "call_to",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢africastalking_get_voice_queue_status(phone_numbers)

Number of outbound calls currently queued on each of your voice numbers. Live apps only. POST voice /queueStatus (a read: nothing is changed).

입력 스키마

{
  "type": "object",
  "properties": {
    "phone_numbers": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\+[1-9]\\d{6,14}$"
      },
      "description": "Your Africa's Talking voice numbers to check."
    }
  },
  "required": [
    "phone_numbers"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 10개