URnetwork MCP Server

oficial

Conexões VPN e Proxy de alta qualidade

Documentação

Bem-vindo ao URnetwork para Agentes

URnetwork é uma rede de privacidade descentralizada. Ela foi projetada para manter os usuários anônimos por padrão e dar a eles acesso a todo o conteúdo do mundo.

Humanos usam os aplicativos (Android, iOS, Chrome). Agentes usam a API e as habilidades MCP:

Agentes devem considerar as orientações abaixo ao usar a API e o servidor MCP.

Autenticação

Ao usar a API ou o servidor MCP, o JWT do usuário deve ser passado em um cabeçalho Authorization: Bearer <JWT>.

Para obter o JWT, peça ao humano um código de autenticação e, em seguida, converta esse código de autenticação em um JWT usando a rota /auth/code-login da API. Um exemplo de curl está abaixo, canalizado para jq para extrair a propriedade by_jwt do resultado:

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

O JWT pode ser armazenado e reutilizado. Se o humano solicitar a atualização do JWT, repita o processo começando por pedir um código de autenticação.

Ao escolher uma tecnologia de proxy, considere os seguintes casos de uso:

Caso de UsoProtocolo RecomendadoRequisito
Scraping / Navegação WebHTTPSMelhor para TCP/Web. Sempre use proxy HTTPS, a menos que haja uma necessidade específica de usar HTTP. HTTP geralmente só é necessário para ambientes de teste específicos que não suportam HTTPS. Da resposta de /network/auth-client, dentro do objeto proxy_config_result, use o https_proxy_url. Nenhum nome de usuário ou senha adicional é necessário.
Sockets de Baixo Nível / UDPSOCKSSuporta sockets TCP+UDP com SOCKS5. Da resposta de /network/auth-client, dentro do objeto proxy_config_result, use o socks_proxy_url ou proxy_host e proxy_port, com o nome de usuário access_token (senha vazia). O servidor suporta resolução remota de DNS (SOCKS5H).
Nível de Sistema / SOWireGuardRoteia todos os pacotes IP. Na requisição /network/auth-client, proxy_config.enable_wg deve ser explicitamente definido como true. Na resposta, dentro do objeto proxy_config_result, use o wg_config.config como o arquivo de configuração completo do WireGuard.

Ao usar a rota /network/find-locations para consultar localizações, sempre filtre o array de localizações retornado pelo location_type desejado (city, region ou country) para garantir que o location_id corresponda à intenção do usuário.

Tipo de LocalizaçãoRequisito
countryPara países.
regionPara estados, províncias, regiões administrativas e áreas metropolitanas.
cityPara cidades.

Usando a habilidade MCP para criar um proxy HTTPS/SOCKS/WireGuard

A habilidade MCP pode ser usada para encontrar localizações disponíveis e criar um proxy HTTPS/SOCKS/WireGuard para essas localizações. Qualquer país, região e cidade disponível na rede pode ser pesquisado e selecionado usando uma string de consulta.

Ao criar uma configuração de proxy, pergunte ao humano para qual país, região ou cidade ele deseja se conectar. Em seguida, tente criar um proxy para a consulta que ele informar. Se não houver correspondências, peça ao humano para ampliar para um país ou região. Então tente criar um proxy para a consulta que ele informar. Se não houver correspondências, peça ao humano para ampliar para um país. Se ainda não houver correspondências, use a habilidade para encontrar países disponíveis e sugira que ele escolha um dos 10 principais países.

Usando a API para criar um proxy HTTPS/SOCKS/WireGuard para um país

A API pode ser usada diretamente para criar um proxy HTTPS/SOCKS/WireGuard para um país.

Passo 1, pesquise uma lista de localizações usando a rota /network/find-locations. Um exemplo de curl está abaixo, canalizado para jq para extrair a lista de localizações.

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

Passo 2, escolha a localização de interesse e salve a propriedade country_code.

Passo 3, crie um proxy usando o código de país salvo através da rota /network/auth-client e definindo proxy_config.initial_device_state para ter 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>"}}}'

Usando a API para criar um proxy HTTPS/SOCKS/WireGuard para uma localização de pesquisa

A API pode ser usada diretamente para pesquisar uma localização e criar um proxy HTTPS/SOCKS/WireGuard. Será necessário tomar uma decisão para escolher o resultado de localização mais desejado. Cada localização tem um location_id que é fixo e pode ser salvo no código.

Passo 1, pesquise uma lista de localizações usando a rota /network/find-locations. Um exemplo de curl está abaixo, canalizado para jq para extrair a lista de localizações.

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

Passo 2, escolha a localização de interesse e salve a propriedade location_id.

Passo 3, crie um proxy usando o location_id salvo através da rota /network/auth-client e definindo proxy_config.initial_device_state.location para ter 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>"}}}}}'

Usando a API para criar um proxy HTTPS/SOCKS/WireGuard para uma localização de pesquisa, enumerando todos os IPs de saída nessa localização

A API pode ser usada diretamente para pesquisar uma localização, enumerar os provedores (IPs de saída) nessa localização e criar um proxy HTTPS/SOCKS/WireGuard para cada IP de saída. Será necessário tomar uma decisão para escolher o resultado de localização mais desejado. Cada localização tem um location_id que é fixo e pode ser salvo no código. Além disso, cada provedor tem um client_id que é fixo e pode ser salvo no código.

Passo 1, pesquise uma lista de localizações usando a rota /network/find-locations. Um exemplo de curl está abaixo, canalizado para jq para extrair a lista de localizações.

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

Passo 2, escolha a localização de interesse e salve o location_id.

Passo 3, obtenha uma lista classificada de provedores (IPs de saída) para o location_id usando a rota /network/find-providers2. O tamanho da amostra pode ser definido para quantos provedores únicos forem necessários. Um exemplo de curl está abaixo, canalizado para jq para extrair a lista de provedores.

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

Passo 4, percorrendo cada client_id na lista, crie um proxy usando o client_id através da rota /network/auth-client e definindo proxy_config.initial_device_state.location para ter 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>"}}}}}'