trackmcp
Back to directory
nasoma

africastalking-airtime-mcp

View on GitHub

An MCP server for interacting with the Africa’s Talking Airtime service. It allows clients to topup airtime to a mobile number(s).

1 stars PythonAI & Machine Learning Updated Jul 18, 2025
africastalkingafricastalking-apiairtimemcpmcp-server

Documentation

Africa's Talking Airtime MCP

MseeP.ai Security Assessment Badge
smithery badge
Verified on MseeP

This project implements a Model Context Protocol (MCP) server that enables seamless interaction with the Africa's Talking API for airtime-related operations. It provides a suite of tools for checking account balances, sending airtime, viewing transaction history, and summarizing top-up data. The server uses an SQLite database for persistent storage and includes logic for formatting phone numbers for various African countries.

Key Features

  • Check Balance: Instantly retrieve the current airtime balance of your Africa's Talking account.
  • Send Airtime: Load airtime to any phone number in supported countries.
  • Transaction Logging: Automatically save every transaction to a local SQLite database.
  • Transaction History: View a list of the most recent top-up transactions.
  • Summarize Top-ups: Calculate the total amount of the last 'n' top-ups.
  • Count Top-ups: Count the number of transactions for a specific phone number.
  • Phone Number Formatting: Automatically formats phone numbers to include the correct country code.

Installation Guide

Prerequisites

1. Python 3.10 or higher: Ensure you have a modern version of Python installed.

2. `uv` Package Manager: This project uses `uv` for dependency management. Install it by running:

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

Installing from Smithery

To install Africa's Talking Airtime Server for Claude Desktop automatically via Smithery:

bash
npx -y @smithery/cli install @nasoma/africastalking-airtime-mcp --client claude

Local Setup

1. Clone the Repository:

bash
git clone https://github.com/nasoma/africastalking-airtime-mcp.git
   cd africastalking-airtime-mcp

2. Install Dependencies:

Set up the virtual environment and install the required packages using `uv`:

bash
uv sync

Using with AI Tools

With Claude Desktop

Add this to your `claude_desktop_config.json`:

json
{
  "mcpServers": {
    "Airtime Server": {
      "command": "{{PATH_TO_UV}}", // Run `which uv` and place the output here
      "args": [
        "--directory",
        "{{PATH_TO_PROJECT}}", // cd into the repo, run `pwd` and enter the output here
        "run",
        "main.py"
      ],
      "env": {
        "username": "your_africastalking_username",
        "api_key": "your_africastalking_api_key",
        "country":"your_country", # e.g kenya, uganda, dr congo, rwanda, south africa
        "currency_code":"currency-code"  # e.g. KES, UGX, NGN
      }
    }
  }
}

With Goose

Goose is a good option if you want to use your preferred LLM and supply an API key.

  • Install Goose.
  • Open the settings panel and add a custom extension (MCP Server).
  • Give your extension a name. Type is STDIO.
  • Add the command. Save changes.
Goose Demo
  • Add your environment variables: `username`, `api_key`, `currency_code` and `country`.
  • Save changes.
Goose Demo2

Tool Reference

The MCP server exposes the following tools for managing airtime:

`check_balance`

  • Description: Retrieves the current airtime balance from your Africa's Talking account.
  • Usage: `check_balance()`
  • Returns: A string displaying the account balance (e.g., "Account Balance: KES 1234.00") or an error message.

`load_airtime`

  • Description: Sends a specified amount of airtime to a phone number and records the transaction.
  • Arguments:
    • `phone_number` (str): The recipient's phone number.
    • `amount` (float): The amount of airtime to send.
    • `currency_code` (str): The currency code (e.g., "KES", "UGX").
  • Usage: `load_airtime(phone_number="0712345678", amount=100.0, currency_code="KES")`
  • Returns: A confirmation message upon success or an error message.

`get_last_topups`

  • Description: Fetches the last `N` airtime top-up transactions from the database.
  • Arguments:
    • `limit` (int, optional): The number of transactions to retrieve. Defaults to 3.
  • Usage: `get_last_topups(limit=5)`
  • Returns: A formatted string listing the recent transactions.

`sum_last_n_topups`

  • Description: Calculates the sum of the last `N` top-ups.
  • Arguments:
    • `n` (int, optional): The number of transactions to sum. Defaults to 3.
  • Usage: `sum_last_n_topups(n=5)`
  • Returns: A string with the total sum, or an error if transactions have different currencies.

`count_topups_by_number`

  • Description: Counts the number of successful top-ups to a specific phone number.
  • Arguments:
    • `phone_number` (str): The phone number to query.
  • Usage: `count_topups_by_number(phone_number="0712345678")`
  • Returns: The total count of top-ups for the given number.

Example Prompts

Here are some example prompts you can use to interact with the MCP server:

  • Check Balance:
    • "What is my Africa's Talking account balance?"
    • "Check my airtime balance."
  • Send Airtime:
    • "Send 100 KES airtime to 0712345678."
    • "Top up my phone +254712345678 with 50 bob."
    • "Load 200 UGX to 0755123456."
  • View Recent Top-ups:
    • "Show me the last 3 airtime transactions."
    • "List my 5 most recent top-ups."
  • Sum Recent Top-ups:
    • "What is the total of my last 3 top-ups?"
    • "How much have I spent in my last 5 transactions?"
  • Count Top-ups:
    • "How many times have I topped up 0712345678?"
    • "Count the top-ups to +254712345678."

Important Notes

  • Funding: Ensure your Africa's Talking account has sufficient funds to send airtime.
  • Phone Number Formatting: Phone numbers are automatically formatted based on the `country` environment variable.
  • Database: The SQLite database (`airtime_transactions.db`) is automatically created in the project directory.
  • Supported Models: This MCP server works best with models that support tool calling, such as `Claude 3.7 Sonnet` or `GPT-4.1 Nano`.

Credits

Frequently asked questions

What is africastalking-airtime-mcp?

africastalking-airtime-mcp is An MCP server for interacting with the Africa’s Talking Airtime service. It allows clients to topup airtime to a mobile number(s).

How do I install africastalking-airtime-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is africastalking-airtime-mcp open source?

Yes — it is hosted on GitHub at https://github.com/nasoma/africastalking-airtime-mcp and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP