
पायथन कमांड-लाइन घिड्रा एमसीपी
pyghidra-mcp एक कमांड-लाइन Model Context Protocol (MCP) सर्वर है जो Ghidra की पूर्ण विश्लेषणात्मक शक्ति को, जो एक मजबूत सॉफ़्टवेयर रिवर्स इंजीनियरिंग (SRE) सूट है, बुद्धिमान एजेंटों और LLM-आधारित टूलिंग की दुनिया में लाता है।
यह Ghidra के ProgramAPI और FlatProgramAPI को pyghidra और jpype का उपयोग करके Python से जोड़ता है, और फिर उस कार्यक्षमता को Model Context Protocol के माध्यम से उजागर करता है।
MCP एक एकीकृत इंटरफ़ेस है जो भाषा मॉडल, विकास उपकरण (जैसे VS Code), और स्वायत्त एजेंटों को संरचित संदर्भ तक पहुँचने, टूलिंग को आमंत्रित करने, और बुद्धिमानी से सहयोग करने की अनुमति देता है। MCP को शक्तिशाली विश्लेषण उपकरणों और LLM पारिस्थितिकी तंत्र के बीच सेतु के रूप में सोचें।
pyghidra-mcp के साथ, Ghidra एक बुद्धिमान बैकएंड बन जाता है—संदर्भ-समृद्ध प्रश्नों का उत्तर देने, गहरे रिवर्स इंजीनियरिंग कार्यों को स्वचालित करने, और AI-सहायता प्राप्त वर्कफ़्लो में एकीकृत होने के लिए तैयार।
pyghidra-mcp अब दो ऑपरेटिंग मोड का समर्थन करता है:
headless मोड CLI-संचालित विश्लेषण और स्वचालन के लिए--gui मोड, जो pyghidra-mcp के माध्यम से Ghidra लॉन्च करता है और चल रहे GUI के साथ लाइव प्रोग्राम स्थिति साझा करता है[!NOTE] यह बीटा प्रोजेक्ट सक्रिय विकास के अधीन है। हमें आपकी प्रतिक्रिया, बग रिपोर्ट, फीचर अनुरोध, और कोड बहुत पसंद आएंगे।
हाँ, मूल ghidra-mcp शानदार है। लेकिन pyghidra-mcp एक अलग दृष्टिकोण अपनाता है:
--gui के साथ Ghidra लॉन्च करें।यह प्रोजेक्ट स्थानीय विकास, हेडलेस वातावरण, और परीक्षण योग्य वर्कफ़्लो के लिए अनुकूलित Python-first अनुभव प्रदान करता है।
flowchart LR
subgraph Clients["Clients"]
Agent["MCP host / agent"]
Cli["pyghidra-mcp-cli"]
User["Ghidra user"]
end
subgraph Process["pyghidra-mcp process"]
Transport["streamable HTTP (recommended)<br/>stdio (local fallback)"]
Tools["MCP tools"]
Context["PyGhidra context"]
end
Project["Ghidra project<br/>.gpr / .rep"]
Artifacts["MCP artifacts<br/>ChromaDB + GZF cache"]
Gui["Ghidra GUI / CodeBrowser<br/>only with --gui"]
Agent -->|"HTTP (recommended)"| Transport
Cli -->|"HTTP only"| Transport
Transport --> Tools
Tools --> Context
Context --> Project
Context --> Artifacts
Context -.-> Gui
User -.-> Gui
Gui -.-> Project
flowchart TD
Start["What do you need?"]
Start --> Headless["Agent or automation"]
Start --> GuiNeed["Live Ghidra GUI control"]
Start --> Terminal["Interactive terminal client"]
Headless --> Http["pyghidra-mcp<br/>--transport streamable-http"]
GuiNeed --> GuiMode["pyghidra-mcp --gui<br/>--transport streamable-http<br/>--project-path project.gpr"]
Terminal --> HttpServer["Start pyghidra-mcp<br/>--transport streamable-http"]
HttpServer --> CliMode["Run pyghidra-mcp-cli commands"]
streamable-http का उपयोग करें। यह Ghidra और उसके प्रोजेक्ट को एक लंबे समय तक चलने वाले सर्वर के रूप में जीवित रखता है और MCP होस्ट और CLI क्लाइंट दोनों के साथ काम करता है।pyghidra-mcp Ghidra लॉन्च करता है, प्रोजेक्ट खोलता है, और अतिरिक्त टूल्स को उजागर करता है जो उसी JVM में CodeBrowser को नियंत्रित करते हैं।pyghidra-mcp-cli एक HTTP क्लाइंट है। पहले एक streamable-http सर्वर शुरू करें, फिर उस चल रहे सर्वर के विरुद्ध टर्मिनल कमांड जारी करें।flowchart TD
subgraph Clients
Agent["LLM / MCP host"]
Cli["pyghidra-mcp-cli"]
Automation["scripts and CI"]
end
subgraph Transports
Stdio["stdio"]
Http["streamable-http"]
Sse["sse legacy"]
end
subgraph Server["pyghidra-mcp server"]
McpServer["MCPServer tool server"]
Context["PyGhidra context"]
Indexing["background analysis and Chroma indexing"]
subgraph Tools["MCP tools"]
Analysis["decompile, xrefs, bytes, callgraph"]
Search["symbols, strings, code"]
ProjectOps["import, delete, metadata, list binaries"]
Edits["rename function, rename variable, set type, set prototype, set comment"]
GuiOnly["GUI only: open program, goto, list open programs, set current program"]
end
end
subgraph GhidraRuntime["Ghidra runtime"]
PyGhidra["pyghidra"]
Jpype["JPype shared JVM"]
Project["Ghidra project"]
Programs["program databases"]
CodeBrowser["Ghidra GUI / CodeBrowser"]
end
Agent --> Http
Automation --> Http
Automation --> Sse
Cli --> Http
Stdio --> McpServer
Http --> McpServer
Sse --> McpServer
McpServer --> Context
Context --> PyGhidra
PyGhidra --> Jpype
Jpype --> Project
Project --> Programs
Context --> Indexing
Indexing --> Search
McpServer --> Tools
Tools --> Context
GuiOnly -.-> CodeBrowser
Context -.-> CodeBrowser