skills/ghidra-mcp/SKILL.md
Reverse engineering with Ghidra via MCP. Use when analyzing binaries, decompiling code, managing functions/symbols/data types, or performing any Ghidra-related reverse engineering task.
npx skillsauth add themixednuts/ghidramcp ghidra-mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables reverse engineering workflows using Ghidra through the Model Context Protocol (MCP).
ghidra://programs resourcefunctions with action: "list" and filters to find targetsinspect with action: "decompile" for C-like outputinspect with action: "references_to" or "references_from"ghidra://programs to confirm the binary is loadedfunctions with action: "list" to get compact function rowsinspect with action: "decompile" on interesting functionsinspect reference actions to understand how functions/data are usedsymbols / functions update actions to rename symbols and variablesfunctions with action: "get" and name, address, or symbol_idinspect with action: "decompile" to see decompiled C codefunctions with action: "list_variables" to see stable variable targetsanalyze with action: "graph" to see control flowinspect with action: "references_to" to find callersdata_types with action: "list" to check existing typesdata_types with action: "create" and data_type_kind: "struct" to create structuresdata_types with action: "update" to modify existing typesmemory with action: "search" and search_type: "string" for string literalsmemory with action: "search" and search_type: "hex" for byte patternsmemory with action: "search" and search_type: "regex" for complex patternsinspect reference actions on interesting addressesUse batch_operations to execute multiple changes atomically:
| Tool | Purpose |
|------|---------|
| ghidra://programs | List all programs in the project |
| functions | List/get/create/update functions and variables |
| symbols | List/get/create/update symbols, labels, namespaces, classes |
| data_types | List/get/create/update data types |
| memory | List blocks, search memory, read/write bytes |
| inspect | Listing, decompile, and references |
| analyze | Demangle, RTTI, graph, and call graph |
| project | Analysis options, analysis run, save, navigation, undo/redo |
| Tool | Purpose |
|------|---------|
| functions | Create functions, update prototypes, rename/retype variables |
| symbols | Create/rename labels and symbols |
| data_types | Create/update structs, enums, unions |
| memory | Write bytes, undefine code, apply vtables |
| annotate | Comments and bookmarks |
| Tool | Purpose |
|------|---------|
| delete | Remove functions, symbols, data types, or bookmarks |
| Tool | Purpose |
|------|---------|
| batch_operations | Execute multiple operations atomically |
| project | Undo/redo changes |
| analyze | Demangle symbols and analyze RTTI |
Most list operations return paginated results. Pass the response next_cursor back as cursor to get the next page:
{"action": "list", "cursor": "returned_next_cursor_value"}
Tools accept multiple ways to identify targets:
"address": "0x401000""name": "main""symbol_id": 12345 or "variable_symbol_id": "12345"Addresses can be specified as:
"0x401000""401000""4198400"name_pattern regex filtersbatch_operationsproject with action: "undo" if something goes wrongSee references/TOOLS.md for detailed documentation of each tool's operations and parameters.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.