Skip to content

Document HTTP(s)/MITM proxy configuration for scrape #11

Description

@quackerd

Problem Description

Could the README include a short section documenting how to route scrape traffic through an explicit HTTP(s) forward/MITM proxy?

This already works with the current Bun based implementation. I am not requesting a new proxy integration or browser dependency — just documentation for the existing runtime behavior.

For example, I currently use trawl's MITM proxy with the MCP configured like this:

environment:
  HTTP_PROXY: "http://trawl:8192"
  HTTPS_PROXY: "http://trawl:8192"
  NO_PROXY: "degoog.example.com,localhost,127.0.0.1"
  NODE_EXTRA_CA_CERTS: "/certs/ca.crt"
volumes:
  - ./certs/ca.crt:/certs/ca.crt:ro

HTTP_PROXY / HTTPS_PROXY route Bun's outgoing fetches through the proxy, while NO_PROXY can be used to keep degoog itself and local/internal endpoints out of that path.

For MITM proxies, the proxy's CA cert also needs to be trusted using NODE_EXTRA_CA_CERTS.

Motivation

The README currently describes scrape as static only. However, an external forward proxy can transparently add capabilities, such as JS rendering, anti anti-bot, challenge/captcha solving (flaresolvrr, byparr, trawl), without requiring any changes to the MCP itself.

Suggested Documentation

Something along the lines of:

## Using an HTTP(S)/MITM proxy

degoog MCP uses Bun, which respects the standard HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables. For example:

`HTTP_PROXY`: "http://proxy:8080"
`HTTPS_PROXY`: "http://proxy:8080"
`NO_PROXY`: "degoog,localhost,127.0.0.1"

If the proxy intercepts HTTPS connections, mount and trust its CA certificate using `NODE_EXTRA_CA_CERTS`.

Potential Multi-backend Fetch Support

It would be also very nice to explicitly support different fetch backends: native static fetch, flaresolvrr backends (which is the same as degoog's flaresolvrr extension), MITM/HTTP Proxies (already covered by env vars), even 4play. That would enable users to freely pick the content fetcher based on their needs.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions