Recaf MCP
Enables LLMs to perform JVM bytecode analysis and editing by operating a Recaf workspace through MCP tools. Supports class browsing, decompilation, bytecode manipulation, search, cross-references, and refactoring operations.
README
<div align="center">
Recaf MCP
「"Turn Recaf into an API that LLMs can call"」
<br>
<br>
Recaf 4 MCP bridge — operate a Recaf workspace via MCP protocol for JVM bytecode analysis and editing.
<br>
A Java plugin runs inside Recaf exposing a local HTTP API; a Python MCP server turns that API into MCP tools consumable by LLM clients.
<br>
Tools · Quick Start · Bytecode Editing · Install
</div>
Tools
Workspace
get_workspace_info open_workspace close_workspace add_supporting_resource list_supporting_resources fetch_current_class get_selected_text
Classes
get_all_classes get_class_info get_class_source get_bytecode_of_class get_methods_of_class get_fields_of_class get_inner_classes get_annotations_of_class get_raw_class_bytes
Methods
get_method_by_name get_method_bytecode get_method_info
Search
search_classes_by_name search_members_by_name search_strings search_numbers search_instructions
Cross References
get_xrefs_to_class get_xrefs_to_method get_xrefs_to_field get_callers_of_method get_callees_of_method get_overrides_of_method
Refactor
rename_class rename_method rename_field rename_package rename_local_variable apply_mappings
Decompilers
list_decompilers set_active_decompiler decompile_class_with
Inheritance
get_superclasses get_interfaces get_direct_subclasses get_all_subclasses get_implementors
Resources & Export
get_all_file_names get_file_content get_manifest get_strings_from_resources export_workspace get_modified_classes revert_class
Bytecode Editing
Full bytecode read/write: instruction-level editing, JASM text assembly, access flag editing, method/field CRUD, try-catch blocks, class byte replacement, workspace export.
Instructions
list_method_instructions get_method_bytecode replace_instruction insert_instruction remove_instruction
Method Body
assemble_method replace_method_body
Access Flags
edit_class_access edit_method_access edit_field_access
Method / Field CRUD
add_method remove_method add_field remove_field
Other
set_try_catch_blocks replace_class_bytes save_workspace
Requirements
- Java 25
- Python 3.10+
recaf.jar
Quick Start
1. Provide recaf.jar
The build looks for Recaf in this order:
RECAF_JARenv varlibs/recaf.jar../recaf/recaf.jar
$env:RECAF_JAR="D:\deobf\recaf\recaf.jar"
2. Build the Plugin
.\gradlew.bat jar
Output: build/libs/recaf-mcp-plugin-0.1.0.jar
3. Install Plugin
Copy the jar to Recaf's plugin cache directory %APPDATA%/Recaf/plugins/ and launch Recaf.
On successful load:
Recaf MCP plugin listening on http://127.0.0.1:8750
4. Install Python Dependencies
pip install -r requirements.txt
5. Start the MCP Server
python recaf_mcp_server.py --http --port 8751
Or use the launcher script:
.\start_recaf_mcp_http.ps1
MCP Config
{
"mcpServers": {
"recaf-mcp": {
"url": "http://127.0.0.1:8751/mcp"
}
}
}
Ports
| Component | Address |
|---|---|
| Plugin HTTP | 127.0.0.1:8750 |
| MCP HTTP | 127.0.0.1:8751/mcp |
Health check:
Invoke-WebRequest http://127.0.0.1:8750/health
Repository Structure
.
├── src/ # Java plugin source
├── mcp-server/ # Python MCP server
├── libs/ # recaf.jar goes here
├── recaf_mcp_server.py # MCP server entry point
├── requirements.txt # Python dependencies
├── .mcp.json # Project MCP config
└── README.md
Security
Binding to all interfaces exposes the MCP server with no authentication:
python recaf_mcp_server.py --http --host 0.0.0.0
Use localhost by default, or place it behind a firewall / VPN.
<p align="center"> <em>LLM Client -> MCP Server -> Recaf Plugin -> Recaf Workspace</em> </p>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.