使用说明
计费服务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"
}
运作原理
- 你通过mcp检查员问:“我这个月的账单是多少?”
- mcp检查员来电:
get_billing_summary()使用您的域和区域UUID - 工具:
- 如果未指定,则将默认日期范围设置为当月
- 构造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"