@mobileproxy/mcp-server
OfficialAn MCP server that gives Claude, Cursor and other MCP agents direct control over mobileproxy.space mobile proxies — inspect them, rotate IPs, move them between countries, shape their TCP fingerprint, manage residential traffic, and buy or renew with balance.
Inspect account & proxies —
list_proxies,get_proxy_status(current external IP + optional spam-blacklist check),get_balance,get_account_history,get_health_snapshot(expiring proxies, low-traffic packages).Get connection details —
get_connection_stringreturnshttp:///socks5://URLs,host:port:login:passwordimport lines, a curl test and the change-IP link.Explore locations & prices —
get_geo_list,find_available_geo(free modems, operators, prices per period),get_priceacross 1–365 day terms.Rotate IPs —
rotate_ipfor a fresh carrier IP;rotate_until_cleanloops until the IP is on no blacklist (keep_if_cleanpreserves a good one).Relocate a proxy —
change_geomoves an existing proxy to another country/operator/geo without re-buying;reboot_modempower-cycles a stuck modem.Buy & renew —
buy_proxyandrenew_proxiescharge the balance; both support anestimate_onlydry run, and the hosted endpoint only returns quotes.Manage proxy settings —
update_proxy_settings(auto-renewal, comment, rotation timer) andchange_proxy_credentials(new login/password) in bulk.TCP fingerprinting —
list_tcp_profiles,get_tcp_fingerprint,set_tcp_fingerprint,diagnose_tcp_fingerprintmake traffic look like a Windows, iPhone or other device.Residential proxies —
list_residential_plans,get_residential_locations,get_residential_traffic,set_residential_geo,buy_residential,add_residential_traffic.AdsPower integration —
attach_proxy_to_adspowerwrites a proxy into a local AdsPower browser profile (local build only, experimental).Safety — write tools are annotated destructive so clients ask before running; read tools cache geo lookups to respect rate limits. The remote server at
https://mcp.mpsapi.com/mcpruns the same tools minus the AdsPower bridge and with quoting instead of charging.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@mobileproxy/mcp-serverwhat's my balance?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@mobileproxy/mcp-server
Model Context Protocol server for mobileproxy.space — gives Claude Code, Claude Desktop, Cursor, Windsurf and other MCP-compatible agents direct control over your mobile proxies.
Every mobile proxy is a dedicated 4G/LTE modem with a real carrier IP that stays yours for as long as you need, and you rotate it on demand. Typical uses: testing sites and apps the way mobile users in a given country and network see them, checking ads and localized content by geo, price and availability monitoring, and keeping your own traffic private.
Quickstart
Get your API key at mobileproxy.space/user.html?api.
Claude Desktop — one click
Download mobileproxy.mcpb from the latest release, double-click it, paste your API key. Claude Desktop ships its own Node.js, nothing else to install.
Claude Code
claude mcp add mobileproxy --scope user --env MOBILEPROXY_API_KEY=your_api_key -- npx -y @mobileproxy/mcp-server--scope user stores the key in your user config, not in the project, so it never ends up in git.
Remote server — nothing to install
The hosted endpoint https://mcp.mpsapi.com/mcp runs the same tools, with two differences: it leaves out the local-only AdsPower bridge, and it quotes purchases, renewals and top-ups instead of charging the balance (quote_proxy_purchase, quote_renewal, quote_residential_purchase, quote_residential_topup return the amount and a dashboard link). Install the package locally to buy from the chat.
claude.ai: Settings → Connectors → Add custom connector → URL
https://mcp.mpsapi.com/mcp→ paste your API key on the sign-in page.Claude Code:
claude mcp add --transport http mobileproxy https://mcp.mpsapi.com/mcp --header "Authorization: Bearer your_api_key"Cursor:
{"mcpServers": {"mobileproxy": {"url": "https://mcp.mpsapi.com/mcp", "headers": {"Authorization": "Bearer your_api_key"}}}}
The server keeps no copy of your key: each request carries it, or an OAuth token that contains it encrypted.
Cursor, Windsurf, Claude Desktop (manual JSON)
{
"mcpServers": {
"mobileproxy": {
"command": "npx",
"args": ["-y", "@mobileproxy/mcp-server"],
"env": {
"MOBILEPROXY_API_KEY": "your_api_key_here"
}
}
}
}Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Cursor: ~/.cursor/mcp.json.
Docker
docker run -i --rm -e MOBILEPROXY_API_KEY=your_api_key ghcr.io/mobileproxy/mcp-serverIn an MCP client config use "command": "docker" with "args": ["run", "-i", "--rm", "-e", "MOBILEPROXY_API_KEY", "ghcr.io/mobileproxy/mcp-server"].
Related MCP server: computer-use-mcp
Быстрый старт по-русски
MCP-сервер даёт Claude, Cursor и другим AI-агентам прямое управление вашими прокси на mobileproxy.space: список прокси, смена IP, смена страны и оператора, баланс, покупка.
Возьмите API-ключ в личном кабинете.
Установите:
Claude Desktop — скачайте
mobileproxy.mcpbиз последнего релиза, откройте файл двойным кликом и вставьте ключ.Claude Code — одна команда:
claude mcp add mobileproxy --scope user --env MOBILEPROXY_API_KEY=ваш_ключ -- npx -y @mobileproxy/mcp-serverБез установки — удалённый сервер
https://mcp.mpsapi.com/mcp: в claude.ai добавьте его как коннектор (ключ вводится на странице входа), в Claude Code —claude mcp add --transport http mobileproxy https://mcp.mpsapi.com/mcp --header "Authorization: Bearer ваш_ключ".
Попросите агента обычными словами:
«Всё ли в порядке с моими прокси?»
«Дай строку для импорта прокси 470663 в AdsPower»
«Смени IP на прокси 470663, пока не будет чистый»
«Где в Казани есть свободные модемы Мегафона и сколько это стоит?»
«Пропиши прокси 470663 в профиль AdsPower jc8y5g3» (AdsPower должен быть запущен)
«Поставь прокси 470663 TCP-отпечаток Windows 11 и проверь, что видят сайты»
«Перенеси прокси 470663 в Турцию»
«Сколько стоят 5 прокси в Германии на неделю?»
Покупки агент всегда сначала считает в режиме estimate_only и просит подтверждения — деньги без вашего «да» не списываются.
Available tools
read tools only look things up. write tools change something — a proxy, its settings or the balance — and are annotated as destructive, so MCP clients such as Claude ask before running them. Purchase tools (local build only) also take estimate_only: true for a dry run.
Account and proxies
Tool | Kind | Description |
| read | What needs attention: expiring proxies (with auto-renewal state), residential packages low on traffic, optionally blacklisted IPs |
| read | All proxies with connection details; filter by type or country |
| read | Current external IP of a proxy + optional spam-blacklist check |
| read |
|
| read | Balance in RUB + partner payout amount if any |
| read | Top-ups, purchases, renewals and refunds with receipt links |
| write | Auto-renewal, comment and automatic IP-rotation timer for up to 100 proxies at once |
| write | New login and password for up to 50 proxies, e.g. after a leak |
| write | Power-cycle the modem behind a stuck mobile proxy (once per 30 min) |
Mobile, server and backconnect proxies
Tool | Kind | Description |
| read | Free modems in a country or city, operators that have them, and prices per period — in one call |
| read | All locations (geoid, ISO, free-modem count); filter by country |
| read | Prices for every rental period (1/3/7/14/30/60/90/180/365 d) in a country |
| write | New exit IP: mobile proxies reconnect to the carrier; sticky residential proxies get a new peer |
| write | Rotate a mobile proxy until its IP is on no spam blacklist; |
| write | Move a proxy to another country or operator without re-buying |
| write | Buy proxies — charges the balance (hosted: |
| write | Extend up to 100 proxies by a period — charges the balance (hosted: |
TCP fingerprint (mobile and server proxies)
Sets the OS signature a proxy shows at the network level (TTL, window, MSS, TCP option order), so proxied traffic looks like the device it represents — for example a Windows desktop or an iPhone.
Tool | Kind | Description |
| read | Presets: Android, iPhone, Windows, macOS, Linux… |
| read | Which profile each proxy currently presents (null = native) |
| write | Apply a profile to up to 50 proxies; |
| read | What fingerprinting endpoints observe through the proxy vs. the applied profile (up to ~45 s) |
Residential proxies (type 3)
Residential is billed by traffic volume, not by rental period, so it has its own plan, geo and top-up tools.
Tool | Kind | Description |
| read | GB bundles with price per GB |
| read | Countries / regions / cities / ASNs valid for geo targeting |
| read | Daily consumption and burn rate |
| write | Read or change geo targeting and rotating/sticky mode — free and reversible |
| write | Buy a traffic bundle — charges the balance (hosted: |
| write | Top up a package, keeping its geo and connection string (hosted: |
Notes on residential:
Geo codes come from
get_residential_locations. The backend ignores unknown values and leaves the proxy in its previous location.Changing geo rewrites the provider login; the response carries the new
http/socks5strings.In
list_proxiesa residential entry hasproxy_type: 3, both ports equal (one port serves HTTP and SOCKS5), and aresidential_traffic_*quota block.
Local integrations
Tool | Kind | Description |
| write | Write a proxy (and the change-IP link) into an AdsPower browser profile — experimental, local build only |
attach_proxy_to_adspower talks to the AdsPower Local API on your computer, so AdsPower must be running with its Local API enabled. It is built from AdsPower's API documentation and covered by tests, but not yet verified against a live AdsPower install — please report problems in Issues.
Read tools cache geo and country lookups (5–60 min) to stay within the ~3 requests/sec per-token rate limit.
Configuration
Env var | Default | Purpose |
| required | Your API token from |
|
| API portal, reachable from Russia too; override for dev/staging |
|
| HTTP request timeout |
|
| Set to |
|
| AdsPower Local API address, for |
| unset | Only if AdsPower's Local API has security verification on |
Running as a remote HTTP server
npx -y @mobileproxy/mcp-server --http (or the Docker image with --http) serves MCP over
Streamable HTTP at /mcp. It is stateless and holds no key of its own: clients send their
API key as Authorization: Bearer …, and with MOBILEPROXY_OAUTH_SECRET set it also acts as an
OAuth 2.1 server for claude.ai connectors. See deploy/README.md for the
Docker + nginx setup and every setting.
Client compatibility
Client | Supported | Notes |
Claude Desktop | ✅ | one-click |
Claude Code CLI | ✅ |
|
Cursor | ✅ | hard-code env in config (no substitution) |
Windsurf | ✅ | as Cursor |
Cowork / CCD | ⚠️ |
|
See docs/INSTALL.md for per-client setup and troubleshooting.
Privacy
This server is a thin client for the mobileproxy.space API; it adds no tracking of its own.
What it processes: your mobileproxy.space API key and the parameters of each tool call, which it forwards to the mobileproxy.space API (
mpsapi.com) to act on your account. It does not read or store your conversations, prompts or files.Local install (npm,
.mcpb, Docker): everything runs on your computer. The key stays in your MCP client's configuration or your OS keychain.Hosted endpoint (
mcp.mpsapi.com): no database and no copy of your key. Each request carries the key, or an OAuth access token that contains it encrypted (AES-256-GCM; access tokens expire after 1 hour, refresh tokens after 30 days). The web server keeps standard access logs — time, client IP, request line, status, referrer and user agent; never request bodies or theAuthorizationheader — for troubleshooting and abuse prevention, deleted after 14 days.Third parties: none. Requests go only to the mobileproxy.space API; the optional AdsPower bridge talks to AdsPower on your own computer.
Revoking access: remove the connector in your client, or regenerate the API key at mobileproxy.space/user.html?api, which invalidates every token built on the old key.
Full policy: the mobileproxy.space Privacy Policy covers account data. Questions: support at mobileproxy.space or GitHub issues.
Links
License
MIT
Available Tools
28 toolsadd_residential_trafficAdd traffic to a residential proxyADestructiveInspect
Tops up the traffic quota of an existing residential proxy, keeping its geo settings and connection string. Charges the account balance immediately; estimate_only=true returns the amount without charging. The remaining quota is residential_traffic_left_mb in list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | Plan multiplier: num=2 on a 10 GB plan means 20 GB | |
| price_id | Yes | Plan id from list_residential_plans | |
| proxy_id | Yes | Existing residential proxy id | |
| estimate_only | No | Return the amount without charging |
attach_proxy_to_adspowerPut a proxy into an AdsPower profileADestructiveIdempotentInspect
Writes a mobileproxy.space proxy into an AdsPower browser profile through the AdsPower Local API: host, port, login, password and, for mobile proxies, the change-IP link. It REPLACES the profile's current proxy settings, so confirm with the user first. Requires AdsPower running on this computer with its Local API enabled (ADSPOWER_API_KEY must be set if AdsPower security verification is on). profile_id is the AdsPower profile id (user_id). If the profile is open, restart it to apply.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol | No | http | |
| proxy_id | Yes | proxy_id from list_proxies | |
| profile_id | Yes | AdsPower profile id (user_id) |
buy_proxyBuy proxiesADestructiveInspect
Buys one or more mobile, server or backconnect proxies and charges the account balance immediately. With estimate_only=true it returns the total without charging or allocating. country accepts an ISO code or id_country; geoid from get_geo_list pins an exact location. Returns the new proxies with full connection details.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | mobile | |
| count | No | How many proxies (max 50 in one call) | |
| geoid | No | Specific location from get_geo_list (most precise) | |
| country | No | Target country as 2-letter ISO code (or use id_country / geoid) | |
| operator | No | Operator name (e.g. "megafone", "MTS") | |
| id_country | No | Target country as numeric id_country | |
| period_days | Yes | Rental period in days; one of 1, 3, 7, 14, 30, 60, 90, 180, 365 | |
| auto_renewal | No | ||
| estimate_only | No | Return the total amount without charging or allocating |
buy_residentialBuy a residential proxy packageADestructiveInspect
Buys a residential (home ISP) proxy: a traffic bundle rather than a time rental. Charges the account balance immediately; estimate_only=true returns the amount without charging. country is optional: without it the pool is global, and set_residential_geo can change it later for free.
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | Plan multiplier: num=2 on a 10 GB plan means 20 GB | |
| country | No | ISO2 country code; omit for a global pool | |
| price_id | Yes | Plan id from list_residential_plans | |
| estimate_only | No | Return the amount without charging |
change_geoChange proxy country / operatorADestructiveInspect
Swaps the underlying modem of a proxy to one in a different country and/or with a different mobile operator, WITHOUT buying a new proxy (the same proxy_id keeps its login/password — only the physical location changes). Pass at least one of: country (ISO code), id_country (numeric), geoid (from get_geo_list — most specific), or operator (name). Use check_after_change=true to have the server verify the new IP is live before returning (adds 1-10s). Subject to a per-proxy cooldown.
| Name | Required | Description | Default |
|---|---|---|---|
| geoid | No | Target geo as geoid from get_geo_list — most specific | |
| country | No | Target country as 2-letter ISO code | |
| operator | No | Target operator name (e.g. "megafone", "MTS") | |
| proxy_id | Yes | proxy_id from list_proxies | |
| id_country | No | Target country as numeric id_country (alternative to ISO) | |
| check_after_change | No | Wait for the API to verify the new IP |
change_proxy_credentialsChange proxy login and passwordADestructiveInspect
Sets a new login and password on one or more proxies, for example after credentials leaked. Without login/password new random ones are generated; the same pair is applied to every proxy in the call. Clients still using the old credentials stop connecting. Returns the new credentials for each proxy.
| Name | Required | Description | Default |
|---|---|---|---|
| login | No | ||
| password | No | ||
| proxy_ids | Yes | proxy_id values from list_proxies (up to 50) |
diagnose_tcp_fingerprintCheck the TCP fingerprint a site seesARead-onlyInspect
Sends a real request through the proxy to fingerprinting endpoints and compares what they observe (TTL, window, MSS, window scale, option order, OS guess) with the applied profile, for example to confirm set_tcp_fingerprint took effect. Slow: up to ~45 seconds. Results are cached for 60 seconds per proxy. One proxy per call, mobile or server only.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_id | Yes | Mobile or server proxy_id from list_proxies |
find_available_geoFind where mobile proxies are availableARead-onlyInspect
Answers "where can I get a mobile proxy in <country/city> on , and what does it cost" in one call: locations with free modems, which operators have free modems there, and mobile proxy prices per rental period, replacing a chain of get_geo_list, operator lookups and get_price. city and operator accept Latin or Cyrillic ("Kazan" or "Казань", "megafon" or "Мегафон") and match the start of a word in the location caption / operator name. Captions are mostly English but some come back in Russian; operator names are API ids such as "megafone", "beeline", "tele2", "mts". The returned geoid and operator work as inputs to the purchase and change_geo tools.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City or district, Latin or Cyrillic, e.g. "Kazan", "Казань", "Moscow" | |
| limit | No | Maximum locations to return | |
| country | Yes | 2-letter ISO country code (RU, US, TR, ...) | |
| currency | No | RUB | |
| min_free | No | Minimum free modems at a location | |
| operator | No | Operator name or its start, Latin or Cyrillic, e.g. "megafon", "МТС" |
get_account_historyAccount transaction historyARead-onlyInspect
Lists balance operations newest first: top-ups, purchases, renewals and refunds, with the amount, a description that names the proxy (PID) where relevant, and a receipt link when one was issued. Dates are Moscow time. Page with offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Operations to return (max 50) | |
| offset | No | Skip this many newest operations |
get_balanceGet account balanceARead-onlyInspect
Returns the current account balance in RUB, plus the can_payout amount for accounts with partner status. Purchases and renewals fail with "Insufficient balance" when the balance does not cover them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_connection_stringGet ready-to-paste connection stringsARead-onlyInspect
Returns a proxy's credentials as ready-to-paste strings: http:// and socks5:// URLs, a host:port:login:password line that most proxy managers and browser-profile tools import, a curl command to test it, and for mobile proxies the change-IP link that such tools accept as a "change IP URL". For residential proxies the strings reflect the current geo settings, which set_residential_geo changes.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_id | Yes | proxy_id from list_proxies |
get_geo_listList available proxy locationsARead-onlyInspect
Returns all geo-locations (geoid + human caption + ISO + free-modem count) where proxies are currently available for purchase or migration. Use this to: recommend a location to the user, validate before buy_proxy or change_geo, or filter by country (set country to a 2-letter ISO code). The geoid value is needed for buy_proxy. Cached server-side for 60s and client-side for 5 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Filter to a single country by ISO code (RU, US, TR, ...) |
get_health_snapshotAccount health checkARead-onlyInspect
One-call answer to "is everything OK with my proxies?": balance, proxies expiring soon (flagging whether auto-renewal is on), residential packages running out of traffic, and optionally which dedicated IPs sit on spam blacklists. Returns only what needs attention, ordered critical → warning → info. check_spam=true adds one lookup per mobile/server proxy (up to max_spam_checks), so it is slower.
| Name | Required | Description | Default |
|---|---|---|---|
| check_spam | No | Also check each mobile/server IP against spam blacklists (slower) | |
| max_spam_checks | No | Upper bound on blacklist lookups when check_spam=true | |
| low_traffic_percent | No | Flag residential packages with less than this share of traffic left | |
| expiring_within_days | No | Flag proxies that expire within this many days |
get_priceGet proxy price quoteBRead-onlyInspect
Returns mobile proxy prices for a country across all rental periods (1, 3, 7, 14, 30, 60, 90, 180, 365 days). country accepts a 2-letter ISO code (e.g. "RU") or a numeric id_country.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO country code ("RU", "US", "TR") or numeric id_country | |
| currency | No | RUB |
get_proxy_statusGet current proxy IP & healthARead-onlyInspect
Returns the CURRENT external IP of a proxy and optionally checks if that IP is listed in spam/abuse blacklists (Spamhaus, Stop Forum Spam, etc). Use to verify a fresh rotation succeeded, or to decide if you need to rotate again because the IP is dirty. The check_spam=true mode is slower (~3s extra) but is the only way to assess IP quality. For residential proxies the check does not go through the sticky session and returns a different pool IP each time, so it says nothing about the IP a sticky session is using.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_id | Yes | proxy_id from list_proxies | |
| check_spam | No | Run spam-blacklist check (slower, ~3s extra) |
get_residential_locationsList residential geo targetsARead-onlyInspect
Lists geo targets available for residential proxies: countries, regions (states), cities or ASNs (carriers). set_residential_geo accepts only the code values returned here; the backend ignores unknown codes and keeps the previous location. Cascade: type="countries" → type="regions" with country → type="cities" with country + region (cities need a region because large countries have thousands). Entries may also carry title_ru, a Russian name, which is absent for small towns.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | What to list | countries |
| region | No | Region code from type="regions", required for cities (e.g. "georgia") | |
| country | No | ISO2 country code, required for regions/cities/asns (e.g. "US") |
get_residential_trafficResidential traffic usage by dayARead-onlyInspect
Returns daily traffic consumption for a residential proxy. Use it to answer "how much have I used / how long will the bundle last". The REMAINING quota is not here — it comes from list_proxies (residential_traffic_left_mb). Combine both to estimate the burn rate before add_residential_traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to report | |
| proxy_id | Yes | Residential proxy id |
get_tcp_fingerprintShow the TCP fingerprint of proxiesARead-onlyInspect
Shows which TCP fingerprint profile each proxy currently imitates (profile_id null = the device's own, unmasked). Mobile and server proxies only; anything else is listed in errors.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_ids | Yes | proxy_id values from list_proxies (mobile or server proxies) |
list_proxiesList my proxiesARead-onlyInspect
Returns all proxies owned by the authenticated user with full connection details (host, port, login, password, geo, operator, expiration), and the proxy_id values other tools take. Supports filtering by type (mobile/server/backconnect/residential) and by country (ISO code or numeric id_country). Backconnect and residential proxies carry no country id, so a country filter excludes them. The server already drops expired proxies, but active_only rechecks client-side as a safety net.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by proxy type | |
| country | No | Filter by 2-letter ISO country code (RU, US, TR, ...) | |
| id_country | No | Filter by numeric country ID; takes precedence over country | |
| active_only | No | Hide expired proxies (default: true) |
list_residential_plansList residential proxy plansARead-onlyInspect
Returns the residential (home ISP) proxy plans with price per GB. Residential is billed by traffic volume (GB bundles) rather than by rental period, so these prices replace get_price for residential. Larger bundles cost less per GB. The price_id identifies a plan for purchase or top-up.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_tcp_profilesList TCP fingerprint profilesARead-onlyInspect
Lists the TCP/IP fingerprint presets a mobile or server proxy can present at the network layer (Android, iPhone, Windows, macOS, Linux…), for making the OS signature of proxied traffic consistent with the client device. set_tcp_fingerprint applies one.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Only this category | |
| include_details | No | Also return the raw profile_json (TTL, MSS, window, options) |
reboot_modemReboot the modem behind a proxyADestructiveInspect
Power-cycles the 4G modem behind a mobile proxy, which clears most hangs where the proxy stops passing traffic and rotate_ip does not help. Active connections drop and the proxy is back in about a minute. Allowed once per 30 minutes per proxy.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_id | Yes | Mobile proxy_id from list_proxies |
renew_proxiesRenew proxiesADestructiveInspect
Extends one or more mobile, server or backconnect proxies by a period and charges the account balance immediately, at the rate that applies to each proxy. estimate_only=true returns the total without charging. Auto-renewal settings stay as they are. Residential proxies are extended by traffic instead (add_residential_traffic).
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_ids | Yes | proxy_id values from list_proxies (up to 100) | |
| period_days | Yes | Extension in days; one of 1, 3, 7, 14, 30, 60, 90, 180, 365 | |
| estimate_only | No | Return the total without charging |
rotate_ipRotate proxy IPADestructiveInspect
Gets a proxy a new exit IP. Mobile proxies (proxy_type=0) reconnect to the carrier and pick up a new cellular IP; residential proxies (proxy_type=3) in sticky mode get a new peer, while in rotating mode the IP already changes on every request. Active connections through the proxy drop. Takes ~3-10 seconds, free of charge, with a short cooldown between rotations. verify=true checks the new IP afterwards (adds ~1-2s).
| Name | Required | Description | Default |
|---|---|---|---|
| verify | No | Call proxy_ip after rotation to confirm the new IP | |
| proxy_id | Yes | proxy_id from list_proxies |
rotate_until_cleanRotate until the IP is cleanADestructiveInspect
Gets a mobile proxy onto an IP that is on no spam/abuse blacklist: rotates, checks the new IP and repeats up to max_attempts, in one call instead of chaining rotate_ip and get_proxy_status. With keep_if_clean=true it checks the current IP first and keeps it when clean. Returns status="cooldown" with wait_seconds when the carrier refuses another rotation yet. Active connections drop on each rotation. Mobile proxies only (proxy_type=0), free of charge.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_id | Yes | Mobile proxy id from list_proxies | |
| max_attempts | No | Maximum rotations before giving up | |
| keep_if_clean | No | Check the current IP first and skip rotation if it is clean |
set_residential_geoSet residential geo and session modeADestructiveIdempotentInspect
Reads or changes the geo targeting and session mode of a residential proxy. With only proxy_id it returns the current settings; any other parameter changes them. Free and reversible. Geo codes come from get_residential_locations; the backend ignores unknown codes and keeps the previous location. A change rewrites the provider login, and the response carries the updated http/socks5 connection strings. session_mode="rotating" gives a new IP per request; "sticky" holds one IP for session_time minutes (max 120).
| Name | Required | Description | Default |
|---|---|---|---|
| asn | No | ASN code, e.g. "AS7922" | |
| city | No | City code (requires state) | |
| state | No | Region code (requires country) | |
| country | No | ISO2 code from get_residential_locations | |
| proxy_id | Yes | Residential proxy id | |
| session_mode | No | ||
| session_time | No | Sticky session lifetime in minutes, 1-120 (only with session_mode="sticky") |
set_tcp_fingerprintApply a TCP fingerprint profileADestructiveIdempotentInspect
Makes mobile or server proxies present a TCP fingerprint profile from list_tcp_profiles, so the network-level OS matches the client device (e.g. a Windows desktop on a Windows profile). profile_id=0 restores the device's own fingerprint. Free and reversible. Delivery to the equipment is queued and takes up to a minute, so diagnose_tcp_fingerprint right after may still show the old values. Residential and backconnect proxies are rejected per proxy in errors.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_ids | Yes | proxy_id values from list_proxies (mobile or server proxies) | |
| profile_id | Yes | profile_id from list_tcp_profiles; 0 = back to the native fingerprint |
update_proxy_settingsUpdate proxy settingsADestructiveIdempotentInspect
Changes settings on one or more proxies at once: auto-renewal on or off, a comment, and the timer that rotates a mobile proxy's IP automatically every N minutes. Only the settings you pass are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Free-text label shown in the dashboard; empty string clears it | |
| proxy_ids | Yes | proxy_id values from list_proxies (up to 100) | |
| auto_renewal | No | Renew automatically from the balance before expiry | |
| auto_rotate_minutes | No | Rotate the IP automatically every N minutes (2-1440); 0 turns the timer off |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v0.6.0- Added
add_residential_traffic - Added
attach_proxy_to_adspower - Changed
buy_proxy4 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"How many proxies to buy (max 50 in one call)"New value: +"How many proxies (max 50 in one call)" - changed
Input schema / properties / estimate_only / descriptionPrevious value: -"Dry-run: returns the total amount without charging or allocating"New value: +"Return the total amount without charging or allocating" - changed
Input schema / properties / geoid / descriptionPrevious value: -"Specific geo from get_geo_list (most precise)"New value: +"Specific location from get_geo_list (most precise)" - changed
Input schema / properties / period_days / descriptionPrevious value: -"Proxy duration in days; one of 1, 3, 7, 14, 30, 60, 90, 180, 365"New value: +"Rental period in days; one of 1, 3, 7, 14, 30, 60, 90, 180, 365"
- Added
buy_residential - Added
change_proxy_credentials - Added
diagnose_tcp_fingerprint - Added
find_available_geo - Added
get_account_history - Added
get_connection_string - Added
get_health_snapshot - Added
get_residential_locations - Added
get_residential_traffic - Added
get_tcp_fingerprint - Changed
list_proxies2 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "Filter by 2-letter ISO country code (RU, US, TR, ...)", + "maxLength": 2, + "minLength": 2, + "type": "string" +} - changed
Input schema / properties / id_country / descriptionPrevious value: -"Filter by numeric country ID (not ISO code)"New value: +"Filter by numeric country ID; takes precedence over country"
- Added
list_residential_plans - Added
list_tcp_profiles - Added
reboot_modem - Added
renew_proxies - Added
rotate_until_clean - Added
set_residential_geo - Added
set_tcp_fingerprint - Added
update_proxy_settings
8 tool updates
v0.1.2- First observed
buy_proxy - First observed
change_geo - First observed
get_balance - First observed
get_geo_list - First observed
get_price - First observed
get_proxy_status - First observed
list_proxies - First observed
rotate_ip
TDQS
Scored across 28 tools
Most tools target a distinct resource+action, and descriptions go out of their way to distinguish near-neighbors (e.g. rotate_ip vs rotate_until_clean, get_geo_list vs find_available_geo, get_price for mobile vs list_residential_plans). A few pairs still overlap conceptually (get_residential_traffic vs list_proxies for traffic, get_tcp_fingerprint vs list_tcp_profiles, get_proxy_status vs rotate_until_clean), but the descriptions resolve them.
Consistent snake_case verb_noun pattern throughout (get_geo_list, list_proxies, set_tcp_fingerprint, buy_proxy, change_geo, add_residential_traffic). No camelCase or style mixing; the convention is predictable across all 28 tools.
28 tools is heavy for the surface, though the domain genuinely spans mobile + residential proxies, TCP fingerprinting, AdsPower integration, and billing. Some granular getters (get_balance, get_account_history, get_price) and convenience wrappers (find_available_geo, rotate_until_clean) could be consolidated, pushing this into the borderline-heavy range.
Strong lifecycle coverage: purchase, renewal, rotation, geo/credential changes, settings, traffic top-up, and health/billing introspection, plus escape hatches like estimate_only and diagnose_tcp_fingerprint. Minor gaps remain (no cancel/delete/expire-a-proxy operation and no IP whitelist/firewall management), but agents can work around these.
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Hosted Web Crawler MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Hosted X (Twitter) MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that spawns autonomous Claude Code agents in GitHub repos, enabling task delegation with persistent state, multi-step workflows, and job monitoring.4744 npm2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server that enables Claude to control your computer, similar to Anthropic's computer use but easy to set up locally.2,318 npm396MIT
- AlicenseCqualityDmaintenanceAn MCP server that gives Claude Code real browser control for web automation, testing, and screenshots.3263 npm157MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables Claude Code to communicate with other Claude Code agents over HTTP, allowing users to ask questions about remote codebases or delegate coding tasks.MIT