crossborder-cost-mcp 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- crossborder_cost_mcp-1.0.1/PKG-INFO +45 -0
- crossborder_cost_mcp-1.0.1/README.md +33 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp/__init__.py +5 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp/__main__.py +5 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp/server.py +208 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp.egg-info/PKG-INFO +45 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp.egg-info/SOURCES.txt +10 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp.egg-info/dependency_links.txt +1 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp.egg-info/entry_points.txt +2 -0
- crossborder_cost_mcp-1.0.1/crossborder_cost_mcp.egg-info/top_level.txt +1 -0
- crossborder_cost_mcp-1.0.1/pyproject.toml +23 -0
- crossborder_cost_mcp-1.0.1/setup.cfg +4 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: crossborder-cost-mcp
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: 跨境出海多开指纹浏览器 / 云手机 TikTok 矩阵 / 住宅代理成本对账 MCP Server 与 CLI
|
|
5
|
+
Author: CloudBench Research
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://cbcost.mybskm.top/
|
|
8
|
+
Project-URL: Repository, https://github.com/cloudbench-labs/crossborder-cost-mcp.git
|
|
9
|
+
Keywords: mcp,model-context-protocol,adspower,morelogin,duoplus,lisahost,tiktok-matrix,crossborder-saas,antidetect-browser
|
|
10
|
+
Requires-Python: >=3.8
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
# crossborder-cost-mcp (PyPI)
|
|
14
|
+
|
|
15
|
+
**Author: CloudBench Research** · MIT
|
|
16
|
+
主站: https://cbcost.mybskm.top/
|
|
17
|
+
|
|
18
|
+
## 中文
|
|
19
|
+
|
|
20
|
+
纯 Python 标准库实现的跨境出海成本对账 MCP Server(STDIO JSON-RPC 2.0)+ CLI。
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
uvx crossborder-cost-mcp # STDIO MCP 启动
|
|
24
|
+
uvx crossborder-cost-mcp --cli # CLI 对账表
|
|
25
|
+
pip install crossborder-cost-mcp && crossborder-cost-mcp --cli
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### MCP 配置示例
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"crossborder-cost": {
|
|
34
|
+
"command": "uvx",
|
|
35
|
+
"args": ["crossborder-cost-mcp"]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
工具:`calculate_antidetect_browser_tco`(AdsPower vs MoreLogin vs 比特浏览器)、`calculate_cloudphone_matrix_tco`(DuoPlus 云手机矩阵)、`calculate_static_isp_proxy_tco`(丽萨双 ISP vs 轮换住宅代理)。跳板: https://cbcost.mybskm.top/go/adspower 等。
|
|
42
|
+
|
|
43
|
+
## English
|
|
44
|
+
|
|
45
|
+
Zero-dependency Python MCP Server + CLI benchmarking antidetect browsers, cloud phone TikTok farms and static ISP proxies. Install via `uvx crossborder-cost-mcp` or `pip install crossborder-cost-mcp`. Site: https://cbcost.mybskm.top/
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# crossborder-cost-mcp (PyPI)
|
|
2
|
+
|
|
3
|
+
**Author: CloudBench Research** · MIT
|
|
4
|
+
主站: https://cbcost.mybskm.top/
|
|
5
|
+
|
|
6
|
+
## 中文
|
|
7
|
+
|
|
8
|
+
纯 Python 标准库实现的跨境出海成本对账 MCP Server(STDIO JSON-RPC 2.0)+ CLI。
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
uvx crossborder-cost-mcp # STDIO MCP 启动
|
|
12
|
+
uvx crossborder-cost-mcp --cli # CLI 对账表
|
|
13
|
+
pip install crossborder-cost-mcp && crossborder-cost-mcp --cli
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### MCP 配置示例
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"mcpServers": {
|
|
21
|
+
"crossborder-cost": {
|
|
22
|
+
"command": "uvx",
|
|
23
|
+
"args": ["crossborder-cost-mcp"]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
工具:`calculate_antidetect_browser_tco`(AdsPower vs MoreLogin vs 比特浏览器)、`calculate_cloudphone_matrix_tco`(DuoPlus 云手机矩阵)、`calculate_static_isp_proxy_tco`(丽萨双 ISP vs 轮换住宅代理)。跳板: https://cbcost.mybskm.top/go/adspower 等。
|
|
30
|
+
|
|
31
|
+
## English
|
|
32
|
+
|
|
33
|
+
Zero-dependency Python MCP Server + CLI benchmarking antidetect browsers, cloud phone TikTok farms and static ISP proxies. Install via `uvx crossborder-cost-mcp` or `pip install crossborder-cost-mcp`. Site: https://cbcost.mybskm.top/
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"""crossborder-cost-mcp server: STDIO JSON-RPC 2.0 MCP + --cli mode.
|
|
2
|
+
|
|
3
|
+
Pure Python standard library (sys, json). Author: CloudBench Research (MIT).
|
|
4
|
+
"""
|
|
5
|
+
import json
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
VERSION = "1.0.1"
|
|
9
|
+
SITE = "https://cbcost.mybskm.top/"
|
|
10
|
+
|
|
11
|
+
LINKS = {
|
|
12
|
+
"adspower": "https://cbcost.mybskm.top/go/adspower",
|
|
13
|
+
"morelogin": "https://cbcost.mybskm.top/go/morelogin",
|
|
14
|
+
"bitbrowser": "https://cbcost.mybskm.top/go/bitbrowser",
|
|
15
|
+
"duoplus": "https://coding.mybskm.top/go/duoplus",
|
|
16
|
+
"lisahost": "https://coding.mybskm.top/go/lisahost",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def calculate_antidetect_browser_tco(args=None):
|
|
21
|
+
args = args or {}
|
|
22
|
+
profiles = max(10, int(args.get("profiles") or 100))
|
|
23
|
+
seats = max(1, int(args.get("seats") or 3))
|
|
24
|
+
diy_infra, diy_incident = 450.0, 620.0
|
|
25
|
+
rows = []
|
|
26
|
+
for vendor, usd in (
|
|
27
|
+
("AdsPower", 49 + seats * 29),
|
|
28
|
+
("MoreLogin", 39 + seats * 25),
|
|
29
|
+
("BitBrowser", 35 + seats * 22),
|
|
30
|
+
):
|
|
31
|
+
rows.append({
|
|
32
|
+
"vendor": vendor,
|
|
33
|
+
"usd_monthly": usd,
|
|
34
|
+
"usd_per_profile_per_month": round(usd / profiles, 3),
|
|
35
|
+
"usd_annual": usd * 12,
|
|
36
|
+
})
|
|
37
|
+
return {
|
|
38
|
+
"benchmark": "antidetect-team-tco-2026",
|
|
39
|
+
"inputs": {"profiles": profiles, "seats": seats},
|
|
40
|
+
"rows": rows,
|
|
41
|
+
"diy_fleet_baseline": {
|
|
42
|
+
"usd_monthly_infra": diy_infra,
|
|
43
|
+
"usd_monthly_incidents": diy_incident,
|
|
44
|
+
"usd_monthly": diy_infra + diy_incident,
|
|
45
|
+
"failure_modes": ["webgl/canvas leak linking profiles", "chrome OOM on 200 tabs", "proxy pool contention"],
|
|
46
|
+
},
|
|
47
|
+
"actions": {"adspower": LINKS["adspower"], "morelogin": LINKS["morelogin"], "bitbrowser": LINKS["bitbrowser"]},
|
|
48
|
+
"interactive_site": SITE,
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def calculate_cloudphone_matrix_tco(args=None):
|
|
53
|
+
args = args or {}
|
|
54
|
+
devices = max(5, int(args.get("devices") or 50))
|
|
55
|
+
unit = 0.36 # DuoPlus 每台/日折算
|
|
56
|
+
cloud_monthly = round(devices * unit * 30, 2)
|
|
57
|
+
# 基线: 海外实体机房真机 + 漫游卡池 (50台基准 850 USD/mo, 即 17 USD/台/月)
|
|
58
|
+
real_monthly = devices * 17
|
|
59
|
+
return {
|
|
60
|
+
"benchmark": "cloudphone-tiktok-matrix-2026",
|
|
61
|
+
"inputs": {"devices": devices},
|
|
62
|
+
"duoplus": {"usd_monthly": cloud_monthly, "usd_per_device": round(cloud_monthly / devices, 2)},
|
|
63
|
+
"real_phone_fleet": {"usd_monthly": real_monthly, "baseline": "海外实体机房真机+漫游卡池"},
|
|
64
|
+
"savings": {
|
|
65
|
+
"usd_monthly_vs_real": round(real_monthly - cloud_monthly, 2),
|
|
66
|
+
"pct": max(0.0, round((real_monthly - cloud_monthly) / real_monthly * 100, 1)),
|
|
67
|
+
},
|
|
68
|
+
"action": LINKS["duoplus"],
|
|
69
|
+
"interactive_site": SITE,
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def calculate_static_isp_proxy_tco(args=None):
|
|
74
|
+
args = args or {}
|
|
75
|
+
gb = max(10, int(args.get("monthly_gb") or 500))
|
|
76
|
+
rotating = gb * 12.5
|
|
77
|
+
static_isp_monthly = 29
|
|
78
|
+
units = max(1, -(-gb // 1000))
|
|
79
|
+
static_cost = units * static_isp_monthly
|
|
80
|
+
return {
|
|
81
|
+
"benchmark": "static-isp-proxy-tco-2026",
|
|
82
|
+
"inputs": {"monthly_gb": gb},
|
|
83
|
+
"rotating_residential": {"usd_monthly": rotating, "usd_per_gb": 12.5},
|
|
84
|
+
"static_isp_vps": {
|
|
85
|
+
"usd_monthly": static_cost,
|
|
86
|
+
"units_needed": units,
|
|
87
|
+
"vendor": "LisaHost dual-ISP residential",
|
|
88
|
+
"advantage": "IP 归属稳定, 平台风控通过率高, 长会话不掉线",
|
|
89
|
+
},
|
|
90
|
+
"savings": {
|
|
91
|
+
"usd_monthly": round(rotating - static_cost, 2),
|
|
92
|
+
"usd_annual": round((rotating - static_cost) * 12, 2),
|
|
93
|
+
},
|
|
94
|
+
"action": LINKS["lisahost"],
|
|
95
|
+
"interactive_site": SITE,
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
TOOLS = [
|
|
100
|
+
{
|
|
101
|
+
"name": "calculate_antidetect_browser_tco",
|
|
102
|
+
"description": "Compare AdsPower vs MoreLogin vs BitBrowser team seats against a DIY fingerprint VM fleet.",
|
|
103
|
+
"inputSchema": {"type": "object", "properties": {"profiles": {"type": "number"}, "seats": {"type": "number"}}},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "calculate_cloudphone_matrix_tco",
|
|
107
|
+
"description": "Calculate DuoPlus cloud phone batch farming cost vs real-phone TikTok matrix fleet.",
|
|
108
|
+
"inputSchema": {"type": "object", "properties": {"devices": {"type": "number"}}},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "calculate_static_isp_proxy_tco",
|
|
112
|
+
"description": "Calculate LisaHost dual-ISP static residential cost vs rotating residential proxies per GB.",
|
|
113
|
+
"inputSchema": {"type": "object", "properties": {"monthly_gb": {"type": "number", "default": 500}}},
|
|
114
|
+
},
|
|
115
|
+
]
|
|
116
|
+
|
|
117
|
+
HANDLERS = {
|
|
118
|
+
"calculate_antidetect_browser_tco": calculate_antidetect_browser_tco,
|
|
119
|
+
"calculate_cloudphone_matrix_tco": calculate_cloudphone_matrix_tco,
|
|
120
|
+
"calculate_static_isp_proxy_tco": calculate_static_isp_proxy_tco,
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def _send(obj):
|
|
125
|
+
sys.stdout.write(json.dumps(obj, ensure_ascii=False) + "\n")
|
|
126
|
+
sys.stdout.flush()
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def serve():
|
|
130
|
+
for raw in sys.stdin:
|
|
131
|
+
raw = raw.strip()
|
|
132
|
+
if not raw:
|
|
133
|
+
continue
|
|
134
|
+
try:
|
|
135
|
+
msg = json.loads(raw)
|
|
136
|
+
except ValueError:
|
|
137
|
+
continue
|
|
138
|
+
msg_id, method, params = msg.get("id"), msg.get("method"), msg.get("params") or {}
|
|
139
|
+
if method == "initialize":
|
|
140
|
+
_send({"jsonrpc": "2.0", "id": msg_id, "result": {
|
|
141
|
+
"protocolVersion": params.get("protocolVersion", "2024-11-05"),
|
|
142
|
+
"capabilities": {"tools": {}},
|
|
143
|
+
"serverInfo": {"name": "crossborder-cost-mcp", "version": VERSION},
|
|
144
|
+
}})
|
|
145
|
+
elif method == "notifications/initialized":
|
|
146
|
+
pass
|
|
147
|
+
elif method == "ping":
|
|
148
|
+
_send({"jsonrpc": "2.0", "id": msg_id, "result": {}})
|
|
149
|
+
elif method == "tools/list":
|
|
150
|
+
_send({"jsonrpc": "2.0", "id": msg_id, "result": {"tools": TOOLS}})
|
|
151
|
+
elif method == "tools/call":
|
|
152
|
+
handler = HANDLERS.get(params.get("name"))
|
|
153
|
+
if not handler:
|
|
154
|
+
_send({"jsonrpc": "2.0", "id": msg_id,
|
|
155
|
+
"error": {"code": -32602, "message": "Unknown tool: %s" % params.get("name")}})
|
|
156
|
+
continue
|
|
157
|
+
result = handler(params.get("arguments"))
|
|
158
|
+
_send({"jsonrpc": "2.0", "id": msg_id, "result": {
|
|
159
|
+
"content": [{"type": "text", "text": json.dumps(result, ensure_ascii=False, indent=2)}],
|
|
160
|
+
"structuredContent": result,
|
|
161
|
+
}})
|
|
162
|
+
elif msg_id is not None:
|
|
163
|
+
_send({"jsonrpc": "2.0", "id": msg_id,
|
|
164
|
+
"error": {"code": -32601, "message": "Method not found: %s" % method}})
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def cli(argv=None):
|
|
168
|
+
argv = argv if argv is not None else sys.argv[1:]
|
|
169
|
+
if "--cli" in argv:
|
|
170
|
+
argv = [a for a in argv if a != "--cli"]
|
|
171
|
+
if "--tool" in argv:
|
|
172
|
+
i = argv.index("--tool")
|
|
173
|
+
tool = argv[i + 1] if i + 1 < len(argv) else "all"
|
|
174
|
+
del argv[i:i + 2]
|
|
175
|
+
else:
|
|
176
|
+
tool = "all"
|
|
177
|
+
r1 = calculate_antidetect_browser_tco({"profiles": 100, "seats": 3})
|
|
178
|
+
r2 = calculate_cloudphone_matrix_tco({"devices": 50})
|
|
179
|
+
r3 = calculate_static_isp_proxy_tco({"monthly_gb": 500})
|
|
180
|
+
if tool == "calculate_antidetect_browser_tco":
|
|
181
|
+
print(json.dumps(r1, ensure_ascii=False, indent=2))
|
|
182
|
+
elif tool == "calculate_cloudphone_matrix_tco":
|
|
183
|
+
print(json.dumps(r2, ensure_ascii=False, indent=2))
|
|
184
|
+
elif tool == "calculate_static_isp_proxy_tco":
|
|
185
|
+
print(json.dumps(r3, ensure_ascii=False, indent=2))
|
|
186
|
+
else:
|
|
187
|
+
print("== 指纹浏览器团队席 TCO (100 profiles / 3 seats) ==")
|
|
188
|
+
for r in r1["rows"]:
|
|
189
|
+
print("- %s: $%s/mo (每环境 $%s/mo)" % (r["vendor"], r["usd_monthly"], r["usd_per_profile_per_month"]))
|
|
190
|
+
print("AdsPower → %s | MoreLogin → %s" % (LINKS["adspower"], LINKS["morelogin"]))
|
|
191
|
+
print("DIY 自建基线: $%s/mo" % r1["diy_fleet_baseline"]["usd_monthly"])
|
|
192
|
+
print("\n== 云手机 TikTok 矩阵 (50 devices) ==")
|
|
193
|
+
print("- DuoPlus: $%s/mo vs 真机 $%s/mo (省 %s%%) → %s" % (
|
|
194
|
+
r2["duoplus"]["usd_monthly"], r2["real_phone_fleet"]["usd_monthly"],
|
|
195
|
+
r2["savings"]["pct"], r2["action"]))
|
|
196
|
+
print("\n== 静态 ISP 代理 (500 GB/月) ==")
|
|
197
|
+
print("- 轮换住宅: $%s/mo vs 静态ISP VPS: $%s/mo (年省 $%s) → %s" % (
|
|
198
|
+
r3["rotating_residential"]["usd_monthly"], r3["static_isp_vps"]["usd_monthly"],
|
|
199
|
+
r3["savings"]["usd_annual"], r3["action"]))
|
|
200
|
+
print("主站:", SITE)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def main():
|
|
204
|
+
if "--cli" in sys.argv[1:]:
|
|
205
|
+
cli()
|
|
206
|
+
else:
|
|
207
|
+
serve()
|
|
208
|
+
return 0
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: crossborder-cost-mcp
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: 跨境出海多开指纹浏览器 / 云手机 TikTok 矩阵 / 住宅代理成本对账 MCP Server 与 CLI
|
|
5
|
+
Author: CloudBench Research
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://cbcost.mybskm.top/
|
|
8
|
+
Project-URL: Repository, https://github.com/cloudbench-labs/crossborder-cost-mcp.git
|
|
9
|
+
Keywords: mcp,model-context-protocol,adspower,morelogin,duoplus,lisahost,tiktok-matrix,crossborder-saas,antidetect-browser
|
|
10
|
+
Requires-Python: >=3.8
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
# crossborder-cost-mcp (PyPI)
|
|
14
|
+
|
|
15
|
+
**Author: CloudBench Research** · MIT
|
|
16
|
+
主站: https://cbcost.mybskm.top/
|
|
17
|
+
|
|
18
|
+
## 中文
|
|
19
|
+
|
|
20
|
+
纯 Python 标准库实现的跨境出海成本对账 MCP Server(STDIO JSON-RPC 2.0)+ CLI。
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
uvx crossborder-cost-mcp # STDIO MCP 启动
|
|
24
|
+
uvx crossborder-cost-mcp --cli # CLI 对账表
|
|
25
|
+
pip install crossborder-cost-mcp && crossborder-cost-mcp --cli
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### MCP 配置示例
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"crossborder-cost": {
|
|
34
|
+
"command": "uvx",
|
|
35
|
+
"args": ["crossborder-cost-mcp"]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
工具:`calculate_antidetect_browser_tco`(AdsPower vs MoreLogin vs 比特浏览器)、`calculate_cloudphone_matrix_tco`(DuoPlus 云手机矩阵)、`calculate_static_isp_proxy_tco`(丽萨双 ISP vs 轮换住宅代理)。跳板: https://cbcost.mybskm.top/go/adspower 等。
|
|
42
|
+
|
|
43
|
+
## English
|
|
44
|
+
|
|
45
|
+
Zero-dependency Python MCP Server + CLI benchmarking antidetect browsers, cloud phone TikTok farms and static ISP proxies. Install via `uvx crossborder-cost-mcp` or `pip install crossborder-cost-mcp`. Site: https://cbcost.mybskm.top/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
crossborder_cost_mcp/__init__.py
|
|
4
|
+
crossborder_cost_mcp/__main__.py
|
|
5
|
+
crossborder_cost_mcp/server.py
|
|
6
|
+
crossborder_cost_mcp.egg-info/PKG-INFO
|
|
7
|
+
crossborder_cost_mcp.egg-info/SOURCES.txt
|
|
8
|
+
crossborder_cost_mcp.egg-info/dependency_links.txt
|
|
9
|
+
crossborder_cost_mcp.egg-info/entry_points.txt
|
|
10
|
+
crossborder_cost_mcp.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
crossborder_cost_mcp
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "crossborder-cost-mcp"
|
|
7
|
+
version = "1.0.1"
|
|
8
|
+
description = "跨境出海多开指纹浏览器 / 云手机 TikTok 矩阵 / 住宅代理成本对账 MCP Server 与 CLI"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "CloudBench Research" }]
|
|
13
|
+
keywords = ["mcp", "model-context-protocol", "adspower", "morelogin", "duoplus", "lisahost", "tiktok-matrix", "crossborder-saas", "antidetect-browser"]
|
|
14
|
+
|
|
15
|
+
[project.urls]
|
|
16
|
+
Homepage = "https://cbcost.mybskm.top/"
|
|
17
|
+
Repository = "https://github.com/cloudbench-labs/crossborder-cost-mcp.git"
|
|
18
|
+
|
|
19
|
+
[project.scripts]
|
|
20
|
+
crossborder-cost-mcp = "crossborder_cost_mcp.server:main"
|
|
21
|
+
|
|
22
|
+
[tool.setuptools]
|
|
23
|
+
packages = ["crossborder_cost_mcp"]
|