# How to Integrate a New MCP Server for Browser Automation or HTTP Capture in reverse‑skill

> Integrate a new MCP server for browser automation or HTTP capture in reverse-skill. Register the server, run ToolDiscovery.ps1, and update routing.md for AI agent discovery.

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

---

**Integrating a new MCP server in reverse‑skill requires registering the server in `bootstrap‑manifest.json`, running `ToolDiscovery.ps1` to populate the tool index, and adding a routing entry in [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) so the AI agent can discover and invoke the server automatically.**

The `reverse‑skill` repository implements a flexible MCP (Model Context Protocol) integration layer that treats external servers as first‑class tools. The architecture separates concerns into discovery, bootstrap, routing, and execution phases, allowing security researchers to plug in custom browser automation or HTTP capture capabilities with minimal configuration.

## Understanding the MCP Integration Architecture

The system flow is documented in [[`docs/ARCHITECTURE.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md)](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md) and consists of four stages:

- **Tool discovery** – The engine reads `tool‑index.md` at skill startup to locate available MCP servers.
- **Bootstrap** – Missing servers are installed automatically via `bootstrap‑manifest.json` recipes.
- **Routing** – [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) maps task categories to specific MCP endpoints.
- **Execution** – Skills invoke servers via JSON‑RPC over HTTP (default `http://127.0.0.1:23816`).

This design means **integrating a new MCP server for browser automation or HTTP capture** does not require changes to core engine code—only declarative configuration updates.

## Step‑by‑Step MCP Server Integration

Follow these five steps to add any MCP server, whether for Playwright‑based automation or HTTP proxy capture.

### 1. Register the Server in the Bootstrap Manifest

Add an entry to the platform‑appropriate manifest file:

- Windows: `skills/scripts/bootstrap‑manifest.json`
- Kali Linux: `kali/scripts/bootstrap‑manifest.json`

Example entry for a custom browser‑automation MCP:

```json
{
  "name": "my-browser-mcp",
  "type": "npm-mcp",
  "install": "npx my-browser-mcp --port 3000",
  "url": "http://127.0.0.1:3000"
}

```

Supported installation types include `winget`, `apt`, `github-release`, `npm`, and direct binary download. The `install` field specifies how to launch the server; the `url` field tells the router where to send JSON‑RPC requests.

### 2. Populate the Tool Index

Run the discovery script to ingest the server's `tool‑manifest.json`:

```powershell

# Windows

.\skills\scripts\ToolDiscovery.ps1

# Linux

./kali/scripts/discover-tools.sh

```

These scripts read `~/.mcp/*/tool-manifest.json` and append entries to `tool‑index.md`, establishing the server's method signatures and endpoint URLs for the routing layer.

### 3. Extend the Routing Matrix

Edit [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) (or [`skills/routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing_zh.md) for Chinese localization) to link task types to your new MCP:

```markdown
| Browser automation | my-browser-mcp | Playwright-based automation for dynamic SPAs |
| HTTP capture       | my-capture-mcp | MITM proxy with request/response logging   |

```

Place entries under the *Web / 浏览器* section to ensure the router selects your MCP when skills request browser or network operations.

### 4. (Optional) Add Reference Documentation

Create a skill‑specific reference sheet under `skills/browser-automation/references/` documenting available methods:

- `navigate` – Load URL with wait conditions
- `click` – Element interaction
- `intercept` – Request/response modification
- `capture` – Traffic recording to file

Link this from the skill's [`README.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/README.md) to assist future contributors.

### 5. Verify with Smoke Tests

Execute the integration test suite:

```powershell

# Windows

powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/smoke.ps1

# Linux

bash kali/scripts/smoke.sh

```

Successful completion confirms the router locates the new MCP and that sample method calls return valid JSON‑RPC responses.

## JSON‑RPC Method Signatures for Browser and HTTP Operations

Skills communicate with MCP servers using standard JSON‑RPC 2.0 envelopes. The exact methods depend on the server's `tool‑manifest.json`, but typical patterns include:

**Browser navigation:**

```json
{
  "jsonrpc": "2.0",
  "id": "12345",
  "method": "browser.navigate",
  "params": {
    "url": "https://example.com",
    "waitUntil": "networkidle"
  }
}

```

**HTTP capture initiation:**

```json
{
  "jsonrpc": "2.0",
  "id": "abcde",
  "method": "http.capture",
  "params": {
    "filter": ".*api/v1/.*",
    "duration": 30
  }
}

```

The bootstrap process validates that declared methods in `tool‑manifest.json` are reachable before marking the server as available.

## Key Files and Their Roles

| File | Purpose |
|------|---------|
| [`docs/ARCHITECTURE.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md) | System‑level flow documentation |
| `skills/scripts/bootstrap‑manifest.json` | Windows MCP installation recipes |
| `kali/scripts/bootstrap‑manifest.json` | Linux MCP installation recipes |
| [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) | Task‑to‑MCP mapping matrix |
| `skills/scripts/ToolDiscovery.ps1` | Windows tool index generator |
| [`kali/scripts/discover-tools.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/discover-tools.sh) | Linux tool index generator |
| [`skills/browser-automation/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/browser-automation/SKILL.md) | Example browser skill implementation |
| `skills/pentest-tools/src‑hunter/README.en.md` | Reference for multi‑MCP skill design |

## Summary

- **MCP servers in reverse‑skill** are integrated through declarative configuration rather than code changes.
- **Bootstrap manifests** (`bootstrap‑manifest.json`) provide installation and startup recipes for new servers.
- **Tool discovery** (`ToolDiscovery.ps1` / [`discover-tools.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/discover-tools.sh)) reads server manifests and updates the global tool index.
- **Routing entries** in [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) connect skill requests to specific MCP endpoints.
- **Smoke tests** validate end‑to‑end functionality before deployment.

## Frequently Asked Questions

### What is an MCP server in the reverse‑skill context?

An MCP (Model Context Protocol) server is an external process that exposes specialized capabilities—such as browser automation or network interception—via JSON‑RPC over HTTP. The reverse‑skill AI agent discovers these servers dynamically and invokes them as tools during skill execution.

### Can I use existing MCP servers like Playwright‑MCP or Puppeteer‑MCP?

Yes. Any MCP‑compliant server works if you provide a valid bootstrap manifest entry and its `tool‑manifest.json` is readable. The discovery scripts automatically ingest standard MCP metadata formats.

### How does the router choose between multiple browser automation MCPs?

The router consults [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) in order, selecting the first matching entry for the requested task category. You can prioritize servers by listing them earlier in the matrix or add specificity through more granular task descriptors.

### What happens if an MCP server fails during skill execution?

The execution layer writes failure details to `field‑journal`. The bootstrap process will attempt restart on the next skill invocation if the server is marked as required in the manifest. Non‑critical failures may trigger fallback to alternative MCPs if configured in routing rules.