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 规范位于:https://github.com/urnetwork/connect/blob/main/api/bringyour.yml
- API 托管于:https://api.bringyour.com
- MCP 服务器托管于:https://mcp.bringyour.com
智能体在使用 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。无需额外的用户名或密码。 |
| 低级套接字 / UDP | SOCKS | 支持使用 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>"}}}}}'