URnetwork MCP Server
공식고품질 VPN 및 프록시 연결
문서
에이전트를 위한 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로 변환하십시오. 아래는 결과에서 by_jwt 속성을 추출하기 위해 jq로 파이프된 curl 예시입니다:
curl -X POST https://api.bringyour.com/auth/code-login -d '{"auth_code": "<AUTH CODE>"}' | jq ".by_jwt"
JWT는 저장하여 재사용할 수 있습니다. 사람이 JWT 갱신을 요청하면 인증 코드를 요청하는 것부터 과정을 반복하십시오.
프록시 기술을 선택할 때는 다음 사용 사례를 고려하십시오:
| 사용 사례 | 권장 프로토콜 | 요구 사항 |
|---|---|---|
| 스크래핑 / 웹 브라우징 | HTTPS | TCP/웹에 가장 적합합니다. 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)을 지원합니다. |
| 시스템 전체 / OS 수준 | WireGuard | 모든 IP 패킷을 라우팅합니다. /network/auth-client 요청에서 proxy_config.enable_wg를 명시적으로 true로 설정해야 합니다. 응답의 proxy_config_result 객체 내에서 wg_config.config를 완전한 WireGuard 구성 파일로 사용하십시오. |
/network/find-locations 경로를 사용하여 위치를 조회할 때는 항상 반환된 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 경로를 사용하여 위치 목록을 검색합니다. 아래는 locations 목록을 추출하기 위해 jq로 파이프된 curl 예시입니다.
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 경로를 사용하여 위치 목록을 검색합니다. 아래는 locations 목록을 추출하기 위해 jq로 파이프된 curl 예시입니다.
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 경로를 사용하여 위치 목록을 검색합니다. 아래는 locations 목록을 추출하기 위해 jq로 파이프된 curl 예시입니다.
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)의 순위 목록을 가져옵니다. 샘플 크기는 필요한 고유 제공자 수만큼 설정할 수 있습니다. 아래는 providers 목록을 추출하기 위해 jq로 파이프된 curl 예시입니다.
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를 설정하여 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>"}}}}}'