Impersonation is the headline, and it is what gets you past clients that reject non-browser fingerprints. But the option that changes daily use is `return_format`: asking for markdown means a fetched page arrives as something a model can read, rather than several thousand tokens of tags. Pick the impersonation profile deliberately — the version list is long and specific for a reason.
A Python server around the primp HTTP client, whose distinguishing feature is browser impersonation: the request carries the TLS and header fingerprint of a specific browser version rather than a generic client. Two tools cover the ground — one for ordinary requests, one for multipart file uploads.
- `primp_request` performs GET, POST, PUT, PATCH, DELETE, HEAD or OPTIONS with an `impersonate` profile and an `impersonate_os`
- `primp_upload` posts files as multipart form data, taking base64 content with a filename and content type
- `return_format` shapes the response as text, JSON, markdown, plain text or rich text — so a page can come back readable instead of as raw HTML
- Impersonation profiles cover Chrome 99-131, Firefox 99-133, Safari 12-18 including iPad and iPhone, Edge 99-131 and OkHttp 3.14.9-5.0.0
- Operating systems: Windows, macOS, Linux, Android, iOS
- Basic auth and Bearer tokens, HTTP/HTTPS proxies, configurable timeouts, redirect handling and SSL verification
No account and no key. Install from a checkout with `pip install -e .`, then set the command to `primp-mcp` in your client config. Project `primp-mcp`, version 0.1.0. It will fetch any URL you give it with your network access, so treat it the way you would treat curl on the same machine.
One command — primp-mcp
