Skip to main content
Glama

Check proxies from this machine

check_proxies

Check free proxies from this machine's network and return only working ones verified right now by handshake, content, and TLS checks; filter by protocol, country, latency, or blocklist.

Instructions

Find proxies that work from this machine's network right now.

Runs the same checks as the public list – handshake, second request, byte-for-byte content check, verified TLS – but from here, so the results were verified seconds ago from the network your code runs on. Slower than get_proxies: 30-90 s in live mode, and progress is reported while it runs. It also updates the local statistics proxy-scraper learns from.

Input Schema

NameRequiredDescriptionDefault
modeNolive: check the hourly list again from here (30-90 s). full: collect from all 700+ sources (a few minutes)live
wantNoStop once this many work
protocolNoProxy protocol to look forany
countriesNoTwo-letter country codes of the exit IP, e.g. ['DE', 'NL']. Empty = any country.
elite_onlyNoOnly proxies the target can't recognize as proxies
https_onlyNoOnly proxies that tunnel HTTPS with verified TLS
max_latency_msNoMaximum response time, 0 = any
exclude_datacenterNoSkip exits in datacenters
exclude_blocklistedNoSkip exits on the SpamCop blocklist

Output Schema

NameRequiredDescriptionDefault
modeYeslive = the hourly list checked again, full = all 700+ sources
noteYesWhat to do if none were found
proxiesYesWorking from this machine right now, fastest first
took_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.30.0
    • addedOutput schema / $defs / Proxy / properties / checked_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "When this proxy itself was last checked (ISO 8601, UTC) – for the live list: by the hourly run, not now",
      +  "title": "Checked At"
      +}
    • addedOutput schema / $defs / Proxy / properties / checks
      Added value: +{
      +  "additionalProperties": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "description": "How each check ended: basic, confirm, content, https -> state (passed, failed, unavailable = could not run, skipped = left out) with a reason code, the target and the time. Empty for lists from before these were recorded",
      +  "title": "Checks",
      +  "type": "object"
      +}
  2. First observedv1.25.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the concrete runtime (30-90 s live, minutes for full), that progress is reported during execution, the exact verification steps performed (handshake, second request, byte-for-byte content, verified TLS), and the side effect of updating local proxy-scraper statistics. That last point explains why readOnlyHint=false despite it being a lookup-style tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core promise, then the verification detail, then the cost comparison and side effect. Every sentence earns its place with no redundant restatement of the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description covers the parts structured data can't: runtime, progress behavior, verification rigor, relative cost against the sibling, and the local-statistics side effect that reconciles with the annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all nine parameters are documented in the schema, and the description adds only incidental detail (the 30-90 s figure for live mode). Baseline 3 is appropriate when the schema fully carries parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/verify) and resource (proxies) with a clear distinguishing scope: proxies that work from THIS machine's network right now. It also explicitly positions itself against the get_proxies sibling, so an agent can differentiate without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when this tool is worth the cost versus get_proxies ('Slower than get_proxies: 30-90 s'), and explains the live-vs-full tradeoff pattern. It stops short of an explicit 'use get_proxies when you don't need current-network verification' exclusion, so it's strong but not fully prescriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools