URnetwork

官方

高质量VPN和代理连接

你可以用 Urnetwork MCP 做什么?

  • 使用授权码进行身份验证 — 通过 auth/code-login 将用户提供的授权码转换为可复用的 JWT。
  • 查找可用的代理位置 — 使用 network/find-locations 搜索城市、地区或国家,并通过 location_type 过滤结果。
  • 创建 HTTPS、SOCKS5 或 WireGuard 代理 — 使用 network/auth-client 及相应的 proxy_config 设置为所选位置生成代理配置。
  • 枚举某个位置的出口 IP — 通过 network/find-providers2 获取 location_id 的提供商排名列表,然后为每个提供商创建代理。

文档

欢迎使用面向智能体的 URnetwork

URnetwork 是一个去中心化隐私网络。它旨在默认保持用户匿名,并让他们访问世界上的所有内容。

人类使用应用程序(Android、iOS、Chrome)。智能体使用 API 和 MCP 技能:

智能体在使用 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。无需额外的用户名或密码。
低级套接字 / UDPSOCKS支持使用 SOCKS5 的 TCP+UDP 套接字。从 /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)过滤返回的 locations 数组,以确保 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,使用该 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>"}}}}}'