MCP server for Reqable local capture data
Project description
Reqable MCP Server
Reqable MCP Server exposes local Reqable capture traffic to MCP clients (Windsurf/Cursor/Claude/Codex).
Default architecture is local-only:
- Reqable posts HAR(JSON) to
http://127.0.0.1:18765/report. reqable-mcpnormalizes and stores requests in local SQLite.- MCP tools query local data only (no cloud relay by default).
Features
- Local-first, privacy-first ingest path.
- Real-time ingest via Reqable Report Server.
- HAR file import fallback for missed sessions.
- HTTP request query/search/domain stats/API analysis.
- WebSocket session/message parsing for HAR entries carrying message-frame extensions.
- Cross-platform runtime (macOS / Linux / Windows with Python 3.10+).
Prerequisites
- Install and open Reqable.
- Configure Reqable Report Server to post to
http://127.0.0.1:18765/report. - Ensure Node.js (for
npx) anduv(foruvx) are available.
Installation
Run via npx (recommended)
npx -y reqable-mcp@latest
Local development
uv run reqable-mcp
MCP Client Configuration
{
"mcpServers": {
"reqable": {
"command": "npx",
"args": ["-y", "reqable-mcp@latest"]
}
}
}
Reqable Report Server Setup
Use these values in Reqable "Add Report Server":
- Name:
reqable-mcp-local - Match rule:
*(or your target domains) - Server URL:
http://127.0.0.1:18765/report - Compression:
None(or keep consistent with your receiver)
After saving, generate traffic and call ingest_status to verify incoming payload count.
Important note: Reqable itself supports WebSocket debugging, but the current official Report Server docs describe uploading completed HTTP sessions in HAR format. reqable-mcp listens on HTTP only for ingest; it does not expose a native WebSocket listener endpoint. WebSocket capture is supported when the incoming HAR/report payload contains WebSocket frame extensions such as _webSocketMessages. The current implementation preserves raw entry JSON and raw message JSON, and returns them via get_request, get_websocket_session, and search_websocket_messages. HAR export/import remains the fallback when live Report Server pushes do not include those frames.
Available Tools
ingest_status: ingest server state and countersimport_har: import HAR from file pathlist_requests: list recent HTTP/WebSocket handshake requests with filtersget_request: fetch request details by ID (fullincludesraw_entry)search_requests: keyword search in HTTP URL/body/raw uploaded entry (raw/raw_entry)list_websocket_sessions: list captured WebSocket sessionsget_websocket_session: fetch WebSocket session details and messages by ID (includingraw_entryand messageraw)search_websocket_messages: precise WebSocket message search by keyword, direction, type, opcode, close code, domain, and request IDanalyze_websocket_session: summarize directions, message types, JSON shapes, and close events for a sessionexport_websocket_session_raw: export the raw uploaded WebSocket entry and raw frame listhealth_report: ingest status + WebSocket data quality reportrepair_websocket_messages: backfill missing fields from raw frames (supports dry-run)get_domains: domain-level request statisticsanalyze_api: infer API shapes for a domaingenerate_code: generate sample client code from captured HTTP request
Environment Variables
| Variable | Description | Default |
|---|---|---|
REQABLE_INGEST_HOST |
Report receiver host | 127.0.0.1 |
REQABLE_INGEST_PORT |
Report receiver port | 18765 |
REQABLE_INGEST_PATH |
Report receiver path | /report |
REQABLE_DATA_DIR |
Local data directory | platform app data dir |
REQABLE_DB_PATH |
SQLite file path | ${REQABLE_DATA_DIR}/requests.db |
REQABLE_MAX_BODY_SIZE |
Max persisted body bytes per request/message | 102400 |
REQABLE_MAX_REPORT_SIZE |
Max accepted report payload bytes | 10485760 |
REQABLE_MAX_IMPORT_FILE_SIZE |
Max HAR import file bytes | 104857600 |
REQABLE_RETENTION_DAYS |
Local retention window | 7 |
REQABLE_INGEST_TOKEN |
Optional local auth token | unset |
Privacy and Data Retention
- Data stays on local machine in default mode.
- Retention cleanup is applied to local DB records, including WebSocket messages.
- If ingest server is offline, Reqable failed report push is not retried.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reqable_mcp-0.2.0.tar.gz.
File metadata
- Download URL: reqable_mcp-0.2.0.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9970796f5fe029311ddf45f11019c2df5bf7cde1cdd9ca97c975c13399a7ee21
|
|
| MD5 |
976a7e1d62a685c5df319f45119a6b5c
|
|
| BLAKE2b-256 |
b3b6d6d9a743e2400d1a74e0205384317e28fe3a4b4813cfe0d1fbd90598084f
|
File details
Details for the file reqable_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: reqable_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 29.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3c9a82cca54a6230a4feb4528cb8cf7e5f6bea97449db1ab5c1dd5cb2f7ed83
|
|
| MD5 |
a7d5d54fcf884c83e8c6a31fc2dd6c0c
|
|
| BLAKE2b-256 |
ec5a4fb73dd7ca3dd8d990e2294b618f654b6c64fe01ea1ebe2998cd85593f1d
|