MCP-RQuest
by xxxbrian
Verified
# mcp-rquest
[](https://pypi.org/project/mcp-rquest/) [](https://pypi.org/project/mcp-rquest/) [](https://github.com/xxxbrian/mcp-rquest) [](https://github.com/xxxbrian/mcp-rquest)
A Model Context Protocol (MCP) server that provides advanced HTTP request capabilities for Claude and other LLMs. Built on [rquest](https://github.com/0x676e67/rquest), this server enables realistic browser emulation with accurate TLS/JA3/JA4 fingerprints, allowing models to interact with websites more naturally and bypass common anti-bot measures. It also supports converting PDF and HTML documents to Markdown for easier processing by LLMs.
## Features
- **Complete HTTP Methods**: Support for GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, and TRACE
- **Browser Fingerprinting**: Accurate TLS, JA3/JA4, and HTTP/2 browser fingerprints
- **Content Handling**:
- Automatic handling of large responses with token counting
- HTML to Markdown conversion for better LLM processing
- PDF to Markdown conversion using the Marker library
- Secure storage of responses in system temporary directories
- **Authentication Support**: Basic, Bearer, and custom authentication methods
- **Request Customization**:
- Headers, cookies, redirects
- Form data, JSON payloads, multipart/form-data
- Query parameters
- **SSL Security**: Uses BoringSSL for secure connections with realistic browser fingerprints
## Available Tools
- **HTTP Request Tools**:
- `http_get` - Perform GET requests with optional parameters
- `http_post` - Submit data via POST requests
- `http_put` - Update resources with PUT requests
- `http_delete` - Remove resources with DELETE requests
- `http_patch` - Partially update resources
- `http_head` - Retrieve only headers from a resource
- `http_options` - Retrieve options for a resource
- `http_trace` - Diagnostic request tracing
- **Response Handling Tools**:
- `get_stored_response` - Retrieve stored large responses, optionally by line range
- `get_stored_response_with_markdown` - Convert HTML or PDF responses to Markdown format for better LLM processing
- `get_model_state` - Get the current state of the PDF models loading process
- `restart_model_loading` - Restart the PDF models loading process if it failed or got stuck
## PDF Support
mcp-rquest now supports PDF to Markdown conversion, allowing you to download PDF files and convert them to Markdown format that's easy for LLMs to process:
1. **Automatic PDF Detection**: PDF files are automatically detected based on content type
2. **Seamless Conversion**: The same `get_stored_response_with_markdown` tool works for both HTML and PDF files
3. **High-Quality Conversion**: Uses the [Marker](https://github.com/VikParuchuri/marker) library for accurate PDF to Markdown transformation
4. **Optimized Performance**: Models are pre-downloaded during package installation to avoid delays during request processing
## Installation
### Using uv (recommended)
When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run _mcp-rquest_.
### Using pip
Alternatively you can install `mcp-rquest` via pip:
```bash
pip install mcp-rquest
```
After installation, you can run it as a script using:
```bash
python -m mcp_rquest
```
## Configuration
### Configure for Claude.app
Add to your Claude settings:
Using `uvx`:
```json
{
"mcpServers": {
"http-rquest": {
"command": "uvx",
"args": ["mcp-rquest"]
}
}
}
```
Using `pip`:
```json
{
"mcpServers": {
"http-rquest": {
"command": "python",
"args": ["-m", "mcp_rquest"]
}
}
}
```
Using `pipx`:
```json
{
"mcpServers": {
"http-rquest": {
"command": "pipx",
"args": ["run", "mcp-rquest"]
}
}
}
```
</details>
## Browser Emulation
mcp-rquest leverages rquest's powerful browser emulation capabilities to provide realistic browser fingerprints, which helps bypass bot detection and access content normally available only to standard browsers. Supported browser fingerprints include:
- Chrome (multiple versions)
- Firefox
- Safari (including iOS and iPad versions)
- Edge
- OkHttp
This ensures that requests sent through mcp-rquest appear as legitimate browser traffic rather than bot requests.
## Development
### Setting up a Development Environment
1. Clone the repository
2. Create a virtual environment using uv:
```bash
uv venv
```
3. Activate the virtual environment:
```bash
# Unix/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
```
4. Install development dependencies:
```bash
uv pip install -e ".[dev]"
```
## Acknowledgements
- This project is built on top of [rquest](https://github.com/0x676e67/rquest), which provides the advanced HTTP client with browser fingerprinting capabilities.
- rquest is based on a fork of [reqwest](https://github.com/seanmonstar/reqwest).