Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Audits shipped apps for how easily they can be reverse engineered
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"reverse-shield": {
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-reverse-shield"
]
}
}
}ターミナルでこれを実行します
claude mcp add reverse-shield -- npx -y @guardbee/mcp-reverse-shieldプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"reverse-shield": {
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-reverse-shield"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"reverse-shield": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-reverse-shield"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント GuardBee で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.7.0)がレジストリに届いたのは一昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Mcphost
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文
An MCP server that tells you how much your shipped app gives a reverse engineer for free.
Reverse-engineering MCPs now let an agent take an app it has no source for — a web bundle, an Electron app, an APK, an iOS app, a game, a native or .NET binary — and explain how a feature works, down to the binary. This package is the other side of that: point it at *your own* build artifact and it reports what such a tool (or a person with jadx, ILSpy, Il2CppDumper, Hopper or the browser's devtools) would get without any effort, with the fix for each — and suggest_fixes turns those fixes into a diff against your build config.
Telemetry is off by default. With
GUARDBEE_TELEMETRY=1it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields likecontent,tokenorpasswordare replaced with a placeholder. See@guardbee/mcp-telemetry.
Claude ──► reverse-shield ──► your build artifact / live site
│ ├─ web source maps (shipped, inline, publicly reachable), unminified / dev bundles, keys, internal hosts, WebAssembly debug info and names ├─ electron fuses (RunAsNode, --inspect, NODE_OPTIONS, ASAR integrity), unpacked app code, code inside app.asar ├─ android APK and AAB: debuggable, R8/ProGuard missing, signing scheme, backup, plain React Native bundle, unstripped .so ├─ ios IPA and .app: Debug-configuration builds, development profiles, plain React Native bundle, .dSYM in the bundle, the executable ├─ engines Unity (IL2CPP metadata, Mono assemblies), PyInstaller, Java/Spring Boot JARs, Flutter (Dart obfuscation) ├─ native debug info, symbols, get-task-allow, hardened runtime, signing, PIE/NX/RELRO/canary (ELF, Mach-O, PE) ├─ secrets keys in everything above: dex, resources.arsc, plists, config files, Hermes bytecode, .so and executables └─ .NET obfuscation missing, embedded PDB, leaked build paths
Everything runs locally and offline (except scan_url), with its own parsers for ASAR, the Electron fuse wire, binary AndroidManifest (AXML), DEX, ELF, Mach-O (including universal binaries and code signatures) and PE/.NET metadata — no apktool, jadx or binutils needed.
| Check | Severity | Target | What it gives away |
|---|---|---|---|
sourcemap_embeds_source | critical | web | Full original source via sourcesContent |
sourcemap_shipped / sourcemap_inline / sourcemap_publicly_reachable | high | web | Original file paths and structure |
eval_devtool_bundle | high | web | Dev bundle with each module's path |
bundle_secret | per key type | all | A working credential in client code, an app package or a binary |
wasm_debug_info | high | web | WebAssembly with DWARF: source files, lines, types |
unminified_bundle / dev_build_framework / wasm_name_section | medium | web | Readable code / framework dev runtime / named WebAssembly functions |
sourcemap_reference / internal_endpoint | low | web | Where the map lives / localhost, private IPs, staging hosts |
electron_fuse_run_as_node / electron_fuse_inspect_args | high | electron | Node runtime or debugger inside the signed app |
electron_app_unpacked | high | electron | App code as an editable folder |
electron_fuse_node_options / _asar_integrity_off / _load_outside_asar | medium | electron | Code injection and ASAR tampering |
apk_debuggable | critical | android | Debugger attach and run-as into app data |
apk_no_obfuscation / apk_js_bundle_plaintext / apk_unsigned | high | android | jadx output with real names / readable RN bundle / no tamper evidence |
apk_allow_backup / apk_v1_only_signature | medium | android | Data pulled via backup / Janus-style repackaging |
native_debug_info / native_debuggable_entitlement | high | native | Source-level debug data / lldb attach |
native_symbols_not_stripped / native_no_hardened_runtime / native_injection_entitlement / native_unsigned | medium | native | Named functions / dylib injection / patched copies run |
native_no_pie / native_no_nx | medium | native | Exploit-friendly fixed addresses / executable stack |
native_no_relro / native_no_stack_canary / native_adhoc_signed / native_build_path_leak | low | native | Hardening gaps and build-host details |
ios_debug_build / ios_js_bundle_plaintext / ios_dsym_shipped | high | ios | Unoptimised code with full symbols and preview stubs / readable RN bundle / full DWARF symbols in the bundle |
ios_development_profile | medium | ios | Debugger attach on registered devices |
unity_il2cpp_metadata / unity_mono_assemblies | high | engines | Every class, method and string of the game / C# scripts via dnSpy |
flutter_not_obfuscated | high | engines | Dart class and method names for blutter / reFlutter |
python_pyinstaller_bundle / java_not_obfuscated | high | engines | Decompilable .pyc files / Java classes with original names |
dotnet_not_obfuscated / dotnet_embedded_pdb | high | .NET | ILSpy/dnSpy output close to the original source |
list_checks returns the full catalog with fixes. Every result carries an A–F grade: F when anything critical (or several high findings) is exposed, A when nothing is.
classes*.dex and looks at classes under your application id (and under the packages of components your manifest names, for .debug-style ids). Dozens of descriptive class names with almost no one- or two-letter names means R8 did not run.#Strings heap. Known obfuscator markers (ConfuserEx, Dotfuscator, SmartAssembly, …) pass immediately; otherwise an assembly passes when at least 10% of its identifiers are one- or two-letter names, bare numbers or non-ASCII junk. Checked against an Obfuscar build (21%, passes) and 400 unobfuscated NuGet assemblies (383 flagged; the other 17 are resource-only assemblies with too few names to judge).resources.arsc / resources.pb string pool (where strings.xml and google-services values end up), assets/ and res/raw/; iOS plists (GoogleService-Info.plist) and the executable; JSON/plist/.env/properties/YAML files in an ASAR, a JAR (Spring Boot application.properties) or a build folder; Hermes bytecode, .so libraries and native/.NET binaries by their printable strings. Only fixed-format keys are matched there, as in bundles. A Google/Firebase API key in an Android or iOS package is reported as medium: those ship by design and must be restricted to the app's package name or bundle id. .debug.dylib next to __preview.dylib; either one in a bundle means the Debug configuration was shipped.global-metadata.dat is flagged only when its standard header is intact (protected builds encrypt it); a Mono Assembly-CSharp.dll goes through the .NET name check.libapp.so, App.framework/App). --obfuscate renames everything the program defines to two- or three-letter names while the Dart VM's own names stay, so a snapshot passes when at least 10% of its identifiers are that short. Checked against one program built both ways with the Dart SDK's gen_snapshot: 1% without the flag, 31% (unstripped) and 37% (stripped) with it. Fewer than 200 identifiers is a note, not a verdict..debug_* (DWARF), name (function names) and sourceMappingURL; the code itself is not judged./hs/hsstatic/, WordPress /wp-includes/) and open-source libraries (jQuery, Bootstrap, polyfills, vendor bundles) are skipped, and a reachable map whose sources are all dependencies is not reported. Internal hosts count only when they point into the site (private IPs, .internal/.corp/.lan, its own staging hosts); the localhost URLs frameworks ship are ignored. A Google browser key is reported as medium (restrict it to the site's referrers), and a Supabase anon key is not reported, since the browser is meant to hold it (a service_role key still is).{
"mcpServers": { "guardbee-reverse-shield": { "command": "npx", "args": ["-y", "@guardbee/mcp-reverse-shield"] } } }
Then ask your agent: *“How easy is it to reverse engineer ./release/MyApp.app? Fix what you can in the build config.”*
npx @guardbee/mcp-reverse-shield scan ./dist --fail-on=high
npx @guardbee/mcp-reverse-shield scan ./app/build/outputs/apk/release/app-release.apk npx @guardbee/mcp-reverse-shield scan "/Applications/My App.app" --format=json npx @guardbee/mcp-reverse-shield scan https://app.example.com --format=sarif > reverse-shield.sarif npx @guardbee/mcp-reverse-shield scan ./build/MyApp.ipa npx @guardbee/mcp-reverse-shield suggest . --format=patch | git apply # review first: suggest . prints the same as text
| Tool | Purpose |
|---|---|
scan_artifact | Scan a file or directory: APK, AAB, IPA, iOS or macOS .app, Electron folder, app.asar, JAR, ELF/Mach-O/PE/.NET binary, JS bundle, source map, or a build output folder (Unity and Python builds included). Optional ignore and baseline |
suggest_fixes | Read the project's build config (Vite, webpack, Next.js, Angular, CRA, Android Gradle and manifest, React Native, electron-builder / Forge, .NET project files, Flutter) and return the changes as unified diffs. Never writes files |
scan_url | Fetch a live page, check its same-site bundles, follow sourceMappingURL and probe .map (third-party scripts are not fetched) |
list_checks | The check catalog with what each finding gives away and how to fix it |
Directories are walked including dist/, build/ and out/ (that is the point); node_modules, VCS and cache folders are skipped, and a macOS .app or Electron folder found inside is scanned as one unit — its fuses, its ASAR and its own executable, not the bundled third-party frameworks.
guardbee.yml:
reverse-shield:
fail-on: high max-files: 5000 baseline: .reverse-shield-baseline.json exclude: -
冒頭だけを表示しています。続きはリポジトリで読めます