Skip to main content
Glama

proxy-finder-mcp

npm version CI Release license

An MCP (Model Context Protocol) server that finds and validates working free HTTP/HTTPS/SOCKS proxies, optionally filtered by country. Built for agents that need to route a request or curl through a specific country — a geo-blocked municipal site, a region-locked API, or just debugging why a request fails from one network but not another.

It aggregates three free proxy-list sources (ProxyScrape, Proxifly, Geonode), merges and dedupes them, and actually tests candidates live (not just trusting self-reported uptime) before handing one back — with a local disk cache so repeat calls don't re-scrape or re-test everything from scratch.

Pure TypeScript, zero external process dependencies (no curl/ffmpeg/etc. required) — works anywhere Node.js does, install-free via npx.

Install

No install step needed — run it directly with npx. Add it to your MCP client's config:

Claude Code

claude mcp add proxy-finder -- npx -y proxy-finder-mcp

Claude Desktop / other JSON-config clients

Add to your MCP config file (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "proxy-finder": {
      "command": "npx",
      "args": ["-y", "proxy-finder-mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "proxy-finder": {
      "command": "npx",
      "args": ["-y", "proxy-finder-mcp"]
    }
  }
}

Google Antigravity

Open the Manage MCP Servers panel (Command Palette → "MCP") and add a new server, or edit its mcp_config.json directly with the same mcpServers block used above:

{
  "mcpServers": {
    "proxy-finder": {
      "command": "npx",
      "args": ["-y", "proxy-finder-mcp"]
    }
  }
}

Related MCP server: klawfetch

Tools

Tool

Description

find_proxy

Finds a live, validated proxy, optionally filtered by country and/or protocol. Tests a batch of candidates concurrently and returns the fastest working one, plus a few backups.

check_proxy

Validates one specific proxy string (e.g. socks5://1.2.3.4:1080) against a target URL — useful for re-checking a proxy against the exact site you need.

list_proxies

Lists merged/deduped/ranked candidates without live-testing — fast, cache-aware.

list_countries

Lists which countries are currently covered by the proxy pool, with counts, so you know what to ask find_proxy for.

find_proxy parameters

Param

Type

Default

Description

country

string

—

ISO alpha-2 code ("FR") or full name ("France"). Omit for any country.

protocol

http | https | socks4 | socks5 | any

any

Restrict to a proxy protocol.

testUrl

string

https://httpbin.org/ip

Validate candidates against this URL instead — e.g. the site your curl just failed against.

timeoutMs

number

4000

Per-proxy check timeout.

maxCandidates

number

25

How many ranked candidates to live-test.

concurrency

number

10

How many checks to run in parallel.

forceRefresh

boolean

false

Bypass the cached proxy list and re-fetch all sources.

Example

"I need a working proxy in France to check if this site is geo-blocked."

The agent calls find_proxy with { "country": "FR" } and gets back something like:

{
  "found": true,
  "proxy": {
    "proxy": "socks4://31.59.234.26:40001",
    "ip": "31.59.234.26",
    "port": 40001,
    "protocol": "socks4",
    "countryCode": "FR",
    "city": "Amiens",
    "latencyMs": 1918,
    "statusCode": 200,
    "testUrl": "https://httpbin.org/ip"
  },
  "alternates": [ ... ],
  "testedCount": 25,
  "candidatePoolSize": 225
}

How it works

  1. Sources — ProxyScrape v4, Proxifly's static list, and Geonode's proxy-list API are fetched concurrently and merged, deduped by ip:port. The merged list is cached on disk for 10 minutes so repeat tool calls don't hammer any source.

  2. Ranking — before live-testing, candidates are sorted cache-first: previously-confirmed fast proxies come first (fastest first), then untested proxies (best self-reported uptime/speed first), then previously-failed proxies last.

  3. Validation — a capped, concurrency-bounded batch of ranked candidates is dialed for real (via axios + https-proxy-agent/socks-proxy-agent — no shelling out to curl) against a target URL. Success = the request completes with an HTTP status in [200, 400).

  4. Caching — every tested proxy's result (success and failure) is written to ~/.proxy-finder-mcp/health.json with a timestamp, so later calls skip re-testing recently confirmed-fast or confirmed-dead proxies.

Local development

git clone https://github.com/shakthizen/proxy-finder-mcp.git
cd proxy-finder-mcp
npm install
npm run build
npm run typecheck
npm run lint
npm test
node dist/index.js   # runs the server over stdio

License

MIT © shakthizen

Available Tools

4 tools
check_proxyCheck a specific proxyA

Validates a single specific proxy (e.g. "socks5://1.2.3.4:1080" or "http://1.2.3.4:8080") by making a real request through it to a target URL. Use this to test a proxy you already have, or to re-check whether a specific site works through a given proxy after find_proxy returned it.

Inputs: proxy (required), testUrl, timeoutMs.

find_proxyFind a working proxyA

Finds a live, validated free proxy, optionally filtered by country and/or protocol. Tests a batch of candidates concurrently against a target URL and returns the fastest one that actually works, plus a few backups. Use this when a direct request/curl is geo-blocked or otherwise failing and you need a working proxy to route through.

Inputs: country, testUrl, protocol, timeoutMs, +3 more.

list_countriesList available countriesA

Lists the countries currently covered by the merged proxy pool, with a proxy count per country. Use this to discover what country codes are worth passing to find_proxy before asking for one.

Inputs: forceRefresh.

list_proxiesList candidate proxiesA

Lists merged, deduped proxies from all sources, optionally filtered by country/protocol, ranked cache-first (previously confirmed-fast proxies first). Does not perform any live network testing, so it is fast; use find_proxy when you need a proxy that is actually confirmed working right now.

Inputs: limit, country, protocol, forceRefresh.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct role: find_proxy discovers and live-tests proxies, check_proxy validates one specific proxy, list_proxies returns cached listings without live testing, and list_countries enumerates coverage. The descriptions explicitly guide when to use find_proxy versus list_proxies or check_proxy, eliminating overlap.

    Naming Consistency4/5

    All names follow a consistent snake_case verb_noun pattern (find/check/list + resource). The only minor deviation is list_proxies using plural while find_proxy and check_proxy use singular, but this is natural and predictable.

    Tool Count5/5

    Four tools are well-scoped for a proxy-finding service: discovery, validation, listing, and country lookup. Each tool earns its place and none feels redundant or excessive.

    Completeness4/5

    The toolset covers the core discover-validate-list lifecycle for proxies and provides country enumeration. Minor gaps like detailed proxy metadata (e.g., response times, source) or a batch validation tool exist, but agents can work around them.

    Maintenance

    ActivitySlowing
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A geo-distributed HTTP proxy for AI agents, enabling web fetching from multiple global regions (Frankfurt, Sydney, New York, San Francisco) with support for screenshots, scraping, and JS rendering.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables agents to autonomously route traffic through real 4G/5G mobile and residential IPs by country, with tools to check live proxy stock, obtain ready-to-use proxy URLs, and monitor remaining data usage.
      53 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Routes AI agent HTTP requests through residential proxies to bypass anti-bot systems, geo-target by country/city, and maintain sticky sessions across multi-step workflows.
      15 npm
      1
      MIT