话费管理服务

一个基于非洲通信API的话费管理协议服务器,提供余额查询、话费充值、交易记录查询和汇总等功能。

  • by nasoma
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 nasoma/africastalking-airtime-mcp

使用说明

非洲通话时间MCP

该项目实现了 模型上下文协议(MCP)服务器 这使得与 非洲会说话的API 用于与通话时间相关的操作。它提供了一套工具,用于检查账户余额、发送通话时间、查看交易历史记录和汇总充值数据。该服务器使用SQLite数据库进行持久存储,并包括格式化非洲各国电话号码的逻辑。

主要特点

  • 查询余额:立即检索您的Africa’s Talking帐户的当前通话时间余额。
  • 发送通话时间:将通话时间加载到支持国家/地区的任何电话号码。
  • 事物日志:自动将每笔交易保存到本地SQLite数据库。
  • 交易记录:查看最近充值交易的列表。
  • 总结充值:计算最近n次充值的总金额。
  • 计算充值金额:统计特定电话号码的交易数量。
  • 电话号码格式:自动格式化电话号码以包含正确的国家代码。

安装指南

先决条件

  1. Python 3.10或更高版本:确保您安装了现代版本的Python。
  2. uv 包管理器:此项目使用 uv 用于依赖性管理。通过运行以下命令进行安装:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    

从Smithery安装

通过以下方式自动安装适用于Claude Desktop的非洲Talking Airtime服务器 史密瑟里:

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

本地设置

  1. 克隆存储库:

    git clone https://github.com/nasoma/africastalking-airtime-mcp.git
    cd africastalking-airtime-mcp
    
  2. 再进行: 使用设置虚拟环境并安装所需的软件包 uv:

    uv sync
    

使用AI工具

使用克劳德桌面

将此添加到您的 claude_desktop_config.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
      }
    }
  }
}

与鹅

鹅 如果您希望使用首选的LLM并提供API密钥,则是一个很好的选择。

  • 安装Goose。
  • 打开设置面板并添加自定义扩展(MCP服务器)。
  • 给你的分机起个名字。类型为STDIO。
  • 添加命令。保存更改。
  • 添加环境变量: username, api_key, currency_code 和 country.
  • 保存更改。

工具参考

MCP服务器公开了以下用于管理通话时间的工具:

check_balance

  • 描述:从您的非洲通话账户中检索当前通话时间余额。
  • 用法: check_balance()
  • 退货:显示账户余额的字符串(例如,“账户余额:KES 1234.00”)或错误消息。

load_airtime

  • 描述:将指定的通话时间发送到电话号码并记录交易。
  • 参数:
    • phone_number (str):收件人的电话号码。
    • amount (浮动):发送的播放时间。
    • currency_code (str):货币代码(例如,“KES”、“UGX”)。
  • 用法: load_airtime(phone_number="0712345678", amount=100.0, currency_code="KES")
  • 退货:成功时的确认消息或错误消息。

get_last_topups

  • 描述:获取最后一个 N 从数据库中提取通话时间充值交易。
  • 参数:
    • limit (int,可选):要检索的事务数。默认为3。
  • 用法: get_last_topups(limit=5)
  • 退货:列出最近交易的格式化字符串。

sum_last_n_topups

  • 描述:计算最后一个值的总和 N 充值。
  • 参数:
    • n (int,可选):要求和的事务数。默认为3。
  • 用法: sum_last_n_topups(n=5)
  • 退货:一个包含总和的字符串,如果交易有不同的货币,则会出错。

count_topups_by_number

  • 描述:统计成功充值到特定电话号码的次数。
  • 参数:
    • phone_number (str):要查询的电话号码。
  • 用法: count_topups_by_number(phone_number="0712345678")
  • 退货:给定号码的充值总数。

示例提示

以下是一些示例提示,您可以使用它们与MCP服务器进行交互:

  • 查询余额:

    • “我的非洲Talking账户余额是多少?”
    • “检查我的通话时间余额。”
  • 发送通话时间:

    • “发送100肯尼亚先令的通话时间至0712345678。”
    • “用50鲍勃充值我的手机+254712345678。”
    • “将200 UGX加载到0755123456。”
  • 查看最近的充值:

    • “显示最近3次通话时间交易。”
    • “列出我最近的5次充值。”
  • 总结最近的充值:

    • “我最近3次充值的总数是多少?”
    • “我在过去的5笔交易中花了多少钱?”
  • 计算充值金额:

    • “我给0712345678充值了多少次?”
    • “将充值金额计算到+254712345678。”

重要提示

  • 资金:确保您的非洲谈话账户有足够的资金发送通话时间。
  • 电话号码格式:电话号码会根据以下内容自动格式化 country 环境变量。
  • 数据库:SQLite数据库(airtime_transactions.db)在项目目录中自动创建。
  • 支持的型号:此MCP服务器最适合支持工具调用的模型,例如 Claude 3.7 Sonnet 或 GPT-4.1 Nano.

鸣谢

  • 非洲会说话的API:用于基础通话时间服务。看 官方文件.