Ghidra MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| setup_contextC | Run Ghidra headless decompilation to export binary context. |
| list_functionsB | List all function names from the loaded binary. |
| get_pseudocodeC | Get pseudocode for a specific function by name. |
| list_structuresB | List all structure names from the loaded binary. |
| get_structureC | Get details of a specific structure by name. |
| list_enumsB | List all enum names from the loaded binary. |
| get_enumC | Get details of a specific enum by name. |
| list_function_definitionsB | List all function definition names from the loaded binary. |
| get_function_definitionC | Get details of a specific function definition by name. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Every tool has a clearly distinct purpose with no ambiguity. The 'get_' tools retrieve specific details for different binary elements (enum, function definition, pseudocode, structure), while the 'list_' tools enumerate names for those same elements, and 'setup_context' performs a distinct initialization task. There is no overlap in functionality that could cause misselection.
Tool names follow a highly consistent verb_noun pattern throughout. All tools use snake_case with clear prefixes: 'get_' for retrieval, 'list_' for enumeration, and 'setup_' for initialization. This predictable naming scheme makes it easy for agents to understand and select the appropriate tool.
With 9 tools, the server is well-scoped for its purpose of binary analysis with Ghidra. Each tool earns its place by covering distinct aspects of binary inspection (enums, functions, structures, pseudocode) and initialization. This count is typical for a domain-specific server and avoids being too thin or overwhelming.
The tool surface provides comprehensive read-only coverage for binary analysis, including listing and retrieving details for key elements like functions, structures, and enums, plus pseudocode and setup. A minor gap exists in write operations (e.g., modifying or creating elements), but agents can effectively work around this for analysis tasks.