შეინახეთ ProxyHub MCP-ის შედეგები IP:Port ფაილად
წაიკითხეთ list_proxies-ის JSON პასუხი, დაამუშავეთ შეცდომები და შეინახეთ სუფთა HTTP პროქსი ფაილი, მონაცემებისა და ცოცხალი შემოწმების გამიჯვნით.
ProxyHub MCP-დან თითო ხაზზე ერთი IP:port რომ მიიღოთ, სრული JSON-RPC პასუხით დაიწყეთ და არა ჩატიდან დაკოპირებული ტექსტის ბლოკით.
- MCP კლიენტით გამოიძახეთ
list_proxiesდაtype-ს მიანიჭეთhttp. - სრული პასუხი შეინახეთ როგორც
mcp-response.json. - ქვემოთ მოცემული, სტანდარტული ბიბლიოთეკის გამოყენებით დაწერილი გადამყვანი პასუხის გვერდით შეინახეთ სახელით
mcp-to-file.py.
import json
from ipaddress import IPv4Address
from pathlib import Path
reply = json.loads(
Path("mcp-response.json").read_text(encoding="utf-8")
)
if "error" in reply:
raise RuntimeError("MCP returned a JSON-RPC error")
result = reply["result"]
if result.get("isError"):
raise RuntimeError("The proxy tool reported an error")
data = result["structuredContent"]
endpoints = []
seen = set()
for row in data["proxies"]:
if row["type"] != "http":
continue
host = str(IPv4Address(row["ip"]))
port = row["port"]
if type(port) is not int or not 1 <= port <= 65535:
raise ValueError("Invalid proxy port")
endpoint = f"{host}:{port}"
if endpoint not in seen:
seen.add(endpoint)
endpoints.append(endpoint)
text = "\n".join(endpoints)
Path("http-proxies.txt").write_text(
text + ("\n" if text else ""),
encoding="utf-8",
)
print(f"Saved {len(endpoints)} HTTP endpoints")
გაუშვით იმავე საქაღალდეში:
uv run --no-project python mcp-to-file.py
შეამოწმეთ დაბეჭდილი რაოდენობა და http-proxies.txt. თავდაპირველი პასუხი რჩება. JSON-RPC შეცდომები და ინსტრუმენტის დონის isError პასუხები შეცდომას წარმოშობს; წარმატებული პასუხი შესაბამისი ჩანაწერების გარეშე ცარიელ ფაილს წერს და ნულს აცხადებს. ინსტრუმენტის ზღვარია ერთ გამოძახებაზე 100 ჩანაწერი, ამიტომ გამოსავალი დაბრუნებული შერჩევაა და არა აუცილებლად მთელი HTTP პროქსების სია.
გადამყვანი იღებს მხოლოდ http ტიპით აღნიშნულ სტრიქონებს და ამოწმებს IPv4 სინტაქსსა და პორტის დიაპაზონს, მიმდინარე შემგროვებლის IPv4 ფორმატის შესაბამისად. სხვა პროტოკოლისთვის შეინარჩუნეთ ეს ინფორმაცია ან ცალკე ფაილი გამოიყენეთ; უბრალო შერეული IP:port ფაილი მიმღებ კლიენტს არ ეუბნება, რომელი ხელის ჩამორთმევა გამოიყენოს.
ექსპორტირებული სტრიქონი კვლავ მონაცემია. updated_at შენახული მონაცემის განახლების დროს აღნიშნავს და არა თქვენი ქსელიდან ცოცხალ მოთხოვნას. არჩეული წერტილები საჭირო დანიშნულებისკენ შეზღუდული HTTP პროქსი მოთხოვნით გამოსცადეთ. თუ MCP გამოძახება ჩავარდა, მონაცემის მიღება შეისწავლეთ; თუ მოგვიანებით ექსპორტირებული წერტილით მოთხოვნა ჩავარდა, ის ცალკე პროქსი კავშირი შეისწავლეთ.