Skip to main content
Glama

ProxyShield MCP (Lite)

License: MIT Python: 3.10+ MCP Standard: Compatible

Autonomous Smart Proxy Routing, Bandwidth Conservation & Header Evasion Plane for AI Web Agents

ProxyShield MCP prevents AI browser agents (Claude Computer Use, Stagehand, browser-use, Playwright) from wasting expensive residential proxy data ($15-$25/GB) on heavy static assets. It routes requests intelligently, generates rotating browser evasion headers, and tracks bandwidth cost savings.


🚀 Features (Lite Edition)

  • Smart Tier Router (route_request): Categorizes requests into direct, datacenter, and residential tiers. Diverts fonts, images, and videos away from paid residential pools.

  • Static Asset Classifier (classify_asset): Automatically detects .woff2, .png, .mp4, .css, and heavy media.

  • Stealth Evasion Headers (get_evasion_headers): Rotating modern browser fingerprints (Chrome 131, Firefox 133) with matching Sec-CH-UA, viewport dimensions, and language tags.

  • Bandwidth Savings Tracker (get_bandwidth_savings): Quantifies total megabytes saved and estimated dollar savings in real time.


Related MCP server: puppeteer-real-browser-mcp-server

📦 Installation & Setup

git clone https://github.com/johannschiffer/proxyshield-mcp.git
cd proxyshield-mcp
pip install -e .

Configuration with Claude Desktop / Cursor

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "proxyshield": {
      "command": "python3",
      "args": ["-m", "proxyshield.server"]
    }
  }
}

âš¡ Quick CLI Usage

# Calculate route for a target URL
proxyshield route --url "https://example.com/assets/hero-video.mp4"

# Generate rotating evasion headers
proxyshield headers

💼 Upgrade to ProxyShield Pro

Need enterprise protection and deeper cost reduction?

  • Hybrid Proxy Tier Pool (SQLite WAL): Health scoring, latency tracking, and automatic failover across Datacenter, ISP, and Residential providers.

  • TLS Client Hello & JA3/JA4 Rotator: Custom TLS handshake emulation to bypass Cloudflare and Akamai bot defenses.

  • Content-Addressable Asset Cache: Intercepts identical scripts and fonts by SHA-256 hash, reducing bandwidth by up to 85%.

  • Anti-Bot Circuit Breaker: Instant quarantine on 403, 429, or Turnstile challenges with automatic session handover.

  • Docker & Docker Compose: Ready for production deployment alongside agent clusters.

Available at Gumroad.


📄 License

MIT © Johann Schiffer

Available Tools

5 tools
classify_assetA

Checks if a URL points to a heavy static asset (image, font, video, stylesheet) that can bypass residential proxies.

NameRequiredDescriptionDefault
urlYesThe URL to classify

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It usefully explains the semantics of the classification (what counts as heavy/static and why it matters for proxy bypass), but it does not say whether the check performs network I/O, whether it is side-effect free, or how the result is expressed (boolean vs. category).

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?

A single sentence with the classification target front-loaded and parenthetical examples that earn their space by defining the term of art. No filler and nothing that could be cut without losing meaning.

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

Completeness3/5

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

There is no output schema and no annotations, so the description is the only place that could explain the return value, and it does not (boolean? asset type? confidence?). The purpose and input side are complete, but the result side leaves an agent guessing.

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% for the single 'url' parameter, so the schema already documents the input fully. The description adds no format, normalization, or scheme requirements beyond what the schema provides, which places it at the baseline for a fully documented parameter.

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?

Names a specific verb ('Checks') and resource ('a URL'), then enumerates exactly what qualifies as a heavy static asset (image, font, video, stylesheet). This is concrete enough that an agent can tell instantly that classify_asset is a URL-content classifier rather than the routing, header, metric, or bandwidth tools in the sibling set.

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

Usage Guidelines3/5

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

The phrase 'that can bypass residential proxies' implies the decision context in which this tool matters, but the description never states when to call it versus the alternatives or what the caller should do with the answer. Usage is inferred rather than prescribed.

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

get_bandwidth_savingsB

Returns total bandwidth redirected away from expensive residential proxies and cumulative USD saved.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. 'Returns' implies a read-only operation and the two returned metrics are named, but there is no disclosure of scope (account vs. key), time window, refresh behavior, or permissions. The 'cumulative' wording hints at accumulation but never defines the period.

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?

A single front-loaded sentence that names both returned values with no filler. Nothing is wasted.

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

Completeness3/5

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

For a no-parameter, no-annotation tool with no output schema, the description is the sole source of return information and does identify the two metrics. However, it omits the aggregation window for 'cumulative' and the scope of the measurement, leaving an agent unable to interpret the numbers fully.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. There are no argument semantics for the description to clarify or omit.

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

Purpose4/5

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

States a specific verb (Returns) and clearly identifies the resource: total bandwidth redirected from residential proxies plus cumulative USD savings. The resource is distinct from siblings like record_metric and route_request, though it does not explicitly contrast itself with them.

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

Usage Guidelines2/5

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

There is no guidance on when to call this tool, when not to, or which sibling to use instead. An agent must infer usage entirely from the description's statement of returned data.

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

get_evasion_headersB

Returns rotating anti-detection browser headers (User-Agent, Sec-CH-UA, viewport specifications).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose a genuine behavioral trait with 'rotating' (implying each call may return different values), which is valuable context, but it omits whether the operation is read-only, deterministic, or rate-limited.

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

Conciseness4/5

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

A single efficient sentence with the core purpose front-loaded. Nothing is wasted, though it is arguably terse for a tool with no other documentation to fall back on.

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

Completeness4/5

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

With no output schema and no parameters, the description is nearly complete for a zero-arg reader: it names the kind of data returned and gives example fields. It would be stronger with a note on format or rotation cadence, but the essentials are present.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case. The parenthetical list of header fields describes return content rather than inputs, adding marginal but accurate context.

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

Purpose4/5

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

States a specific verb (Returns) and resource (rotating anti-detection browser headers) with concrete examples of contents. The purpose is unmistakable, though it never names or contrasts with the sibling tools, which all operate in unrelated domains anyway.

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

Usage Guidelines2/5

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

There is no guidance on when to call this tool, what triggers a need for rotated headers, or how it relates to sibling tools like route_request. The agent must infer usage entirely from the name.

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

record_metricB

Records bytes transferred and tier used to calculate cumulative bandwidth and cost savings.

NameRequiredDescriptionDefault
tier_usedYesThe tier used
bytes_transferredYesBytes transferred in the request

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose a genuine side effect — that recordings feed cumulative bandwidth and cost aggregates — but omits whether repeated calls double-count, idempotency, permission requirements, or what the call returns.

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?

A single front-loaded sentence with the verb first and no filler. Every clause (bytes, tier, cumulative bandwidth, cost savings) carries information the agent needs.

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

Completeness3/5

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

For a two-parameter mutation tool with no annotations and no output schema, the description explains the purpose but not the return value, error behavior, or the aggregation semantics an agent would need to call it safely. Adequate but with clear gaps.

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%, with both parameters documented (including the tier enum), so the schema does the heavy lifting. The description only restates 'bytes transferred and tier used' and adds no format, unit, or valid-range detail beyond it.

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

Purpose4/5

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

The description states a specific verb and resource ('Records bytes transferred and tier used') plus the downstream effect (calculating cumulative bandwidth and cost savings), which clearly separates it from the read-only sibling get_bandwidth_savings. It does not, however, explicitly name or contrast itself with any sibling, so differentiation is inferable rather than stated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no statement of prerequisites (e.g., an active routed request), and no mention of the read counterpart get_bandwidth_savings. The downstream calculation purpose only implies that it is called after a transfer, leaving selection logic to inference.

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

route_requestC

Determines whether an HTTP request should use residential, datacenter, or direct connection to optimize cost.

NameRequiredDescriptionDefault
urlYesThe destination URL
methodNoHTTP method (GET, POST, etc.)GET
force_residentialNoWhether to force residential IP tier

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It never resolves the central ambiguity of whether it merely returns a routing decision or actually performs the request, nor does it state side effects, auth requirements, or rate limits.

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

Conciseness4/5

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

A single, front-loaded sentence with no filler or repetition. It is efficient, though its brevity borders on under-specification rather than tight concision.

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

Completeness2/5

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

Three parameters are fully documented, but there is no output schema and the description never explains what the tool returns (a tier label, a decision object, a routed request?) or how the decision is meant to be consumed. For a decision-producing tool that is a material gap.

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 the schema already documents url, method, and force_residential; the baseline is 3. The description's mention of the three tiers adds only loose context for the force_residential override and nothing for the other parameters.

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

Purpose4/5

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

States a specific verb (determines) and resource (HTTP request routing tier), and enumerates the three outcomes (residential, datacenter, direct) with the optimization goal. It is clear what the tool produces, though it does not name or contrast itself against any sibling.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named. The phrase 'to optimize cost' hints at the intent but leaves the agent to infer when this should be called versus just issuing the request directly.

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

Tool Schema Changelog

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

  1. 5 tool updatesv1.0.0
    • First observedclassify_asset
    • First observedget_bandwidth_savings
    • First observedget_evasion_headers
    • First observedrecord_metric
    • First observedroute_request

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct purpose: routing decisions, asset classification, header generation, metric recording, and savings reporting. route_request and classify_asset both touch routing logic and could be momentarily confused, but their descriptions clearly delineate a decision tool versus an asset-type check.

Naming Consistency5/5

All five tools follow a consistent verb_noun snake_case pattern (route_request, classify_asset, get_evasion_headers, record_metric, get_bandwidth_savings). No mixed conventions or stylistic deviations.

Tool Count5/5

Five tools is well-scoped for a proxy cost-optimization domain, with each tool earning its place across routing, classification, headers, recording, and reporting. No redundancy or padding.

Completeness4/5

The surface covers the core lifecycle: decide routing, classify assets, fetch headers, record usage, and report savings. Minor gaps exist, such as resetting metrics or listing/configuring available proxy tiers, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants with powerful, detection-resistant browser automation capabilities, allowing them to control a real web browser to navigate, extract content, and perform tasks while avoiding bot detection.
    471 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    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.
    6 npm
    1
    MIT