{"adoption": {"forks": 111, "observed_at": "2026-08-28T04:08:06.093011+00:00", "stars": 3508}, "canonical_url": "https://ross.abutalabs.com/products/ghidra-mcp", "card": {"archived": false, "artifact_type": "plugin", "description": "Ghidra MCP Server — 200+ MCP tools for AI-powered reverse engineering. GUI plugin + headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.", "domain": ["reverse-engineering", "security", "developer-tools"], "enriched": true, "function": ["mcp", "reverse-engineering", "security", "developer-tools", "plugin-system"], "health_score": 99, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["bethington/ghidra-mcp"], "name": "bethington/ghidra-mcp", "platform": ["cross-platform", "python", "jvm", "cli"], "pushed_at": "2026-08-21T01:16:40+00:00", "repo": "bethington/ghidra-mcp", "stars": 3508, "tags": ["ghidra", "binary-analysis", "static-analysis", "mcp-server", "ai-assisted-reversing", "headless", "ai-agents", "docker"], "topics": ["binary-analysis", "ghidra", "java", "mcp", "model-context-protocol", "python", "reverse-engineering", "static-analysis", "ai", "ghidra-extension", "mcp-server"], "urls": [], "use_cases": ["let an AI agent analyze binaries in Ghidra", "automate reverse engineering tasks with MCP tools", "decompile and inspect binaries via an LLM assistant", "run headless Ghidra analysis driven by AI", "integrate Ghidra with Claude or other MCP clients", "batch rename and annotate functions in Ghidra with AI"], "what_it_is": "A Model Context Protocol (MCP) server and Ghidra plugin exposing 250+ tools that let AI agents drive Ghidra's reverse engineering capabilities, with both GUI plugin and headless server modes. It supports lazy tool loading, batch operations, Ghidra Server integration, and Docker deployment.", "when_to_avoid": ["you don't use Ghidra or MCP-compatible AI clients", "you need dynamic analysis or debugging rather than static analysis", "you want a standalone disassembler"], "when_to_choose": ["you use Ghidra and want AI-assisted binary analysis", "you need an MCP bridge to Ghidra's API", "you want headless or Docker-based automated reversing workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ghidra-mcp", "repo": "bethington/ghidra-mcp", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.093011+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:35:44.216630+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81fecfd146697e47f1f0f227fb5ad9c8f7fd0efcd0d7d667b11cf1d91f162da4", "fetched_at": "2026-08-28T04:08:06.093011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bethington/ghidra-mcp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 26, "rhythm": 95}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 368, "days_push": 13, "days_rel": 39, "gap_med": 1, "n_releases_24m": 36}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}