# GhidraMCP (community)
> A community-maintained MCP server and Ghidra extension for reverse-engineering work, including binary decompilation, analysis, symbol renaming, and inspection of methods, classes, imports, and exports.
Canonical: https://www.mcpfolio.com/servers/ghidra-mcp-lauriewired
Last updated: 2026-10-29
## Catalog record

- Publisher: LaurieWired (community; not an official Ghidra/NSA integration)
- Categories: Uncategorized

## Repository

https://github.com/LaurieWired/GhidraMCP

## Transports

stdio by default; optional Streamable HTTP

## Authentication

The current README does not document a required authentication flow for the default localhost setup. Keep the Ghidra bridge bound to localhost unless a separately secured remote deployment is configured.

## Tools

- **decompile_function**: Decompile a function by name.
- **decompile_function_by_address**: Decompile the function at or containing an address.
- **disassemble_function**: Disassemble instructions in a function body.
- **get_current_address**: GUI-only: get the address selected in the Ghidra listing.
- **get_current_function**: GUI-only: get the function containing the selected Ghidra address.
- **get_function_by_address**: Get the function at or containing an address.
- **get_function_calls**: Return a function-level caller/callee graph.
- **get_function_xrefs**: List references to a function entry point by name or address.
- **get_program_info**: Identify the target program, architecture, address range, entry points, size, and hashes.
- **get_xrefs_from**: List references from an instruction or data address.
- **get_xrefs_to**: List references to an address.
- **list_classes**: List class namespaces.
- **list_data_items**: List defined data with address, label, type, and value.
- **list_exports**: List exported symbols and entry points.
- **list_functions**: List functions with names and entry addresses; supports filtering and pagination.
- **list_imports**: List imported symbols and libraries.
- **list_methods**: Deprecated alias that lists function names only.
- **list_namespaces**: List non-global namespaces.
- **list_segments**: List memory blocks, address ranges, sizes, and permissions.
- **list_strings**: List defined strings with addresses; supports filtering and pagination.
- **read_memory**: Read up to 4096 bytes of program memory.
- **rename_data**: Rename a label or existing symbol at an address.
- **rename_function**: Rename a function by its current name.
- **rename_function_by_address**: Rename a function by address.
- **rename_variable**: Rename a local variable or parameter.
- **search_functions_by_name**: Search for functions by case-insensitive name substring.
- **set_decompiler_comment**: Set or clear a decompiler pre-comment at an address.
- **set_disassembly_comment**: Set or clear a disassembly end-of-line comment.
- **set_function_prototype**: Set a function signature from a C prototype.
- **set_local_variable_type**: Set a decompiler variable data type.

## Sources

- [Community maintainer README](https://github.com/LaurieWired/GhidraMCP)
- [Verified repository-owner profile (logo fallback tier D)](https://github.com/LaurieWired)
- [Official Ghidra product repository](https://github.com/NationalSecurityAgency/ghidra)
- [official_documentation](https://github.com/LaurieWired/GhidraMCP/blob/master/TOOLS.md)

## Setup

Use the interactive setup panel on [the detail page](https://www.mcpfolio.com/servers/ghidra-mcp-lauriewired) to view instructions for each supported client.