# How to Integrate reverse-skill with Claude Code, Codex CLI, or Cursor

> Integrate reverse-skill with Claude Code, Codex CLI, or Cursor using a lightweight MCP bridge. Enhance your AI coding experience by registering local tools via JSON config files.

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

---

**`reverse-skill` integrates with any code-aware AI client through a lightweight MCP bridge that registers local tools via JSON configuration files.**

The reverse-skill repository is a platform-neutral skill router designed for reverse engineering and security workflows. According to the source code in `zhaoxuya520/reverse-skill`, the integration architecture uses a four-layer design: core router, MCP bridge, client-layer adapters, and bootstrapping scripts. This guide walks you through connecting Claude Code, Codex CLI, or Cursor to this system.

## Architecture Overview

The integration relies on four distinct layers as implemented in the source:

| Layer | Purpose | Key File |
|-------|---------|----------|
| **Core router** | Decides what to do and which local tool to call | [`skills/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/SKILL.md), [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) |
| **MCP bridge** | HTTP/stdio servers exposing real tools to AI clients | [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh) |
| **Client adapters** | Thin wrappers registering MCP endpoints per client | `skills/scripts/bootstrap-reverse.ps1` |
| **Bootstrapping** | Generates tool index, validates environment, enforces rules | [`README_AI.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/README_AI.md) |

All clients follow the same integration flow: detect host OS, refresh the tool index, bootstrap the MCP bridge for your chosen client, then run the routing entry point.

## Prerequisites

Before integrating any client, refresh the tool index so the router knows which local binaries exist on your system.

```bash

# Linux / macOS

bash <SKILL_ROOT>/skills/scripts/refresh-tool-index.sh

```

```powershell

# Windows PowerShell

powershell -File "<SKILL_ROOT>\skills\scripts\refresh-tool-index.ps1"

```

The `refresh-tool-index.*` scripts generate [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) in the `skills/` directory, mapping available reverse-engineering tools to skill categories.

## Claude Code Integration

Claude Code reads MCP configuration from `~/.claude/mcp.json` or the path specified by `CLAUDE_MCP_CONFIG_PATH`.

Run the bootstrap script with the `claude` host target:

```bash

# Linux / macOS

bash skills/scripts/bootstrap-reverse.sh jshookmcp --mcp-host=claude

```

```powershell

# Windows

powershell -File skills/scripts/bootstrap-reverse.ps1 -Capability jshookmcp -McpHostTarget Claude

```

The script in `skills/scripts/bootstrap-reverse.ps1` creates the JSON config and registers the `jshook` server. After completion, Claude Code can invoke tools via `http://localhost:<port>/mcp` when your prompts reference skills like "apk reverse" or "offline analysis".

## Codex CLI Integration

Codex CLI follows an identical pattern but writes to `~/.codex/mcp.json` (or `CODEX_MCP_CONFIG_PATH`).

```bash

# Linux / macOS

bash skills/scripts/bootstrap-reverse.sh jshookmcp --mcp-host=codex

```

```powershell

# Windows

powershell -File skills/scripts/bootstrap-reverse.ps1 -Capability jshookmcp -McpHostTarget Codex

```

As implemented in the bootstrap scripts, Codex automatically reads this configuration when executing the repository's [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) routing instructions.

## Cursor Integration

Cursor has no native MCP config file, but consumes standard MCP JSON through custom instructions.

**Recommended approach:** Reuse the Claude Code configuration:

```bash

# Generate Claude-compatible config

bash skills/scripts/bootstrap-reverse.sh jshookmcp --mcp-host=claude

```

Then point Cursor to `~/.claude/mcp.json` in your project settings.

**Alternative:** Create a dedicated Cursor config:

```json
{
  "mcpServers": {
    "jshook": {
      "url": "http://localhost:23816/mcp",
      "headers": {}
    }
  }
}

```

Save as `~/.cursor/mcp.json` and add to your project's `.cursorrc`:

```text
include ~/.cursor/mcp.json

```

Set `CURSOR_MCP_CONFIG_PATH` before running bootstrap if you need a custom path.

## Running the Router

After MCP registration, execute the master router to process skill requests:

```bash

# Generic routing with hint

bash <SKILL_ROOT>/skills/scripts/master-route.sh --hint "offline apk"

# Initialize a case with sample

bash <SKILL_ROOT>/skills/scripts/case-init.sh \
  --hint "offline apk" \
  --case-name demo \
  --preset offline-sample \
  --sample ./example.apk

```

The [`master-route.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/master-route.sh) and `master-route.ps1` scripts read [`RULES.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/RULES.md), load the routing matrix from [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md), and dispatch to the appropriate sub-skill handler.

## Environment Variables

| Variable | Purpose |
|----------|---------|
| `CLAUDE_MCP_CONFIG_PATH` | Override default `~/.claude/mcp.json` |
| `CODEX_MCP_CONFIG_PATH` | Override default `~/.codex/mcp.json` |
| `CURSOR_MCP_CONFIG_PATH` | Specify custom Cursor MCP JSON location |
| `SKILL_ROOT` | Absolute path to reverse-skill repository (used in examples) |

## Key Source Files Reference

- **[`README_AI.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/README_AI.md)** - Primary AI-only bootstrap guide with integration workflow (sections "General Integration Principles" and "MCP Example")
- **[`docs/OVERVIEW.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/OVERVIEW.md)** - High-level router and client-layer design
- **[`docs/PLATFORMS.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/PLATFORMS.md)** - Platform matrix and supported entry points
- **`skills/scripts/bootstrap-reverse.ps1`** - Windows bootstrap for Claude/Codex config generation
- **[`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh)** - Linux/macOS/Kali bootstrap script
- **`skills/scripts/refresh-tool-index.*`** - Tool discovery and index generation
- **[`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)** - Routing matrix mapping hints to sub-skills
- **[`skills/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/SKILL.md)** - Main controller loading routing tables and dispatching work

## Summary

- **All three clients** use the same MCP bridge architecture—only the output config file location differs
- **Bootstrap scripts** in `skills/scripts/` handle OS detection and client-specific JSON generation
- **Tool index refresh** is required once per machine before first use
- **Environment variables** allow custom config paths for enterprise or multi-user setups
- **Cursor works** by consuming Claude/Codex-compatible MCP JSON through custom instructions

## Frequently Asked Questions

### What is MCP and why does reverse-skill use it?

MCP (Model Context Protocol) is a standard for exposing tools to AI clients via HTTP or stdio. The reverse-skill codebase implements lightweight MCP servers like `jshookmcp` in [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh) so that Claude Code, Codex, and Cursor can invoke local reverse-engineering binaries without native integrations.

### Can I use reverse-skill with multiple AI clients simultaneously?

Yes. Each bootstrap command generates a separate config file (`~/.claude/mcp.json`, `~/.codex/mcp.json`, etc.) pointing to the same running MCP server. The [`master-route.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/master-route.sh) dispatcher is stateless and handles requests from any registered client.

### Why do I need to refresh the tool index before integration?

The routing logic in [`skills/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/SKILL.md) and [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) relies on [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) to map skill hints to available local binaries. Running `refresh-tool-index.*` discovers what tools (Apktool, JADX, Frida, etc.) are installed and builds this mapping. Without it, the router cannot dispatch to valid tool paths.