反编译mcp服务器
英语 | 西班牙语
______________________________________________________________________
英语
一个MCP(模型上下文协议)服务器,允许Claude代码自动工作 decomp.me 反编译划痕——读取代码、编译、分析程序集差异,并迭代直到达到100%匹配。
为什么是浏览器扩展?
自然的方法是直接调用反编译.me REST API。然而,API落后于Cloudflare,无论cookie或用户欺骗,Cloudflare都会阻止自动请求。与其打这场仗,这个项目采取了不同的路线: 从内部控制浏览器的Firefox扩展.
Claude与本地中继服务器对话(bridge_server.py)通过WebSocket。中继将命令转发到Firefox扩展,该扩展在浏览器内部运行,具有真正的身份验证会话,并通过DOM直接操纵decompo.me页面。无需Cloudflare,无需API令牌。
注: 该扩展目前仅适用于 火狐 (清单V2)。Chrome支持需要Manifest V3端口。
建筑
Claude Code (MCP client)
│ stdio (Model Context Protocol)
▼
server.py ── MCP server exposing tools to Claude
│ WebSocket ws://127.0.0.1:9400
▼
bridge_server.py ── local relay daemon (run once, keep running)
│ WebSocket
▼
Firefox extension (background.js)
│ browser.tabs.sendMessage
▼
content.js ── DOM manipulation on the open decomp.me scratch page
│
▼
decomp.me ── CodeMirror editor, compiler, diff view特性
- 阅读草稿 --源代码、上下文标头、编译器设置、当前分数
- 编写和编译 --在CodeMirror编辑器中设置源代码/上下文,单击“编译”,等待差异
- 编译器选项 --从Claude更改预设、编译器版本和标志
- 并行代理协调 --文件锁定索赔系统,因此多个Claude实例不会重复工作
- 模式数据库 --已知ASM的SQLite存储→C翻译,可按平台/编译器/标签搜索
安装
先决条件: Python 3.10+, 紫外线 (推荐),Firefox
git clone https://github.com/JesusArcasCarrera/decomp-mcp-server
cd decomp-mcp-server
# Create virtual environment and install
uv venv
uv pip install -e .设置
1.安装Firefox扩展
- 打开Firefox→
about:debugging→ 这个火狐 → 加载临时附加组件 - 选择
extension/manifest.json
扩展名在decomp.me草稿页的右下角显示了一个小点:
- 灰色 =桥未连接
- 绿色 =网桥已连接并准备就绪
2.启动桥式继电器
工作时在终端中保持此运行:
uv run python bridge_server.py3.配置克劳德代码(或克劳德桌面)
将MCP服务器添加到Claude配置文件中。
克劳德代码 (~/.claude/settings.json):
{
"mcpServers": {
"decomp": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "decomp_mcp.server"]
}
}
}克劳德桌面-macOS (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"decomp": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "decomp_mcp.server"]
}
}
}要查找Python解释器的路径:
cd decomp-mcp-server
source .venv/bin/activate
which python4.在Firefox中打开一个临时页面
导航到任何 https://decomp.me/scratch/SLUG 页面。当桥准备就绪时,圆点变成绿色。
可用的MCP工具
浏览器桥接工具
| 工具 | 说明 |
|---|---|
bridge_get_scratch | 阅读当前草稿:源代码、上下文、编译器设置、分数 |
bridge_set_source | 将C源代码写入CodeMirror编辑器 |
bridge_set_context | 将上下文标头(typedefs、structs)写入编辑器 |
bridge_compile | 点击编译,等待差异和分数 |
bridge_get_diff | 读取当前组件差异(目标与当前) |
bridge_get_compiler_opts | 读取当前编译器预设、版本和标志 |
bridge_set_compiler_opts | 更改编译器预设、版本和/或标志 |
协调工具(并行代理)
| 工具 | 说明 |
|---|---|
decomp_claim_function | 保留一个函数,以便其他代理跳过它 |
decomp_release_function | 释放声称的功能 |
decomp_list_claims | 显示所有活动索赔 |
decomp_complete_function | 将函数标记为已完成(跨会话持续) |
decomp_list_completed | 列出所有已完成的功能及其得分 |
模式数据库
| 工具 | 说明 |
|---|---|
decomp_search_patterns | 搜索存储的ASM→按平台、编译器、标签或程序集片段划分的C模式 |
decomp_save_pattern | 保存成功的模式以供将来参考 |
典型工作流程
1. Open a scratch page in Firefox
2. Start bridge_server.py
3. Ask Claude: "Decompile the open scratch to 100%"
4. Claude:
→ decomp_claim_function("fn_80393C14")
→ bridge_get_scratch() — reads source + target asm
→ decomp_search_patterns(...) — checks known patterns
→ bridge_set_source(new_code)
→ bridge_compile() — get diff + score
→ [iterate until 100%]
→ decomp_complete_function(...)
→ decomp_save_pattern(...) — stores the solution环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
DECOMP_BRIDGE_URL | ws://127.0.0.1:9400 | 网桥中继服务器的地址 |
DECOMP_CLAIMS_FILE | /tmp/decomp_claims.json | 主动代理声明--短暂,在/tmp中很好 |
DECOMP_COMPLETED_FILE | ~/.local/share/decomp-mcp/completed.json | 已完成功能的持久记录(重新启动后仍然有效) |
DECOMP_CLAIM_TIMEOUT | 3600 | 过期索赔自动释放前的秒数 |
DECOMP_PATTERNS_DB | patterns/patterns.db | SQLite模式数据库的路径 |
项目结构
decomp-mcp-server/
├── src/decomp_mcp/
│ ├── server.py # MCP server — exposes tools to Claude
│ └── bridge.py # WebSocket client to bridge_server
├── bridge_server.py # Local relay daemon
├── extension/
│ ├── manifest.json # Firefox extension manifest (MV2)
│ ├── background.js # Persistent WS connection + tab tracking
│ └── content.js # DOM manipulation on decomp.me pages
├── patterns/
│ ├── db.py # SQLite interface for patterns
│ └── schema.sql # Database schema
├── docs/ # Architecture and platform notes
└── pyproject.toml状态
- \[x\] 安装MCP服务器并使用Claude Code
- \[x\] Firefox扩展+桥接中继操作
- \[x\] 平行代理协调(索赔/放行/完成)
- \[x\] 模式数据库(SQLite)
- \[\]自动划痕监视器(馈送轮询)
- \[\]支持Chrome/Manifest V3
资源
- decomp.me --协同游戏反编译平台
- 模型上下文协议 --MCP文件
- decomp.me源代码
许可证
GPL v3——请参阅 许可证
______________________________________________________________________
西班牙语
MCP服务器,允许Claude Code自动处理 decomp.me -阅读代码,编译,分析汇编程序的差异并迭代,直到达到100%的匹配。
为什么是浏览器扩展?
显而易见的方法是直接调用decompop.me的rest API。然而,该API受到CloudFlare的保护,无论cookies或用户代理如何,CloudFlare都会阻止自动请求。这个项目非但没有与之抗争,反而走上了另一条道路: 从内部控制浏览器的Firefox扩展.
克劳德与本地中继服务器交谈(bridge_server.py)通过WebSocket。中继将命令转发到Firefox扩展,Firefox扩展在浏览器中运行,具有真实的认证会话,并直接通过DOM操作decomp.me页面。没有CloudFlare,没有API令牌。
注: 该扩展目前仅在 火狐 (宣言V2)。对Chrome的支持需要将其移植到Manifest V3。
建筑
Claude Code (cliente MCP)
│ stdio (Model Context Protocol)
▼
server.py ── servidor MCP que expone herramientas a Claude
│ WebSocket ws://127.0.0.1:9400
▼
bridge_server.py ── relay local (ejecutar una vez, dejar corriendo)
│ WebSocket
▼
Extensión Firefox (background.js)
│ browser.tabs.sendMessage
▼
content.js ── manipulación del DOM en la página del scratch abierto
│
▼
decomp.me ── editor CodeMirror, compilador, vista de diff安装
要求: Python 3.10+, 紫外线,火狐
git clone https://github.com/JesusArcasCarrera/decomp-mcp-server
cd decomp-mcp-server
uv venv
uv pip install -e .配置
1.在Firefox中安装扩展
- 打开Firefox→
about:debugging→ 这 Firefox → 加载临时插件 - 选择
extension/manifest.json
扩展在decompop.me草稿的右下角显示一个点:
- 灰色 =桥未连接
- 绿色 =桥连接并准备好
2.Arrancar继电器
工作时在终端上运行:
uv run python bridge_server.py3.配置器克劳德代码
编辑 ~/.claude/settings.json:
{
"mcpServers": {
"decomp": {
"command": "/ruta/a/tu/.venv/bin/python",
"args": ["-m", "decomp_mcp.server"]
}
}
}要找到Python解释器的路径:
source .venv/bin/activate
which python4.在Firefox上打开草稿
导航到 https://decomp.me/scratch/SLUG。当桥准备好时,点变绿。
可用的MCP工具
桥梁(导航台控制)
| 工具 | 描述 |
|---|---|
bridge_get_scratch | 读取当前草稿:源,上下文,编译器选项,分数 |
bridge_set_source | 在CodeMirror编辑器中编写C代码 |
bridge_set_context | 写上下文标头(typedefs,structs) |
bridge_compile | 单击Compile并等待diff和score |
bridge_get_diff | 读取当前汇编程序的差异(目标与生成的) |
bridge_get_compiler_opts | 读取编译器、预设和当前标志 |
bridge_set_compiler_opts | 更改编译器、预设和/或标志 |
协调(平行行为者)
| 工具 | 描述 |
|---|---|
decomp_claim_function | 保留一个角色,以便其他代理不会复制它 |
decomp_release_function | 释放保留函数 |
decomp_list_claims | 显示所有活动预订 |
decomp_complete_function | 将角色标记为已完成(在会话之间持续) |
decomp_list_completed | 列出以分数结束的函数 |
模式数据库
| 工具 | 描述 |
|---|---|
decomp_search_patterns | 按平台、编译器、标记或汇编程序片段搜索ASM→C模式 |
decomp_save_pattern | 保存成功的模式供将来使用 |
环境变量
| 变量 | 默认 | 描述 |
|---|---|---|
DECOMP_BRIDGE_URL | ws://127.0.0.1:9400 | 中继地址 |
DECOMP_CLAIMS_FILE | /tmp/decomp_claims.json | 活跃储备(短暂,/TMP很好) |
DECOMP_COMPLETED_FILE | ~/.local/share/decomp-mcp/completed.json | 已完成功能的持久注册(重新启动后仍然有效) |
DECOMP_CLAIM_TIMEOUT | 3600 | 自动释放过期索赔前的秒数 |
DECOMP_PATTERNS_DB | patterns/patterns.db | 模式的sqlite数据库路径 |
状态
- \[x\] 安装并运行Claude Code的MCP服务器
- \[x\] Firefox+中继桥操作扩展
- \[x\] 平行代理人的协调(索赔/释放/完成)
- \[x\] 模式数据库(SQLite)
- \[\]自动划痕监控器(饲料轮询)
- \[\]支持Chrome/Manifest V3
