Skip to main content
Glama

httptoolkit-mcp

A Model Context Protocol (MCP) server that provides AI assistants with full control over HTTP Toolkit — the powerful, open-source HTTP(S) debugging proxy.

Intercept, inspect, and debug HTTP traffic from browsers, Android/iOS devices, Docker containers, JVM processes, and more — all through natural language via your AI assistant.

Features

  • Live Traffic Capture — Capture intercepted HTTP traffic in real-time with full request/response headers and bodies

  • Browser Interception — Launch Chrome or Firefox with traffic automatically routed through the proxy

  • Android Interception — Intercept device traffic via ADB or target specific apps with Frida (bypasses certificate pinning)

  • iOS Interception — Intercept specific iOS apps via Frida on jailbroken devices

  • Docker Interception — Attach to running Docker containers and capture all outgoing HTTP traffic

  • Terminal Interception — Open intercepted terminal sessions or configure existing ones

  • JVM Attach — Attach to running Java/Kotlin/Clojure processes

  • Electron Apps — Launch Electron applications with interception enabled

  • HTTP Client — Send HTTP requests through the proxy with full control over method, headers, and body

  • Server Management — Query configuration, manage interceptors, and control the server lifecycle

  • Zero-Config with Desktop App — Automatically detects auth token from the running HTTP Toolkit desktop app

Related MCP server: mcp-browser-kit

Prerequisites

  • HTTP Toolkit installed and running (desktop app or server)

  • Node.js >= 18

Installation

No installation required — just configure your MCP client:

{
  "mcpServers": {
    "httptoolkit": {
      "command": "npx",
      "args": ["-y", "httptoolkit-mcp"]
    }
  }
}

Global install

npm install -g httptoolkit-mcp

From source

git clone https://github.com/fdciabdul/httptoolkit-mcp.git
cd httptoolkit-mcp
npm install
npm run build

Configuration

Claude Code

Add to ~/.claude/settings.json or ~/.claude.json:

{
  "mcpServers": {
    "httptoolkit": {
      "command": "npx",
      "args": ["-y", "httptoolkit-mcp"]
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "httptoolkit": {
      "command": "npx",
      "args": ["-y", "httptoolkit-mcp"]
    }
  }
}

Environment Variables

Variable

Description

Default

HTK_SERVER_URL

HTTP Toolkit management API URL

http://127.0.0.1:45457

HTK_SERVER_TOKEN

Auth token (auto-detected from desktop app)

Auto-detected

HTK_ADMIN_URL

Mockttp admin API URL

http://127.0.0.1:45456

Note: When using the HTTP Toolkit desktop app, the auth token is automatically detected from the running process — no manual configuration needed.

Example with manual environment variables:

{
  "mcpServers": {
    "httptoolkit": {
      "command": "npx",
      "args": ["-y", "httptoolkit-mcp"],
      "env": {
        "HTK_SERVER_URL": "http://127.0.0.1:45457",
        "HTK_SERVER_TOKEN": "your-token-here"
      }
    }
  }
}

Available Tools

Traffic Capture

Tool

Description

capture_traffic

Capture live intercepted HTTP traffic with full request/response bodies. Subscribes to the active HTTP Toolkit session via WebSocket. Supports auto-detection or manual session ID.

Server Management

Tool

Description

get_version

Get the HTTP Toolkit server version

get_config

Get proxy configuration (certificates, DNS, system proxy)

get_network_interfaces

List all network interfaces

trigger_update

Trigger a server update check

shutdown_server

Shutdown the HTTP Toolkit server

Interceptor Management

Tool

Description

list_interceptors

List all available interceptors and their status

get_interceptor_metadata

Get detailed metadata for a specific interceptor

activate_interceptor

Generic interceptor activation with custom options

deactivate_interceptor

Deactivate a running interceptor

Browser Interception

Tool

Description

intercept_chrome

Launch a fresh Chrome window with interception

intercept_firefox

Launch a fresh Firefox window with interception

Terminal Interception

Tool

Description

intercept_fresh_terminal

Open a new terminal with interception enabled

intercept_existing_terminal

Get commands to enable interception in an existing terminal

Docker Interception

Tool

Description

intercept_docker_container

Attach to a running Docker container

Android Interception

Tool

Description

intercept_android_adb

Intercept an Android device/emulator via ADB

frida_android_setup

Set up Frida on an Android device

frida_android_launch

Launch Frida server on an Android device

frida_android_intercept

Intercept a specific Android app via Frida

iOS Interception

Tool

Description

frida_ios_intercept

Intercept a specific iOS app via Frida

Application Interception

Tool

Description

intercept_jvm

Attach to a running JVM process

intercept_electron

Launch an Electron app with interception

HTTP Client

Tool

Description

send_http_request

Send an HTTP request through the proxy

Usage Examples

Once configured, you can ask your AI assistant things like:

  • "Capture the HTTP traffic from my intercepted Chrome for 10 seconds"

  • "List all available interceptors"

  • "Intercept Chrome on port 8000"

  • "Show me the connected Android devices"

  • "Attach to the Docker container running my API"

  • "Send a GET request to https://api.example.com/users"

  • "Set up Frida on my Android device and intercept the target app"

  • "Open an intercepted terminal session"

Capture Traffic Example

User: "Capture traffic from my browser for 5 seconds"

capture_traffic({ duration: 5, sessionId: "2474b580-482e-4a79-8488-121583d466e1" })

Result:
{
  "capturedExchanges": 2,
  "exchanges": [
    {
      "request": {
        "method": "GET",
        "url": "https://api.example.com/users",
        "headers": { "host": "api.example.com", ... },
      },
      "response": {
        "statusCode": 200,
        "headers": { "content-type": "application/json", ... },
        "body": "[{\"id\": 1, \"name\": \"John\"}]"
      }
    }
  ]
}

Architecture

┌─────────────────┐     stdio      ┌──────────────────┐    REST API    ┌─────────────────────┐
│   AI Assistant   │◄─────────────►│  httptoolkit-mcp  │◄────────────►│  httptoolkit-server  │
│ (Claude, etc.)   │     MCP       │   (this project)  │   :45457     │     (HTTP Toolkit)   │
└─────────────────┘               └──────────────────┘               └─────────────────────┘
                                          │                                    │
                                          │ WebSocket                 ┌────────┴────────┐
                                          │ (traffic capture)         │  Mockttp Proxy   │
                                          └──────────────────────────►│  :45456 (admin)  │
                                                                      │  :8000  (proxy)  │
                                                                      └────────┬────────┘
                                                                               │
                                                               ┌───────────────┼───────────────┐
                                                               │               │               │
                                                          Browsers       Android/iOS      Docker
                                                                         Devices        Containers

Credits

This project is an MCP interface for HTTP Toolkit, created by Tim Perry (@pimterry).

HTTP Toolkit is a beautiful, open-source tool for debugging, testing, and building with HTTP(S). If you find it useful, consider supporting the project.

License

MIT

Available Tools

23 tools
activate_interceptorActivate Interceptor (Generic)A

Generic tool to activate any interceptor by ID with custom options. Use the dedicated tools (intercept_chrome, intercept_docker_container, etc.) when possible for better parameter validation.

Inputs: id (required), proxyPort (required), options.

capture_trafficCapture Live Intercepted TrafficA

Capture live HTTP(S) traffic being intercepted by HTTP Toolkit. Creates a temporary session, subscribes to traffic events via WebSocket, collects requests and responses for the specified duration, then returns all captured exchanges. Use this to see what HTTP requests are being made by intercepted browsers, apps, or containers.

Inputs: duration.

deactivate_interceptorDeactivate InterceptorB

Deactivate a running interceptor and stop capturing its traffic

Inputs: id (required), proxyPort (required).

frida_android_interceptIntercept Android App via FridaA

Intercept a specific Android app using Frida dynamic instrumentation. Automatically disables most certificate pinning. Requires a rooted device with Frida server running (use frida_android_setup and frida_android_launch first).

Inputs: proxyPort (required), hostId (required), targetId (required), enableSocks.

frida_android_launchLaunch Android Frida ServerB

Launch the Frida server on an Android device. Must run frida_android_setup first.

Inputs: proxyPort (required), hostId (required).

frida_android_setupSetup Android Frida HostA

Set up a Frida host on an Android device connected via ADB. This prepares the device for app-level interception by installing the Frida server and CA certificate.

Inputs: proxyPort (required), hostId (required).

frida_ios_interceptIntercept iOS App via FridaA

Intercept a specific iOS app using Frida dynamic instrumentation. Automatically disables most certificate pinning. Requires a jailbroken device running Frida Server connected via USB.

Inputs: proxyPort (required), hostId (required), targetId (required), enableSocks.

get_configGet Proxy ConfigurationB

Get HTTP Toolkit proxy configuration including certificate paths, network interfaces, system proxy, and DNS servers

Inputs: proxyPort.

get_interceptor_metadataGet Interceptor MetadataC

Get detailed metadata for a specific interceptor. Returns available targets like Docker containers, Android devices, JVM processes, etc.

Inputs: id (required), subId.

get_network_interfacesGet Network InterfacesB

List all network interfaces on the system

Inputs: no named parameters.

get_versionGet Server VersionA

Get the current HTTP Toolkit server version

Inputs: no named parameters.

intercept_android_adbIntercept Android Device via ADBA

Intercept HTTP(S) traffic from an Android device or emulator connected via ADB. Automatically injects system HTTPS certificates into rooted devices and most emulators.

Inputs: proxyPort (required), deviceId (required), enableSocks.

intercept_chromeIntercept Chrome BrowserA

Launch a fresh independent Chrome window with all HTTP(S) traffic intercepted. The browser uses an isolated profile so it won't affect your normal browsing.

Inputs: proxyPort (required).

intercept_docker_containerAttach to Docker ContainerB

Intercept all HTTP(S) traffic from a running Docker container. Injects proxy settings into the container to capture all outgoing HTTP traffic.

Inputs: proxyPort (required), containerId (required).

intercept_electronIntercept Electron AppB

Launch an Electron application with all its HTTP(S) traffic intercepted. Use get_interceptor_metadata with id "electron" to list available Electron apps.

Inputs: proxyPort (required), pathToApplication (required).

intercept_existing_terminalIntercept Existing TerminalA

Get a command to run in an existing terminal to start intercepting HTTP(S) traffic from processes launched in that terminal. Returns shell-specific commands for bash, zsh, fish, etc.

Inputs: proxyPort (required).

intercept_firefoxIntercept Firefox BrowserA

Launch a fresh independent Firefox window with all HTTP(S) traffic intercepted. Uses an isolated profile.

Inputs: proxyPort (required).

intercept_fresh_terminalOpen Intercepted TerminalA

Open a new terminal window where all launched processes and Docker containers will have their HTTP(S) traffic intercepted automatically.

Inputs: proxyPort (required).

intercept_jvmAttach to JVM ProcessA

Attach to a running JVM process (Java, Kotlin, Clojure, etc.) to intercept all its HTTP(S) traffic. Uses Java agent attachment.

Inputs: proxyPort (required), targetPid (required).

list_interceptorsList InterceptorsA

List all available HTTP traffic interceptors (browsers, terminals, mobile devices, Docker, etc.) and their activation status

Inputs: proxyPort.

send_http_requestSend HTTP RequestA

Send an HTTP request through the HTTP Toolkit proxy. The request will be intercepted and visible in the HTTP Toolkit UI. Returns the full response including status code, headers, and body.

Inputs: method (required), url (required), headers, body, +1 more.

shutdown_serverShutdown ServerA

Shutdown the HTTP Toolkit server. WARNING: This will stop all interception.

Inputs: no named parameters.

trigger_updateTrigger Server UpdateB

Trigger an update check for the HTTP Toolkit server

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 23 tools

    Disambiguation4/5

    Most tools have distinct purposes, such as intercepting different targets (Chrome, Docker, Android) or managing interceptors. However, some overlap exists: 'activate_interceptor' is a generic version that could be confused with specific intercept tools like 'intercept_chrome', though descriptions clarify this. The dedicated tools are well-differentiated by target type.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, such as 'activate_interceptor', 'capture_traffic', 'deactivate_interceptor', and 'list_interceptors'. All tools use snake_case uniformly, with clear verbs like 'intercept', 'get', 'list', and 'send', making the naming predictable and easy to understand.

    Tool Count4/5

    With 23 tools, the count is slightly high but reasonable for the comprehensive scope of HTTP traffic interception across multiple platforms (browsers, mobile, Docker, terminals). Each tool serves a specific function, such as setup, activation, or management, though some consolidation might be possible without losing functionality.

    Completeness5/5

    The tool set provides complete coverage for HTTP Toolkit's domain, including interceptor activation/deactivation, traffic capture, platform-specific setup (Android, iOS, JVM), configuration retrieval, and server management. There are no obvious gaps; tools support the full lifecycle from setup to shutdown, ensuring agents can handle all core workflows without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers