# How to Configure MCP Servers for JS Reverse Skill: Complete Setup Guide

> Configure MCP servers for JS Reverse skill by registering jshookmcp, launching with npx on port 23816, and verifying the HTTP handshake. Get your setup guide now.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: how-to-guide
- Published: 2026-08-02

---

**To configure MCP servers for the JS Reverse skill, register the `jshookmcp` server in your Claude MCP configuration file, launch it via `npx` on port 23816, and verify the HTTP handshake completes successfully.**

The `zhaoxuya520/reverse-skill` repository provides specialized reverse engineering capabilities for Claude, including the JavaScript Reverse skill (`js-reverse/`) that requires external browser instrumentation. According to the source code in [`skills/js-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/js-reverse/SKILL.md), this skill depends on the `jshookmcp` MCP server to provide underlying CDP (Chrome DevTools Protocol), Hook, and AST manipulation capabilities that cannot be performed within Claude's native environment.

## Understanding the MCP Server Architecture

The **JavaScript Reverse** skill relies on a Model Context Protocol (MCP) server architecture to bridge Claude with browser-level instrumentation tools. The `jshookmcp` server acts as a mandatory middleware component that exposes specialized reverse engineering functions via local HTTP endpoints.

As implemented in the `reverse-skill` source code, the configuration process involves three distinct phases: registering the server in Claude's MCP config, installing and launching the server binary via `npx`, and enabling the connection through an HTTP handshake. The helper script [`kali/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/refresh-tool-index.sh) verifies that `npx` is available on the system before declaring the capability as auto-registerable.

## Step-by-Step MCP Server Configuration

### Step 1: Register the Server in Claude MCP Config

The first step requires writing the server configuration to the JSON file referenced by the `CLAUDE_MCP_CONFIG` environment variable (defaulting to `$HOME/.claude/mcp.json`). The PowerShell script at `scripts/bootstrap-reverse.ps1` automates this registration process.

Run the following command to register `jshookmcp`:

```powershell

# Register jshookmcp in the Claude MCP config

powershell -File "skills\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp')

```

This writes a configuration block to your MCP config file:

```json
{
  "jshookmcp": {
    "url": "http://127.0.0.1:23816",
    "profile": "search"
  }
}

```

The registration script creates this JSON structure automatically, pointing to the local endpoint where the server will listen. You can also reference [`kali/mcp-kali-example.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/mcp-kali-example.json) for additional examples of MCP server configurations.

### Step 2: Install and Launch the jshookmcp Server

For the JavaScript reverse workflow, launch the **jshookmcp** server using `npx` (Node Package Executor). The exact command is documented in [`docs/platforms/linux.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/linux.md) and [`docs/platforms/macos.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/macos.md).

Execute the following command to start the server:

```bash

# Launch jshookmcp via npx – the server will listen on 127.0.0.1:23816

npx -y @jshookmcp/jshook@0.3.4

```

The `-y` flag auto-confirms the installation without prompting. Upon successful launch, the server logs a line indicating `[MCP] port=23816` and begins listening for incoming MCP connections. The [`kali/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/refresh-tool-index.sh) script verifies `npx` availability before attempting this step, ensuring the capability is properly declared as "auto-registerable" in `skills/tool-index.md.template`.

### Step 3: Enable the Server and Verify Connectivity

After registration, the Claude client must perform a TCP port-check followed by an HTTP MCP handshake before the skill can invoke commands. This logic is implemented in [`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh) at lines 345-358.

When the skill calls a `js-reverse_*` command, the client automatically:
1. Looks up the `jshookmcp` entry in the MCP config file
2. Performs a TCP port-check on `127.0.0.1:23816`
3. Executes the HTTP MCP handshake to establish the connection

To verify MCP availability from within a skill script, you can query the registered servers:

```powershell

# Within a skill script you can ask the client to list registered MCP servers

$mcpList = mcp__list_servers
Write-Host "Available MCP servers:`n$mcpList"

```

The client responds with the JSON entries written during the registration phase, confirming that `jshookmcp` is active and reachable.

## Platform-Specific Automation

### Windows PowerShell Approach

On Windows, combine registration and startup using the `-StartServices` flag:

```powershell

# Register then start the server (Windows PowerShell)

powershell -File "skills\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp') -StartServices

```

This executes the `npx` command automatically after writing the configuration to [`mcp.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/mcp.json).

### Linux and macOS Approach

On Unix-based systems, run the `npx` command directly after ensuring Node.js is installed. The platform documentation in [`docs/platforms/linux.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/linux.md) and [`docs/platforms/macos.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/macos.md) provides the exact invocation strings for maintaining consistent server versions across environments.

## Summary

- **Register** `jshookmcp` in `$HOME/.claude/mcp.json` (or the path specified by `CLAUDE_MCP_CONFIG`) using `scripts/bootstrap-reverse.ps1` or manual JSON configuration
- **Launch** the server using `npx -y @jshookmcp/jshook@0.3.4` to enable browser instrumentation on port 23816
- **Verify** connectivity through the TCP port check and HTTP handshake implemented in [`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh) (lines 345-358)
- The JS Reverse skill automatically enables the server when invoking `js-reverse_*` commands, as documented in [`skills/js-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/js-reverse/SKILL.md)

## Frequently Asked Questions

### What port does the jshookmcp server use?

The server listens on `127.0.0.1:23816` by default. This endpoint is hardcoded in the bootstrap scripts and must match the URL specified in your [`mcp.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/mcp.json) configuration file. The server logs `[MCP] port=23816` upon successful startup to confirm the listening address.

### Can I automate both registration and server startup?

Yes. The `scripts/bootstrap-reverse.ps1` script accepts the `-StartServices` flag, which automatically runs the `npx` command to launch `jshookmcp` immediately after registering it in the Claude MCP config. This eliminates the need for manual startup on Windows systems.

### Where is the MCP configuration file located?

By default, Claude reads the MCP configuration from `$HOME/.claude/mcp.json`. You can override this path by setting the `CLAUDE_MCP_CONFIG` environment variable to point to a custom JSON file, as referenced in both the PowerShell and Bash bootstrap scripts.

### Why does the JS Reverse skill require an external MCP server?

According to [`skills/js-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/js-reverse/SKILL.md), the skill requires browser-level capabilities including CDP integration, JavaScript hooking, and AST manipulation that cannot be performed within Claude's native environment. The `jshookmcp` server provides these specialized reverse engineering functions via the MCP protocol, making it a mandatory pre-condition for the workflow.