Reversecore_mcp

by sjkim1127

175 392 downloads Not rated yet MIT
GitHub

About

A security-first MCP server that empowers AI agents to perform automated reverse engineering, malware analysis, forensics, vulnerability research, and SAST — powered by Radare2, YARA, LIEF, Capstone, and more.

Details

License
MIT

Explore

- 50+ tools for static, dynamic, malware, and forensic analysis
- Natural language interface – describe tasks, server invokes tools
- Guided analysis prompts with expert personas and Chain-of-Thought
- MITRE ATT&CK technique mapping with evidence classification
- Persistent AI memory store via async SQLite
- Built-in security model with input sanitization and path validation

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Reversecore_mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

All settings can be provided via environment variables or a .env file (see .env.example):

| Variable | Default | Description |
|---|---|---|
| MCP_TRANSPORT | http | Transport mode: stdio or http |
| REVERSECORE_WORKSPACE | /app/workspace | Analysis workspace directory |
| REVERSECORE_READ_DIRS | "" | Additional colon-separated read-only directories |
| LOG_LEVEL | INFO | Logging verbosity: DEBUG, INFO, WARNING, ERROR |
| MCP_API_KEY | (unset) | API key for HTTP mode authentication (optional) |
| RATE_LIMIT | 60 | Max requests per minute (HTTP mode only) |
| TOOL_TIMEOUT | 300 | Default tool execution timeout in seconds |
| R2_POOL_SIZE | 4 | Radare2 connection pool size |
| REDIS_URL | redis://localhost:6379 | Redis URL for background task queue |
| SMTP_HOST | (unset) | SMTP host for report email delivery |
| SMTP_PORT | 587 | SMTP port |
| SMTP_USER | (unset) | SMTP username |
| SMTP_PASSWORD | (unset) | SMTP password |

---

> Reversecore MCP exposes 50+ tools across 7 categories. Every tool returns a structured ToolResult with status, content, and optional error fields.

Follow this pattern to add a new MCP tool:


from reversecore_mcp.core.decorators import log_execution
from reversecore_mcp.core.result import ToolResult, success, failure
from reversecore_mcp.core.security import validate_file_path

@log_execution()
async def my_analysis_tool(file_path: str, option: str | None = None) -> ToolResult:
"""Analyze a binary for X.

Args:
file_path: Path to the binary file (relative to workspace).
option: Optional analysis option.

Returns:
ToolResult with status='success' and structured content.
"""
try:
safe_path = validate_file_path(file_path)
result = await perform_analysis(safe_path)
return success({"result": result})
except Exception as e:
return failure(str(e))

Then register it in server.py and add tests in tests/unit/.

---

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "reversecore_mcp": {
            "reversecore": {
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "--rm",
                    "-v",
                    "C:/Reversecore_Workspace:/app/workspace",
                    "-e",
                    "REVERSECORE_WORKSPACE=/app/workspace",
                    "-e",
                    "MCP_TRANSPORT=stdio",
                    "reversecore-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "reversecore": {
        "command": "docker",
        "args": [
            "run",
            "-i",
            "--rm",
            "-v",
            "C:/Reversecore_Workspace:/app/workspace",
            "-e",
            "REVERSECORE_WORKSPACE=/app/workspace",
            "-e",
            "MCP_TRANSPORT=stdio",
            "reversecore-mcp"
        ]
    }
}
from reversecore_mcp.core.decorators import log_execution from reversecore_mcp.core.result import ToolResult, success, failure from reversecore_mcp.core.security import validate_file_path

@log_execution()
async def my_analysis_tool(file_path: str, option: str | None = None) -> ToolResult:
"""Analyze a binary for X.

Args:
file_path: Path to the binary file (relative to workspace).
option: Optional analysis option.

Returns:
ToolResult with status='success' and structured content.
"""
try:
safe_path = validate_file_path(file_path)
result = await perform_analysis(safe_path)
return success({"result": result})
except Exception as e:
return failure(str(e))
``

Then register it in server.py and add tests in tests/unit/.

---

Contributing

1. Fork the repository
2. Create a feature branch:
git checkout -b feat/my-feature
3. Write tests alongside your code — coverage must not drop below 80%
4. Ensure all gates pass:
pytest, ruff check, mypy, bandit`
5. Open a pull request with a clear description

Please read the Contributing Guide for code standards, docstring conventions, and the pull request checklist.

---

Documentation

| Document | Description |
|---|---|
| Installation Guide | Detailed setup for all environments |
| Architecture Guide | System design & component deep-dive |
| Contributing Guide | Code standards, docstrings, PR workflow |
| Testing Guide | Test patterns, fixtures, and coverage |
| API Reference | Tool and module reference |
| User Guide | End-user analysis workflows |

---

License

MIT — see LICENSE for details.

---

<div align="center">

GitHub · FastMCP Docs · MCP Spec · Radare2 · YARA

</div>

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.