Skip to main content

MCP server for Reqable local capture data

Project description

Reqable MCP Server

NPM Version PyPI Version GitHub License

Reqable MCP Server exposes local Reqable capture traffic to MCP clients (Windsurf/Cursor/Claude/Codex).

Default architecture is local-only:

  1. Reqable posts HAR(JSON) to http://127.0.0.1:18765/report.
  2. reqable-mcp normalizes and stores requests in local SQLite.
  3. MCP tools query local data only (no cloud relay by default).

Docs: English | 中文

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

  1. Install and open Reqable.
  2. Configure Reqable Report Server to post to http://127.0.0.1:18765/report.
  3. Ensure Node.js (for npx) and uv (for uvx) 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":

  1. Name: reqable-mcp-local
  2. Match rule: * (or your target domains)
  3. Server URL: http://127.0.0.1:18765/report
  4. 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 counters
  • import_har: import HAR from file path
  • list_requests: list recent HTTP/WebSocket handshake requests with filters
  • get_request: fetch request details by ID (full includes raw_entry)
  • search_requests: keyword search in HTTP URL/body/raw uploaded entry (raw / raw_entry)
  • list_websocket_sessions: list captured WebSocket sessions
  • get_websocket_session: fetch WebSocket session details and messages by ID (including raw_entry and message raw)
  • search_websocket_messages: precise WebSocket message search by keyword, direction, type, opcode, close code, domain, and request ID
  • analyze_websocket_session: summarize directions, message types, JSON shapes, and close events for a session
  • export_websocket_session_raw: export the raw uploaded WebSocket entry and raw frame list
  • health_report: ingest status + WebSocket data quality report
  • repair_websocket_messages: backfill missing fields from raw frames (supports dry-run)
  • get_domains: domain-level request statistics
  • analyze_api: infer API shapes for a domain
  • generate_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

reqable_mcp-0.2.0.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reqable_mcp-0.2.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

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

Hashes for reqable_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9970796f5fe029311ddf45f11019c2df5bf7cde1cdd9ca97c975c13399a7ee21
MD5 976a7e1d62a685c5df319f45119a6b5c
BLAKE2b-256 b3b6d6d9a743e2400d1a74e0205384317e28fe3a4b4813cfe0d1fbd90598084f

See more details on using hashes here.

File details

Details for the file reqable_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for reqable_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3c9a82cca54a6230a4feb4528cb8cf7e5f6bea97449db1ab5c1dd5cb2f7ed83
MD5 a7d5d54fcf884c83e8c6a31fc2dd6c0c
BLAKE2b-256 ec5a4fb73dd7ca3dd8d990e2294b618f654b6c64fe01ea1ebe2998cd85593f1d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page