How MCP Service Management Works for IDA Pro, Anything-Analyzer, and BurpSuite in reverse-skill
MCP service management in reverse-skill uses a unified JSON-RPC 2.0 lifecycle—register, warm-up, health-check, invoke, shutdown—to expose IDA Pro, Anything-Analyzer, and BurpSuite as local HTTP services that AI agents can call directly.
The reverse-skill repository implements a Model Context Protocol (MCP) architecture where each security tool runs as a standalone service with a consistent API surface. This design allows AI agents (Claude, Kiro, Cursor) to orchestrate complex reverse-engineering and penetration-testing workflows through standardized JSON-RPC calls rather than brittle CLI wrappers.
Service Registration and Bootstrap Architecture
All MCP-enabled tools are catalogued in skills/scripts/bootstrap-manifest.json. The cross-platform bootstrap scripts—skills/scripts/bootstrap-reverse.ps1 (PowerShell) and bootstrap-reverse.sh (Bash)—automate the entire lifecycle: cloning upstream repositories, installing dependencies, launching services, and registering endpoints in the agent configuration file (typically ~/.claude.json or equivalent).
PowerShell invocation for all three services:
powershell -File "skills\scripts\bootstrap-reverse.ps1" `
-Capability @('idapro','anything-analyzer','burpsuite-mcp')
Bash invocation for the same stack:
bash skills/scripts/bootstrap-reverse.sh idapro anything-analyzer burpsuite-mcp
Each capability entry in the manifest triggers a tool-specific start command—pnpm dev for Anything-Analyzer, gradlew :run for the BurpBridge, or a Python HTTP server for IDA Pro. The bootstrap script then writes a registration entry:
{
"name": "anything-analyzer",
"endpoint": "http://127.0.0.1:23816"
}
The MCP client library (mcp-client.js, imported by every skill) consumes these entries to route RPC calls to the correct endpoint.
IDA Pro MCP Service Management
| Attribute | Value |
|---|---|
| Server name | idapro |
| Method prefix | idapro_* |
| Default port | 5000 (override via IDAPRO_MCP_PORT) |
| Warm-up RPC | idapro_server_warmup() |
| Health RPC | idapro_server_health() |
| Session RPCs | idapro_idalib_list(), idapro_idalib_switch(), idapro_idalib_close() |
| Analysis RPCs | idapro_decompile(), idapro_trace_data_flow(), idapro_list_funcs() |
The IDA Pro service implements a session-isolation model. The idapro_server_warmup() call pre-loads the IDA headless binary and initializes a shared analysis worker. Multiple analysis sessions can coexist, each isolating a different binary file, managed through the idapro_idalib_* family of calls.
Listing functions via MCP:
const mcp = require('mcp-client');
async function listIdaFunctions() {
await mcp.call('idapro_server_warmup');
const health = await mcp.call('idapro_server_health');
if (!health.ok) throw new Error('IDA server not healthy');
const funcs = await mcp.call('idapro_list_funcs', {
queries: [{ offset: 0, limit: 20 }]
});
console.log('Functions:', funcs);
}
listIdaFunctions();
Source reference: skills/ida-reverse/references/ida-mcp-cheatsheet.md
Anything-Analyzer MCP Service Management
| Attribute | Value |
|---|---|
| Server name | anything-analyzer |
| Port | 23816 (hard-coded) |
| Capabilities | Browser automation, HTTP traffic capture, AI-assisted traffic analysis |
| Health endpoint | GET /health → {status:"ok"} |
| Bootstrap command | pnpm install && pnpm dev in ~/tools/anything-analyzer |
Anything-Analyzer operates as a Node/Electron application that instruments Chromium for automated browsing and intercepts HTTP request/response cycles. The MCP surface exposes both low-level browser control (anything-analyzer_open) and high-level capture workflows (anything-analyzer_wait_for).
Capturing and analyzing login traffic:
const mcp = require('mcp-client');
async function captureAndAnalyse(url) {
await mcp.call('anything-analyzer_open', { url });
const captured = await mcp.call('anything-analyzer_wait_for', {
filter: { method: 'GET', urlPattern: '*login*' },
timeout: 15000
});
const analysis = await mcp.call('ai_analyse_http', {
request: captured.request
});
console.log('AI analysis:', analysis);
}
captureAndAnalyse('https://example.com/login');
Source reference: skills/js-reverse/SKILL.md (section "注册并启动 anything-analyzer")
BurpSuite MCP Service Management
| Attribute | Value |
|---|---|
| Extension | "MCP Server" BApp (Burp BApp Store) |
| Bridge implementation | burp-mcp-full/mcp-bridge.js |
| Default address | http://127.0.0.1:9876 |
| Environment variables | BURP_MCP_HOST, BURP_MCP_PORT |
| Core RPCs | burpsuite_proxy_history(), burpsuite_intruder_attack(), burpsuite_scanner_start(), burpsuite_collaborator_poll() |
BurpSuite MCP differs from the other two services: the MCP Server BApp must be installed manually through Burp's extension marketplace. Once enabled, the extension launches mcp-bridge.js automatically on Burp startup. The bootstrap script only handles endpoint registration—no process management required.
The bridge translates JSON-RPC calls into native Burp Extender API invocations, exposing proxy history, repeater, intruder, scanner, and collaborator functionality.
Retrieving recent proxy entries:
const mcp = require('mcp-client');
async function recentProxyEntries() {
const history = await mcp.call('burpsuite_proxy_history', {
limit: 10,
offset: 0
});
console.log('Recent proxy entries:', history);
}
recentProxyEntries();
Source references: skills/pentest-tools/references/burpsuite-mcp-guide.md, burp-mcp-full/mcp-bridge.js, burp-mcp-full/test/mcp-bridge.test.js
Unified Four-Step Service Lifecycle
All three MCP services in reverse-skill follow an identical operational pattern:
- Discovery — Bootstrap script writes
name → endpointmappings to agent configuration - Warm-up — Tool-specific initialization RPC or automatic process start
- Health verification — Lightweight RPC or HTTP check confirms readiness
- Invocation — Prefixed RPC calls routed through
mcp-client.js
Shutdown is symmetric: skills may call service-specific close methods (idapro_idalib_close, anything-analyzer_shutdown, burpsuite_shutdown), or use the bootstrap script's -StopServices flag for bulk termination.
Summary
- MCP service management in reverse-skill standardizes IDA Pro, Anything-Analyzer, and BurpSuite as local HTTP JSON-RPC services
skills/scripts/bootstrap-manifest.jsonandbootstrap-reverse.ps1/**.sh** automate registration and lifecycle- IDA Pro runs on port 5000 with session-isolated analysis via
idapro_idalib_*RPCs - Anything-Analyzer binds port 23816 for browser automation and traffic capture
- BurpSuite uses the MCP Server BApp with
mcp-bridge.json port 9876, exposing full Extender API - All services share register → warm-up → health-check → invoke → shutdown semantics through
mcp-client.js
Frequently Asked Questions
What is MCP in the context of reverse-skill?
MCP (Model Context Protocol) is a JSON-RPC 2.0 wrapper that exposes security tools as local HTTP services. In reverse-skill, MCP allows AI agents to call IDA Pro, Anything-Analyzer, and BurpSuite through standardized method invocations rather than parsing command-line output or managing raw subprocesses.
How do I start multiple MCP services simultaneously?
Use the bootstrap script with the -Capability array (PowerShell) or positional arguments (Bash). Both skills/scripts/bootstrap-reverse.ps1 and bootstrap-reverse.sh accept multiple capability names and start them in dependency order defined by bootstrap-manifest.json. The script automatically registers all endpoints in your agent configuration.
Why does BurpSuite MCP require manual BApp installation?
BurpSuite's extension model requires the MCP Server BApp to be loaded through Burp's own extension marketplace for licensing and security reasons. Unlike IDA Pro and Anything-Analyzer—standalone processes that the bootstrap script can launch directly—BurpSuite MCP runs inside Burp's JVM. The bootstrap script only configures the endpoint; the bridge starts automatically when Burp launches with the extension enabled.
Can I change the default ports for these MCP services?
IDA Pro and BurpSuite support environment variable overrides: IDAPRO_MCP_PORT, BURP_MCP_HOST, and BURP_MCP_PORT. Anything-Analyzer uses a hard-coded port 23816 that requires modifying the source to change. Always update the bootstrap manifest or agent configuration after changing ports to ensure the MCP client library routes calls correctly.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →