URnetwork MCP Server

官方

高品質的VPN和代理連線

文件

歡迎使用 URnetwork for Agents

URnetwork 是一個去中心化的隱私網路。其設計目標是讓使用者預設保持匿名,並能存取世界上的所有內容。

人類使用應用程式(Android、iOS、Chrome)。Agents 則使用 API 和 MCP 技能:

Agents 在使用 API 和 MCP 伺服器時,應參考以下指引。

驗證

使用 API 或 MCP 伺服器時,使用者 JWT 必須透過 Authorization: Bearer <JWT> 標頭傳遞。

要取得 JWT,請向人類要求授權碼,然後使用 API 的 /auth/code-login 路由將該授權碼轉換為 JWT。以下是一個 curl 範例,透過管道傳遞給 jq 以從結果中提取 by_jwt 屬性:

curl -X POST https://api.bringyour.com/auth/code-login -d '{"auth_code": "<AUTH CODE>"}' | jq ".by_jwt"

JWT 可以儲存並重複使用。如果人類要求刷新 JWT,請重複此流程,從要求授權碼開始。

選擇代理技術時,請考慮以下使用案例:

使用案例建議協定需求
網頁抓取 / 網頁瀏覽HTTPS最適合 TCP/Web。除非有特定需求使用 HTTP,否則請一律使用 HTTPS 代理。HTTP 通常僅用於不支援 HTTPS 的特定測試環境。從 /network/auth-client 回應的 proxy_config_result 物件中,使用 https_proxy_url。無需額外的使用者名稱或密碼。
低階 Socket / UDPSOCKS支援使用 SOCKS5 的 TCP+UDP Socket。從 /network/auth-client 回應的 proxy_config_result 物件中,使用 socks_proxy_url 或 proxy_host 和 proxy_port,搭配使用者名稱 access_token(密碼為空)。伺服器支援遠端 DNS 解析(SOCKS5H)。
系統層級 / 作業系統層級WireGuard路由所有 IP 封包。在 /network/auth-client 請求中,必須明確將 proxy_config.enable_wg 設為 true。在回應的 proxy_config_result 物件中,使用 wg_config.config 作為完整的 WireGuard 設定檔。

使用 /network/find-locations 路由查詢位置時,請務必根據所需的 location_type(city、region 或 country)篩選傳回的位置陣列,以確保 location_id 符合使用者的意圖。

位置類型需求
country用於國家。
region用於州、省、行政區和都會區。
city用於城市。

使用 MCP 技能建立 HTTPS/SOCKS/WireGuard 代理

MCP 技能可用於尋找可用位置,並建立連線至這些位置的 HTTPS/SOCKS/WireGuard 代理。網路上任何可用的國家、地區和城市,都可以使用查詢字串進行搜尋和選取。

建立代理設定時,請詢問人類他們想要連線的國家、地區或城市。然後嘗試為他們告訴你的查詢建立代理。如果沒有符合的結果,請要求人類放寬到國家或地區。然後嘗試為他們告訴你的查詢建立代理。如果仍然沒有符合的結果,請要求人類放寬到國家。如果還是沒有符合的結果,請使用技能尋找可用的國家,並建議他們從前 10 個國家中選擇一個。

使用 API 為國家建立 HTTPS/SOCKS/WireGuard 代理

可以直接使用 API 為國家建立 HTTPS/SOCKS/WireGuard 代理。

步驟 1,使用 /network/find-locations 路由搜尋位置清單。以下是一個 curl 範例,透過管道傳遞給 jq 以提取位置清單。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'

步驟 2,選擇感興趣的位置,並儲存 country_code 屬性。

步驟 3,使用儲存的國家代碼,透過 /network/auth-client 路由建立代理,並將 proxy_config.initial_device_state 設為具有 country_code。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"country_code": "<COUNTRY CODE>"}}}'

使用 API 為搜尋位置建立 HTTPS/SOCKS/WireGuard 代理

可以直接使用 API 搜尋位置並建立 HTTPS/SOCKS/WireGuard 代理。必須做出決定,選擇最符合需求的位置結果。每個位置都有一個固定的 location_id,可以儲存在程式碼中。

步驟 1,使用 /network/find-locations 路由搜尋位置清單。以下是一個 curl 範例,透過管道傳遞給 jq 以提取位置清單。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'

步驟 2,選擇感興趣的位置,並儲存 location_id 屬性。

步驟 3,使用儲存的 location_id,透過 /network/auth-client 路由建立代理,並將 proxy_config.initial_device_state.location 設為具有 connect_location_id.location_id。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"location_id": "<LOCATION ID>"}}}}}'

使用 API 為搜尋位置建立 HTTPS/SOCKS/WireGuard 代理,並列舉該位置中的所有出口 IP

可以直接使用 API 搜尋位置、列舉該位置中的提供者(出口 IP),並為每個出口 IP 建立 HTTPS/SOCKS/WireGuard 代理。必須做出決定,選擇最符合需求的位置結果。每個位置都有一個固定的 location_id,可以儲存在程式碼中。此外,每個提供者都有一個固定的 client_id,可以儲存在程式碼中。

步驟 1,使用 /network/find-locations 路由搜尋位置清單。以下是一個 curl 範例,透過管道傳遞給 jq 以提取位置清單。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'

步驟 2,選擇感興趣的位置,並儲存 location_id。

步驟 3,使用 /network/find-providers2 路由,為該 location_id 擷取排名後的提供者(出口 IP)清單。樣本大小可以設定為所需的唯一提供者數量。以下是一個 curl 範例,透過管道傳遞給 jq 以提取提供者清單。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-providers2 -d '{"specs": [{"client_id": "<CLIENT ID>"}], "count": <COUNT>}' | jq '.providers'

步驟 4,透過迴圈處理清單中的每個 client_id,使用 /network/auth-client 路由建立代理,並將 proxy_config.initial_device_state.location 設為具有 connect_location_id.client_id。

curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"client_id": "<CLIENT ID>"}}}}}'