How MCP Service Ports Are Assigned and Managed for IDA Pro, Anything-Analyzer, and BurpSuite
Each Model Context Protocol (MCP) server in the reverse-skill repository binds to a well-defined TCP port that is hard-coded by default but can be overridden via environment-specific variables.
The reverse-skill repository implements an MCP-based architecture where AI agents invoke specialized reverse engineering and security tools through dedicated HTTP servers. Port assignment follows a centralized routing table pattern with environment variable overrides, ensuring predictable defaults while allowing flexible multi-instance deployments.
Default Port Assignments and Documentation
Each tool's default port is documented in dedicated reference files and the central routing table.
| Tool | Default MCP Port | Primary Documentation |
|---|---|---|
| Anything-Analyzer | 23816 | skills/routing.md – "Port 23816 MCP server (browser + HTTP capture + AI analysis)" |
| IDA Pro | 8765 | skills/ida-reverse/references/ida-mcp-cheatsheet.md – "HTTP mode running" |
| BurpSuite | 9876 | skills/pentest-tools/references/burpsuite-mcp-guide.md – BURP_MCP_PORT=9876 |
The skills/routing.md file serves as the single source of truth for all port assignments in the repository.
Environment Variable Overrides
Every MCP server supports runtime port configuration through dedicated environment variables. This eliminates the need to modify source files when running multiple instances.
- Anything-Analyzer:
ANYTHING_ANALYZER_MCP_PORT(defaults to 23816) - IDA Pro:
IDA_MCP_PORT(defaults to 8765) - BurpSuite:
BURP_MCP_HOSTandBURP_MCP_PORT(default to 127.0.0.1:9876)
The bootstrap scripts in skills/scripts/ read these variables at startup and pass them to the underlying MCP server executables.
Port Management Implementation
Bootstrap and Conflict Detection
The skills/scripts/bootstrap-reverse.sh script (and platform-specific equivalents) handles MCP server lifecycle management:
- Parses the environment variable for the target tool
- Validates port availability using
lsofornetstat - Aborts with a clear error message if the port is occupied
- Launches the MCP server with the verified configuration
This prevents silent failures from port collisions and ensures AI agents can reach the expected endpoint.
Runtime Service Discovery
Skills query skills/scripts/ .omc/tool-manifest.json at runtime to verify MCP service reachability before invoking tools. This registry contains the registered server names (idapro, anything-analyzer, burpsuite) and their configured endpoints.
Code Examples for MCP Port Configuration
Starting Anything-Analyzer with Custom Port
import os
import subprocess
# Override default 23816 via environment
port = os.getenv("ANYTHING_ANALYZER_MCP_PORT", "23816")
subprocess.run(
["anything-analyzer", "--mcp-port", port],
check=True
)
Querying IDA Pro MCP Server
import json
import urllib.request
host = os.getenv("IDA_MCP_HOST", "127.0.0.1")
port = os.getenv("IDA_MCP_PORT", "8765")
url = f"http://{host}:{port}/idapro_idb_list"
response = urllib.request.urlopen(url)
tools = json.load(response)
print(tools) # Available IDA sessions via MCP
BurpSuite MCP Bridge Invocation
import os
import requests
burp_host = os.getenv("BURP_MCP_HOST", "127.0.0.1")
burp_port = os.getenv("BURP_MCP_PORT", "9876")
api = f"http://{burp_host}:{burp_port}/burp/api/v1/scan"
payload = {"target": "http://example.com"}
r = requests.post(api, json=payload)
print(r.json()) # Scan results via MCP bridge
Key Configuration Files
| File Path | Purpose |
|---|---|
skills/routing.md |
Central MCP port routing table |
skills/ida-reverse/references/ida-mcp-cheatsheet.md |
IDA Pro MCP server specification |
skills/pentest-tools/references/burpsuite-mcp-guide.md |
BurpSuite MCP bridge configuration |
skills/scripts/bootstrap-reverse.sh |
MCP server startup and port validation |
.omc/tool-manifest.json |
Runtime MCP service registry |
Summary
- Hard-coded defaults are defined in
skills/routing.mdand tool-specific references: 23816 (Anything-Analyzer), 8765 (IDA Pro), 9876 (BurpSuite) - Environment variables (
*_MCP_PORT) enable port customization without code changes - Bootstrap scripts handle port conflict detection and server initialization
- Runtime registry at
.omc/tool-manifest.jsonsupports dynamic service discovery - Source files in
zhaoxuya520/reverse-skillimplement this architecture for reliable AI-to-tool communication
Frequently Asked Questions
What happens if two MCP servers try to use the same port?
The bootstrap script detects the conflict using lsof or netstat and aborts with an error message. The user must set a different *_MCP_PORT environment variable and restart.
Can I run multiple instances of the same MCP tool on one host?
Yes. Start each instance with a unique *_MCP_PORT value and register each in .omc/tool-manifest.json with distinct server names. The routing table supports per-instance configuration.
Why does IDA Pro use port 8765 specifically?
Port 8765 is the conventional default for IDA's remote debugging server. The MCP implementation in skills/ida-reverse/ follows this convention for consistency with existing IDA tooling and documentation.
Where is the authoritative list of all MCP ports?
skills/routing.md contains the complete routing table. Tool-specific details appear in skills/ida-reverse/references/ida-mcp-cheatsheet.md and skills/pentest-tools/references/burpsuite-mcp-guide.md.
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 →