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. - Optional incremental WebSocket events can be posted to
http://127.0.0.1:18765/ws/events. reqable-mcpnormalizes and stores requests/messages 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-mcp still uses HTTP-only ingest transport (no native ws:// listener), but now supports two HTTP ingest paths: /report for HAR/session payload and /ws/events for incremental WebSocket events. WebSocket capture works when Reqable payload includes frame data (for example _webSocketMessages or event frame objects). Raw entry JSON and raw message JSON are preserved and exposed by WebSocket tools. HAR export/import remains the fallback when live pushes miss 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 sessionslist_active_websocket_sessions: list recently active WebSocket sessions by latest captured framesget_websocket_session: fetch WebSocket session details and messages by ID (includingraw_entryand messageraw)tail_websocket_messages: incremental fetch byrequest_id+after_seqcursorsearch_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_WS_EVENTS_PATH |
Incremental WebSocket event receiver path | /ws/events |
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.3.0.tar.gz.
File metadata
- Download URL: reqable_mcp-0.3.0.tar.gz
- Upload date:
- Size: 39.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0fbf2ed31b20b2b09c7bcd306a6ad5009db65f34b50905f59fe5476496cf490
|
|
| MD5 |
fb364c3e41ae11567544b95f97b8c5a8
|
|
| BLAKE2b-256 |
2c35dff290dfced84202f1eea961b00d8b4719563f222944fbb165bc342368e3
|
File details
Details for the file reqable_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: reqable_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5ea3c041a43df3a71cc4284702c09c15ac7fa2ff029aad036c16ca93b0ad68f
|
|
| MD5 |
14ce9492e0c543b69c5a77e2a0cdb089
|
|
| BLAKE2b-256 |
0cc0bc1f70f69c206b357b182fa94c5a841949a36610ae3dc3cd2ef3e19e168e
|