Africa's Talking Airtime MCP
Ce projet met en œuvre un serveur MCP (Model Context Protocol) pour gérer les transactions de temps d'antenne à l'aide de l'API d'Africa's Talking. Il fournit un ensemble d'outils permettant de vérifier le solde du compte, d'envoyer du temps d'antenne, de visualiser les transactions de rechargement récentes, d'additionner les montants des recharges récentes et de compter les recharges pour un numéro de téléphone spécifique. L'application utilise SQLite pour stocker les données de transaction et prend en charge les pays africains supportés par le service de temps d'antenne d'Africa's Talking avec un formatage correct des numéros de téléphone.
Description de l'application
Le serveur MCP d'Africa's Talking Air time s'intègre à l'API d'Africa's Talking Airtime pour faciliter les transferts de temps d'antenne. Les principales caractéristiques sont les suivantes
- Envoi de temps d'antenne à des numéros de téléphone spécifiés.
- Stockage des détails de la transaction dans une base de données SQLite.
- Récupération et résumé de l'historique des transactions.
- Vérification du solde du compte sur Africa's Talking.
L'application est compatible avec les pays où le service de temps d'antenne d'Africa's Talking est pris en charge.
Installation de l'application
Installation via Smithery
Pour installer Africa's Talking Airtime Server pour Claude Desktop automatiquement via Smithery:
npx -y @smithery/cli install @nasoma/africastalking-airtime-mcp --client claude
Pré-requis
Python 3.10 ou supérieur
curl -LsSf https://astral.sh/uv/install.sh | sh
Suivez ces étapes pour configurer et exécuter le projet localement :
- Clonez le dépôt :
git clone https://github.com/nasoma/africastalking-airtime-mcp.git cd africastalking-airtime-mcp
- Configurez l'environnement virtuel et installez les dépendances en exécutant :
uv sync
- Vous êtes prêt à partir !
Utilisation avec les outils d'IA
Avec Claude Desktop
Ajoutez ceci à votre fichier claude_desktop_config.json
:
{ "mcpServers" : { "Airtime Server" : { "command" : "{{PATH_TO_UV}}", // Exécutez `which uv` et placez la sortie ici "args" : ["--directory", "{{PATH_TO_PROJECT}}", // cd dans le repo, exécuter `pwd` et entrer la sortie ici "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 } } }
Avec Goose
Goose est une bonne option si vous souhaitez utiliser votre LLM préféré et fournir une clé API.
- Installez Goose.
- Ouvrez le panneau de configuration et ajoutez une extension personnalisée (MCP Server).
- Donnez un nom à votre extension. Le type est STDIO.
- Ajoutez la commande. Enregistrez les modifications
- Ajoutez vos variables d'environnement :
username
,api_key
,currency_code
etcountry
. - Enregistrez les modifications.
Descriptions des outils
Le MCP fournit les outils suivants pour gérer les transactions de temps de communication :
check_balance:
- Description: Récupère le solde actuel de temps d'antenne pour le compte Talking de votre Afrique.
- Utilisation:
check_balance()
- Résultat: Renvoie le solde du compte (par exemple, " Account Balance : KES 1234.00 ") ou un message d'erreur si le solde ne peut être obtenu.
load_airtime:
- Description: Envoie du temps d'antenne à un numéro de téléphone spécifié et enregistre la transaction dans la base de données.
- Paramètres
phone_number
: Le numéro de téléphone du destinataire (par exemple, "0712345678" ou "+254712345678").montant
: Le montant de temps de communication à envoyer (par exemple, 100).code_devise
: Le code de la devise (par exemple, "KES").
- Utilisation:
load_airtime("0712345678", 100.00, "KES")
- Sortie: Confirme le succès (par exemple, "Successfully sent KES 100.00 airtime to +254712345678") ou signale une erreur.
get_last_topups:
- Description: Récupère les
N
dernières transactions de rechargement de temps de communication dans la base de données. - Paramètres
limit
: Nombre de transactions à récupérer (par défaut : 3).
- Utilisation:
get_last_topups(3)
- Résultat: Liste les transactions récentes (par exemple, "Last 3 top-up transactions : ...") ou indique qu'aucune transaction n'a été trouvée.
- Description: Récupère les
sum_last_n_topups:
- Description: Calcule le montant total des
N
derniers rechargements réussis, en s'assurant qu'ils utilisent la même devise. - Paramètres
n
: Nombre de transactions à additionner (par défaut : 3).
- Utilisation:
sum_last_n_topups(3)
- Résultat: Renvoie la somme (par exemple, "Sum of last 3 successful top-ups : KES 300.00") ou une erreur si les devises diffèrent.
- Description: Calcule le montant total des
count_topups_by_number:
- Description: Compte le nombre de recharges réussies vers un numéro de téléphone spécifique.
- Paramètres
numéro_de_téléphone
: Le numéro de téléphone à interroger (par exemple, "0712345678").
- Usage:
count_topups_by_number("0712345678")
- Résultat: Renvoie le nombre (par exemple, "Number of successful top-ups to +254712345678 : 5") ou une erreur.
Exemples d'invites
Voici des exemples de questions ou de commandes que les utilisateurs peuvent poser à l'IA pour interagir avec le MCP de temps d'antenne parlant de l'Afrique, en fonction des outils disponibles :
Vérifier le solde du compte
- Quel est le solde de mon compte Africa's Talking ?
- Pouvez-vous me montrer le solde actuel ?
- Vérifier mon solde de temps d'antenne.
Envoyer du temps d'antenne
- Envoyez 100 KES de temps d'antenne à 0712345678.
- Rechargez mon 0712345678 avec 60.
- Chargez 50 NGN sur +2348012345678.
- Pouvez-vous recharger 200 UGX sur 0755123456 ?
Voir les recharges récentes
- Affichez les 3 dernières transactions de temps de communication.
- Quels sont mes rechargements les plus récents ?
- Listez les 5 derniers rechargements de temps de communication.
Somme des rechargements récents
- Quel est le total de mes 3 derniers rechargements ?
- Additionnez les montants de mes 4 dernières transactions de temps de communication.
- Quel est le montant de mes 5 dernières recharges ?
Compter les recharges par numéro de téléphone
- Combien de fois ai-je rechargé 0712345678 ?
- Comptez les recharges jusqu'à +254712345678.
- Dites-moi combien de recharges ont été effectuées avec succès vers 0755123456.
Notes
- Assurez-vous que votre compte Africa's Talking est approvisionné pour envoyer du temps d'antenne.
- Les numéros de téléphone sont automatiquement formatés en fonction de la variable
pays
définie dans le client ou dansclaude_desktop_config.json.
- La base de données SQLite
(airtime_transactions.db
) est créée dans le répertoire du projet lors de l'initialisation. - Fonctionne mieux avec les modèles qui supportent l'appel d'outil, par exemple
Claude 3.7 Sonnet
. Si vous êtes soucieux du prix,GPT-4.1 Nano
est une bonne option, moins chère, lorsqu'elle est utilisée avec des clients comme Goose.
🙏 Crédits
- Africa's Talking API Africa's Talking Documentation.