This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Vollständige Konfigurationsreferenz
Quellen und Priorität
Die Priorität ist Flag > Environment > Datei > Default. Datei-Keys sind
hierarchisch. Die zugehörige Environment-Variable entsteht immer aus
PRIVATE_PROXY_MCP_ plus dem großgeschriebenen Key mit _ statt .; alle
Variablen sind in den Tabellen explizit genannt. Komplexe Listen und Maps
sollten in der Datei gepflegt werden.
Flags existieren nur, wenn die Spalte dies nennt. Alle anderen Keys sind über
Datei und Environment verfügbar. Zeitwerte verwenden Go-Duration-Syntax wie
250ms, 10s oder 2m; Größen sind Bytes; Ports sind Ganzzahlen.
Logging
| Datei-Key | Environment | Flag | Default |
|---|---|---|---|
log.level |
PRIVATE_PROXY_MCP_LOG_LEVEL |
--log-level |
info |
log.format |
PRIVATE_PROXY_MCP_LOG_FORMAT |
--log-format |
json |
log.redact_headers |
PRIVATE_PROXY_MCP_LOG_REDACT_HEADERS |
– | [] |
Level ist debug, info, warn oder error; Format ist json oder text.
Die Anwendung redigiert sensible Standardheader und Shared Keys unabhängig von
redact_headers; die Liste ergänzt anwendungsspezifische Headernamen.
MCP
| Datei-Key | Environment | Flag | Default |
|---|---|---|---|
mcp.listen_address |
PRIVATE_PROXY_MCP_MCP_LISTEN_ADDRESS |
--mcp-listen-address |
127.0.0.1:9334 |
mcp.endpoint |
PRIVATE_PROXY_MCP_MCP_ENDPOINT |
--mcp-endpoint |
/mcp |
mcp.allowed_origins |
PRIVATE_PROXY_MCP_MCP_ALLOWED_ORIGINS |
--mcp-allowed-origins |
[] |
mcp.tls_terminated_by_proxy |
PRIVATE_PROXY_MCP_MCP_TLS_TERMINATED_BY_PROXY |
– | false |
mcp.trusted_proxy_cidrs |
PRIVATE_PROXY_MCP_MCP_TRUSTED_PROXY_CIDRS |
– | [] |
mcp.read_header_timeout |
PRIVATE_PROXY_MCP_MCP_READ_HEADER_TIMEOUT |
--mcp-read-header-timeout |
10s |
mcp.idle_timeout |
PRIVATE_PROXY_MCP_MCP_IDLE_TIMEOUT |
--mcp-idle-timeout |
2m |
mcp.shutdown_timeout |
PRIVATE_PROXY_MCP_MCP_SHUTDOWN_TIMEOUT |
--mcp-shutdown-timeout |
10s |
mcp.max_header_bytes |
PRIVATE_PROXY_MCP_MCP_MAX_HEADER_BYTES |
--mcp-max-header-bytes |
1048576 |
Endpoint muss mit / beginnen und darf weder Query noch Fragment besitzen.
Eine Non-Loopback-Adresse wird nur akzeptiert, wenn
tls_terminated_by_proxy=true und mindestens eine exakte, absolute Origin
gesetzt ist. Forwarded-Header werden nur von trusted_proxy_cidrs ausgewertet.
Alle Zeit- und Größenlimits müssen positiv sein.
Reverse Connector und Runtime
| Datei-Key | Environment | Flag | Default |
|---|---|---|---|
private_proxy.identity |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_IDENTITY |
--private-proxy-identity |
default |
private_proxy.listen_address |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_LISTEN_ADDRESS |
--private-proxy-listen-address¹ |
0.0.0.0:9335 |
private_proxy.connector_url |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_CONNECTOR_URL |
--private-proxy-connector-url² |
https://localhost:9335/connector |
private_proxy.shared_key |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_SHARED_KEY |
--private-proxy-shared-key |
leer |
private_proxy.tls_ca_file |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_TLS_CA_FILE |
--private-proxy-tls-ca-file² |
leer |
private_proxy.tls_server_name |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_TLS_SERVER_NAME |
--private-proxy-tls-server-name² |
leer |
private_proxy.insecure_skip_verify |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_INSECURE_SKIP_VERIFY |
--private-proxy-insecure-skip-verify² |
false |
private_proxy.allow_insecure_http |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_ALLOW_INSECURE_HTTP |
--private-proxy-allow-insecure-http² |
false |
private_proxy.handshake_timeout |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_HANDSHAKE_TIMEOUT |
--private-proxy-handshake-timeout² |
10s |
private_proxy.ping_interval |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_PING_INTERVAL |
--private-proxy-ping-interval² |
30s |
private_proxy.pong_timeout |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_PONG_TIMEOUT |
--private-proxy-pong-timeout² |
10s |
private_proxy.drain_timeout |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_DRAIN_TIMEOUT |
--private-proxy-drain-timeout² |
10s |
private_proxy.reconnect_delay |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_RECONNECT_DELAY |
--private-proxy-reconnect-delay² |
100ms |
private_proxy.backoff_initial |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_BACKOFF_INITIAL |
--private-proxy-backoff-initial² |
250ms |
private_proxy.backoff_max |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_BACKOFF_MAX |
--private-proxy-backoff-max² |
30s |
private_proxy.backoff_jitter |
PRIVATE_PROXY_MCP_PRIVATE_PROXY_BACKOFF_JITTER |
--private-proxy-backoff-jitter² |
0.2 |
runtime.connect_timeout |
PRIVATE_PROXY_MCP_RUNTIME_CONNECT_TIMEOUT |
--runtime-connect-timeout² |
10s |
¹ nur mcp-server; ² nur private-proxy. Der Shared Key ist für beide Modi
zum Start erforderlich. identity ist 1–128 Zeichen und nicht geheim.
connector_url muss /connector, einen expliziten Port und normalerweise
https verwenden. Backoff-Jitter liegt zwischen 0 und 1; Maximum ist nicht
kleiner als Initialwert.
HTTP-Ausführung
| Datei-Key | Environment | Default |
|---|---|---|
http.dns_timeout |
PRIVATE_PROXY_MCP_HTTP_DNS_TIMEOUT |
5s |
http.request_timeout |
PRIVATE_PROXY_MCP_HTTP_REQUEST_TIMEOUT |
30s |
http.request_body_limit |
PRIVATE_PROXY_MCP_HTTP_REQUEST_BODY_LIMIT |
6291456 |
http.response_body_limit |
PRIVATE_PROXY_MCP_HTTP_RESPONSE_BODY_LIMIT |
6291456 |
http.decompressed_body_limit |
PRIVATE_PROXY_MCP_HTTP_DECOMPRESSED_BODY_LIMIT |
6291456 |
http.max_redirects |
PRIVATE_PROXY_MCP_HTTP_MAX_REDIRECTS |
5 |
http.max_concurrent_requests |
PRIVATE_PROXY_MCP_HTTP_MAX_CONCURRENT_REQUESTS |
32 |
http.allowed_methods |
PRIVATE_PROXY_MCP_HTTP_ALLOWED_METHODS |
[GET, HEAD, POST, PUT, PATCH, DELETE] |
http.allowed_sensitive_request_headers |
PRIVATE_PROXY_MCP_HTTP_ALLOWED_SENSITIVE_REQUEST_HEADERS |
[] |
http.allowed_client_profiles |
PRIVATE_PROXY_MCP_HTTP_ALLOWED_CLIENT_PROFILES |
[default, chrome-desktop, firefox-desktop, mobile-chrome] |
http.client_profiles |
PRIVATE_PROXY_MCP_HTTP_CLIENT_PROFILES |
{} |
Timeouts und Limits sind positiv; request_timeout darf höchstens die
Tunnel-Deadline (Wire 1.1: 30m, Legacy 1.0: 120s) sein.
Nur Authorization und Cookie können über
allowed_sensitive_request_headers opt-in freigeschaltet werden.
Proxy-Authorization, Host, Framing- und Hop-by-hop-Header bleiben verboten.
Ein eigenes Profil wird unter
http.client_profiles.<name>.headers.<header>: [values] definiert und muss in
allowed_client_profiles stehen. default muss freigegeben bleiben.
Netzwerk-Policy
| Datei-Key | Environment | Default |
|---|---|---|
http.network_policy.allowed_schemes |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_ALLOWED_SCHEMES |
[http, https] |
http.network_policy.allowed_hosts |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_ALLOWED_HOSTS |
[] |
http.network_policy.allowed_host_suffixes |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_ALLOWED_HOST_SUFFIXES |
[] |
http.network_policy.denied_hosts |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_DENIED_HOSTS |
[] |
http.network_policy.denied_host_suffixes |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_DENIED_HOST_SUFFIXES |
[] |
http.network_policy.allowed_ports |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_ALLOWED_PORTS |
[] |
http.network_policy.denied_ports |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_DENIED_PORTS |
[] |
http.network_policy.allow_cidrs |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_ALLOW_CIDRS |
[] |
http.network_policy.deny_cidrs |
PRIVATE_PROXY_MCP_HTTP_NETWORK_POLICY_DENY_CIDRS |
[] |
Leere Host-/Port-Allowlisten schränken öffentliche Ziele nicht zusätzlich ein.
Private, Loopback-, Link-local-, Multicast-, unspezifizierte und weitere nicht
öffentliche Adressen bleiben trotzdem gesperrt. Nur allow_cidrs schaltet
konkrete interne Zielnetze frei; Deny-Regeln haben Vorrang.
Media
| Datei-Key | Environment | Default |
|---|---|---|
media.enabled |
PRIVATE_PROXY_MCP_MEDIA_ENABLED |
true (Auto-Discovery; false = Hard-Off) |
media.yt_dlp_path |
PRIVATE_PROXY_MCP_MEDIA_YT_DLP_PATH |
yt-dlp (PATH-Lookup) |
media.yt_dlp_version |
PRIVATE_PROXY_MCP_MEDIA_YT_DLP_VERSION |
leer (optionaler Pin) |
media.ffmpeg_path |
PRIVATE_PROXY_MCP_MEDIA_FFMPEG_PATH |
leer |
media.ffmpeg_version |
PRIVATE_PROXY_MCP_MEDIA_FFMPEG_VERSION |
leer |
media.temp_root |
PRIVATE_PROXY_MCP_MEDIA_TEMP_ROOT |
leer/System-Temp |
media.artifact_ttl |
PRIVATE_PROXY_MCP_MEDIA_ARTIFACT_TTL |
10m |
media.max_bytes |
PRIVATE_PROXY_MCP_MEDIA_MAX_BYTES |
268435456 |
media.max_duration |
PRIVATE_PROXY_MCP_MEDIA_MAX_DURATION |
15m |
media.max_concurrent |
PRIVATE_PROXY_MCP_MEDIA_MAX_CONCURRENT |
2 |
media.max_starts_per_minute |
PRIVATE_PROXY_MCP_MEDIA_MAX_STARTS_PER_MINUTE |
30 |
media.format_profiles |
PRIVATE_PROXY_MCP_MEDIA_FORMAT_PROFILES |
{} |
media.client_profiles |
PRIVATE_PROXY_MCP_MEDIA_CLIENT_PROFILES |
{} |
media.allowed_hosts |
PRIVATE_PROXY_MCP_MEDIA_ALLOWED_HOSTS |
www.youtube.com, youtu.be |
media.allowed_host_suffixes |
PRIVATE_PROXY_MCP_MEDIA_ALLOWED_HOST_SUFFIXES |
youtube.com |
media.allowed_ports |
PRIVATE_PROXY_MCP_MEDIA_ALLOWED_PORTS |
[80, 443] |
media.artifact_base_url |
PRIVATE_PROXY_MCP_MEDIA_ARTIFACT_BASE_URL |
leer; auf mcp-server HTTPS-Pflicht |
media.transcript_providers |
PRIVATE_PROXY_MCP_MEDIA_TRANSCRIPT_PROVIDERS |
ytdlp, innertube |
Standard ist Auto-Discovery: der Private Proxy sucht yt-dlp im PATH bzw.
unter yt_dlp_path und aktiviert die Capability bei Erfolg. Ein Versions-Pin
ist optional. Fehlt die Host-Allowlist, gelten YouTube-Defaults. ffmpeg-Pfad
und -Version werden nur gemeinsam akzeptiert. Alle Limits sind positiv;
max_duration ist höchstens 30m (Wire 1.1). artifact_base_url ist auf dem
mcp-server bei media.enabled: true verpflichtend und muss auf die
externe HTTPS-MCP-Basis-URL ohne Credentials, Query oder Fragment zeigen. Der
Private Proxy braucht diese URL nicht. Ein Fallback auf den lokalen
HTTP-Listener ist nicht zulässig.
transcript_providers steuert die Transcript-Kette: yt-dlp primär, InnerTube
als HTTP-Fallback (und für translation_language via YouTube tlang=).
yt-dlp-CDN-Ziele bleiben Host-/Container-Egress; InnerTube läuft über
httpexec/http.network_policy.
Browser
| Datei-Key | Environment | Default |
|---|---|---|
browser.enabled |
PRIVATE_PROXY_MCP_BROWSER_ENABLED |
false |
browser.backend |
PRIVATE_PROXY_MCP_BROWSER_BACKEND |
chromedp |
browser.executable_path |
PRIVATE_PROXY_MCP_BROWSER_EXECUTABLE_PATH |
leer |
browser.executable_version |
PRIVATE_PROXY_MCP_BROWSER_EXECUTABLE_VERSION |
leer |
browser.stealth |
PRIVATE_PROXY_MCP_BROWSER_STEALTH |
true |
browser.default_client_profile |
PRIVATE_PROXY_MCP_BROWSER_DEFAULT_CLIENT_PROFILE |
chrome-desktop |
browser.allowed_client_profiles |
PRIVATE_PROXY_MCP_BROWSER_ALLOWED_CLIENT_PROFILES |
chrome-desktop, mobile-chrome |
browser.playwright_node_path |
PRIVATE_PROXY_MCP_BROWSER_PLAYWRIGHT_NODE_PATH |
leer |
browser.playwright_sidecar_path |
PRIVATE_PROXY_MCP_BROWSER_PLAYWRIGHT_SIDECAR_PATH |
leer |
browser.temp_root |
PRIVATE_PROXY_MCP_BROWSER_TEMP_ROOT |
leer/System-Temp |
browser.artifact_base_url |
PRIVATE_PROXY_MCP_BROWSER_ARTIFACT_BASE_URL |
leer/MCP-Basis-URL |
browser.artifact_ttl |
PRIVATE_PROXY_MCP_BROWSER_ARTIFACT_TTL |
10m |
browser.max_sessions |
PRIVATE_PROXY_MCP_BROWSER_MAX_SESSIONS |
4 |
browser.max_tabs_per_session |
PRIVATE_PROXY_MCP_BROWSER_MAX_TABS_PER_SESSION |
1 |
browser.max_session_lifetime |
PRIVATE_PROXY_MCP_BROWSER_MAX_SESSION_LIFETIME |
5m |
browser.max_memory_mb |
PRIVATE_PROXY_MCP_BROWSER_MAX_MEMORY_MB |
256 |
browser.max_concurrent_actions |
PRIVATE_PROXY_MCP_BROWSER_MAX_CONCURRENT_ACTIONS |
4 |
browser.max_wait |
PRIVATE_PROXY_MCP_BROWSER_MAX_WAIT |
30s |
browser.max_snapshot_bytes |
PRIVATE_PROXY_MCP_BROWSER_MAX_SNAPSHOT_BYTES |
262144 |
browser.max_screenshot_bytes |
PRIVATE_PROXY_MCP_BROWSER_MAX_SCREENSHOT_BYTES |
4194304 |
browser.max_artifacts |
PRIVATE_PROXY_MCP_BROWSER_MAX_ARTIFACTS |
32 |
Bei Aktivierung sind Binary-Pfad und gepinnte Versionszeichenfolge
erforderlich. browser.backend ist chromedp oder playwright; bei
playwright sind Node- und Sidecar-Pfad Pflicht. Alle Limits sind positiv,
max_tabs_per_session ist exakt 1 und max_wait höchstens die Tunnel-Deadline.
Browsernavigation verwendet dieselbe http.network_policy wie direkte
HTTP-Aufträge. Plattform-Setup (Linux/macOS/Windows):
Browser-Tools.
Search
| Datei-Key | Environment | Default |
|---|---|---|
search.enabled |
PRIVATE_PROXY_MCP_SEARCH_ENABLED |
true |
search.max_results |
PRIVATE_PROXY_MCP_SEARCH_MAX_RESULTS |
10 |
Bei search.enabled: true kündigt der Private Proxy die Capability
web_search an und führt DuckDuckGo-HTML-Suchen über httpexec aus.
max_results muss zwischen 1 und 50 liegen; Tool-Aufrufe dürfen das Limit nur
verkleinern. Es gibt keinen Network-Policy-Bypass — Suchhosts bleiben unter
http.network_policy. Details: Search-Tools.
Vollständiges Beispiel
config.example.yaml enthält alle Bereiche mit
sicheren Beispielwerten. Es enthält keine produktiven Secrets, privaten
Hostnamen oder internen IP-Adressen.