MCP is a unified interface that allows language models, development tools (like VS Code), and autonomous agents to access structured context, invoke tooling, and collaborate intelligently. Think of…
Pyghidra Mcp is an MCP project maintained in the clearbluejar/pyghidra-mcp repository. The maintainer describes its purpose as “MCP is a unified interface that allows language models, development tools (like VS Code), and autonomous agents to access structured context, invoke tooling, and collaborate…”. Read the project documentation for the complete scope.
The maintainer’s configuration uses http://127.0.0.1:8000/mcp. It declares streamable-http transport. Check the project’s account and authentication instructions when adding the endpoint to your client.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| search_code | binary_name: str, query: str, limit: int = 5, offset: int = 0, search_mode: str = "semantic", include_full_code: bool = True, preview_length: int = 500… |
| list_xrefs | binary_name: str, name_or_address: str | list[str]): List cross-references to function(s), symbol(s), or address(es). Accepts a single target or a list for… |
| gen_callgraph | binary_name: str, function_name: str, direction: str = "calling", display_type: str = "flow", condense_threshold: int = 50, top_layers: int = 3, bottom_layers: |
| decompile_function | binary_name: str, name_or_address: str | list[str], include_callees: bool = False, include_strings: bool = False, include_xrefs: bool = False, timeout_sec: int |
| list_exports | binary_name: str, query: str = ".", offset: int = 0, limit: int = 25): Lists all exported functions and symbols from a specified binary (regex supported for… |
| list_imports | binary_name: str, query: str = ".", offset: int = 0, limit: int = 25): Lists all imported functions and symbols for a specified binary (regex supported for… |
| read_bytes | binary_name: str, address: str, size: int = 32): Reads raw bytes from memory at a specified address. Hex addresses may include or omit the 0x prefix. |
| search_strings | binary_name: str, query: str, limit: int = 100): Searches strings within a binary. |
| search_symbols_by_name | binary_name: str, query: str, functions_only: bool = False, offset: int = 0, limit: int = 25): Search for symbols within a binary by name. Supports regex… |
| import_binary | binary_path: str): Imports a binary from a designated path into the current Ghidra project. If the path is a directory, it will recursively scan and import all |
| list_project_binaries | ): Lists binaries in the current Ghidra project. In GUI mode this includes project binaries that exist on disk even if they are not currently open in… |
| list_project_binary_metadata | binary_name: str): Retrieves detailed metadata for a specific binary, including architecture, compiler, executable format, analysis metrics, and file hashes. |
| delete_project_binary | binary_name: str): Deletes a binary (program) from the Ghidra project. |
| rename_function | binary_name: str, name_or_address: str, new_name: str): Rename a function by name or address. In GUI mode this runs as a live Ghidra transaction and updates… |
| rename_variable | binary_name: str, function_name_or_address: str, variable_name: str, new_name: str): Rename a function parameter or local variable by exact name within a… |
| set_variable_type | binary_name: str, function_name_or_address: str, variable_name: str, type_name: str): Set the data type for a function parameter or local variable by exact… |
| set_function_prototype | binary_name: str, function_name_or_address: str, prototype: str): Set a function prototype from a full signature string. The tool always runs the prototype… |
| set_comment | binary_name: str, target: str, comment: str, comment_type: str): Set a function/decompiler comment or listing comment. Listing comment targets can be… |
| list_open_programs | ): List programs currently open in the Ghidra GUI. |
| open_program_in_gui | binary_name: str, new_window: bool = True): Open a project binary in CodeBrowser. By default this opens a new CodeBrowser window. Set new_window=false to reuse |
| set_current_program | binary_name: str): Make an open program the active/current program in the primary GUI tool context. |
| goto | binary_name: str, target: str, target_type: str): Navigate the Ghidra GUI to an address or function. target_type must be address or function. |
{
"mcpServers": {
"pyghidra-mcp": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Use Microsoft’s Playwright MCP server to navigate pages, inspect accessibility snapshots, fill forms and capture browser screenshots.
Connect GitHub MCP to repositories, issues and pull requests with GitHub’s hosted service or a locally run server.
Use the Supabase MCP server to inspect database schemas, query project data and retrieve docs through a project-scoped connection.
Search Linear issues and projects, inspect work context and manage updates through Linear’s hosted MCP server with OAuth.