账单查询服务

一个通过Model Context Protocol (MCP)服务器从StackBill API获取账单信息的服务,适用于查询月度账单和特定日期范围的费用详情。

  • by JayaSamuthraDevi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 JayaSamuthraDevi/mcp-server

使用说明

计费服务MCP服务器

模型上下文协议(MCP)服务器,用于公开StackBill API的帐单信息。

设置

先决条件

  • Python 3.14+
  • uv 包管理器(或 pip)

安装

# Install dependencies
uv pip install -r requirements.txt

或者直接使用pip:

pip install fastmcp httpx

运行服务器(stdio传输)

此项目现在作为MCP stdio服务器运行(MCP消息通过stdin/stdout)。使用以下命令启动服务器:

python -m app.main

服务器通过标准输入/输出进行通信,旨在由支持MCP的客户端(例如,生成进程并通过stdio与MCP对话的桌面助理或工具运行器)启动。如果您以前使用过 mcp-inspector 或其他基于HTTP的工具,请注意,这些工具需要HTTP端点;对于stdio,您应该配置MCP客户端以执行上述命令。

对于Claude Desktop或接受命令的类似客户端,请使用下面“配置”部分中的配置示例将客户端指向此过程。

4.查询账单信息

在mcp检查器界面中,调用 get_billing_summary 工具与您的参数:

示例1:获取当月账单

{
  "domain_uuid": "4ca-d-823",
  "zone_uuid": "e5b0-50b-ff-8e2-f2817"
}

示例2:获取特定日期范围的账单

{
  "domain_uuid": "4ca-d-823",
  "zone_uuid": "e5b0-50b-ff-8e2-f2817",
  "from_date": "03-11-2025 00:00",
  "to_date": "20-11-2025 00:00",
  "lang": "en"
}

工具参考

get_billing_summary

获取指定日期范围的账单摘要。

参数:

  • domain_uuid (必填):您的域名UUID(例如“4ca-d-823”)
  • zone_uuid (必填):您的区域UUID(例如,“e5b0-50b-ff-8e2-f2817”)
  • from_date (可选):开始日期格式 DD-MM-YYYY HH:MM.默认为当月1日
  • to_date (可选):结束日期格式 DD-MM-YYYY HH:MM.默认为今天
  • lang (可选):语言代码(默认值:“en”)
  • auth_token (可选):用于身份验证的承载令牌或API密钥。可以是原始代币或“持有者” "

退货:

{
  "status": "success",
  "data": { /* billing data from API */ },
  "date_range": {
    "from": "03-11-2025 00:00",
    "to": "20-11-2025 00:00"
  }
}

get_usage_cost_details

获取特定区域的使用成本详细信息。

参数:

  • zone_id (必填):区域ID(例如“1”)
  • lang (可选):语言代码(默认值:“en”)
  • auth_token (可选):用于身份验证的承载令牌或API密钥。可以是原始代币或“持有者” "

退货:

{
  "status": "success",
  "data": { /* usage cost details from API */ },
  "zone_id": "1"
}

mcp检查器示例:

{
  "zone_id": "1",
  "lang": "en",
  "auth_token": "your-api-token-here"
}

运作原理

  1. 你通过mcp检查员问:“我这个月的账单是多少?”
  2. mcp检查员来电: get_billing_summary() 使用您的域和区域UUID
  3. 工具:
    • 如果未指定,则将默认日期范围设置为当月
    • 构造API请求以: http://demo.example.com/apidocs/api/usage/offeringusagereport/summaryreport
    • 传递参数: fromDate, toDate, domainUuid, zoneUuid, type, lang
    • 返回账单摘要响应

与Claude/其他人工智能助理集成

一旦在您的AI助手(Claude等)中配置了此MCP服务器,您就可以提出以下问题:

  • “我这个月的账单是多少?”
  • “显示2025年11月3日至11月20日的使用费”
  • “我目前的4ca-d-823域名账单是多少?”
  • “区域1的使用成本详细信息是什么?”
  • “显示我所在区域的成本明细”

助手将自动使用此MCP工具获取数据。

配置

要使用Claude Desktop配置此功能,请添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "billing": {
      "command": "python",
      "args": ["/path/to/main.py"]
    }
  }
}

错误处理

该工具返回结构化响应:

  • 成功:返回状态为“成功”的计费数据
  • 错误:返回状态为“error”的错误详细信息

401未经授权的错误

如果您收到401错误,API需要身份验证。使用 auth_token 参数:

{
  "zone_id": "1",
  "auth_token": "your-api-token"
}

令牌将在Authorization标头中作为Bearer令牌发送。您可以提供:

  • 只是象征: "your-token" → 成为 Authorization: Bearer your-token
  • 或预格式化: "Bearer your-token" → 按原样发送

测试

您可以直接测试端点:

curl "http://demo.example.com/apidocs/api/usage/offeringusagereport/summaryreport?fromDate=03-11-2025%2000:00&toDate=20-11-2025%2000:00&domainUuid=4ca-d-823&zoneUuid=e5b0-50b-ff-8e2-f2817&type=json&lang=en"