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.
@@ -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,5 @@
1
+ """crossborder-cost-mcp — crossborder SaaS TCO MCP Server & CLI.
2
+
3
+ Pure Python standard library. Author: CloudBench Research (MIT).
4
+ """
5
+ __version__ = "1.0.0"
@@ -0,0 +1,5 @@
1
+ import sys
2
+
3
+ if __name__ == "__main__":
4
+ from .server import main
5
+ sys.exit(main())
@@ -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,2 @@
1
+ [console_scripts]
2
+ crossborder-cost-mcp = crossborder_cost_mcp.server:main
@@ -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"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+