GhidrAssistMCP

作者 jtang613已验证

An MCP extension for Ghidra

510
Stars
37
Forks
Java
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/jtang613/GhidrAssistMCP

快速入门

使用 GhidrAssistMCP 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

GhidrAssistMCP

A powerful Ghidra extension that provides an MCP (Model Context Protocol) server, enabling AI assistants and other tools to interact with Ghidra's reverse engineering capabilities through a standardized API.

Overview

GhidrAssistMCP bridges the gap between AI-powered analysis tools and Ghidra's comprehensive reverse engineering platform. By implementing the Model Context Protocol, this extension allows external AI assistants, automated analysis tools, and custom scripts to seamlessly interact with Ghidra's analysis capabilities.

Key Features

  • MCP Server Integration: Full Model Context Protocol server implementation using official SDK
  • Dual HTTP Transports: Supports SSE and Streamable HTTP transports for maximum client compatibility
  • 49 Built-in Tools: Comprehensive set of analysis tools with action-based consolidation for cleaner APIs
  • 6 MCP Resources: Static data resources for program info, functions, strings, imports, exports, and segments
  • 7 MCP Prompts: Pre-built analysis prompts for common reverse engineering tasks
  • Result Caching: Intelligent caching system to improve performance for repeated queries
  • Async Task Support: Long-running operations execute asynchronously with task management
  • Multi-Program Support: Work with multiple open programs simultaneously using program_name; use list_binaries Project Path values to disambiguate duplicate filenames
  • Multi-Window Support: Single MCP server shared across all CodeBrowser windows with intelligent focus tracking
  • Active Context Awareness: Automatic detection of which binary window is in focus, with context hints in all tool responses
  • Configurable UI: Easy-to-use interface for managing tools and monitoring activity
  • Real-time Logging: Track all MCP requests and responses with detailed logging
  • Dynamic Tool Management: Enable/disable tools individually with persistent settings

Clients

Shameless self-promotion: GhidrAssist supports GhidrAssistMCP right out of the box.

Screenshots

Screenshot Screenshot

Installation

Prerequisites

  • Ghidra 11.4+ (tested with Ghidra 12.1 Public)
  • An MCP Client (Like GhidrAssist)

Binary Release (Recommended)

  1. Download the latest release:

    • Go to the Releases page
    • Download the latest .zip file (e.g., GhidrAssistMCP-v1.0.0.zip)
  2. Install the extension:

    • In Ghidra: File → Install Extensions → Add Extension
    • Select the downloaded ZIP file
    • Restart Ghidra when prompted
  3. Enable the plugin:

    • File → Configure → Configure Plugins
    • Search for "GhidrAssistMCP"
    • Check the box to enable the plugin

Building from Source

Source builds require Java 25 or newer. The included Gradle wrapper pins the supported Gradle release; use it instead of a system Gradle installation.

  1. Clone the repository:

    git clone <repository-url>
    cd GhidrAssistMCP
    
  2. Point Gradle at your Ghidra install:

    • Set GHIDRA_INSTALL_DIR (environment variable), or pass -PGHIDRA_INSTALL_DIR=<path> when you run Gradle.
  3. Build + install:

    Ensure Ghidra isn't running and run:

    ./gradlew installExtension
    

    This copies the built ZIP into your Ghidra install ([GHIDRA_INSTALL_DIR]/Extensions/Ghidra) and extracts it into your Ghidra user Extensions folder (replacing any existing extracted copy).

    If you need to override that location, pass -PGHIDRA_USER_EXTENSIONS_DIR=<path>.

  4. Restart / verify:

    • Restart Ghidra.
    • If the plugin doesn't appear, enable it via File → Configure → Configure Plugins (search for "GhidrAssistMCP").

Configuration

Initial Setup

  1. Open the Control Panel:

    • Window → GhidrAssistMCP (or use the toolbar icon)
  2. Configure Server Settings:

    • Host: Default is localhost
    • Port: Default is 8080
    • Enable/Disable: Toggle the MCP server on/off

Tool Management

The Configuration tab allows you to:

  • View all available tools (49 total)
  • Enable/disable individual tools using checkboxes
  • Save configuration to persist across sessions
  • Monitor tool status in real-time

Headless Mode Quickstart

GhidrAssistMCP can also be started from Ghidra's analyzeHeadless launcher. This is useful when you want MCP access to a program loaded in headless Ghidra without opening the CodeBrowser UI.

First, build and install the extension so Ghidra can load the compiled classes and bundled dependencies:

cd /path/to/GhidrAssistMCP

export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.1_PUBLIC
./gradlew installExtension

Set paths for your Ghidra install and extracted user extension. On Linux, Ghidra user extensions usually live under ~/.config/ghidra/<ghidra_profile>/Extensions:

export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.1_PUBLIC
export GHIDRA_USER_EXTENSIONS_DIR="$HOME/.config/ghidra/ghidra_12.1_PUBLIC/Extensions"
export GHIDRASSISTMCP_EXT="$GHIDRA_USER_EXTENSIONS_DIR/GhidrAssistMCP"

Import a binary and start the MCP server as a headless pre-script:

"$GHIDRA_INSTALL_DIR/support/analyzeHeadless" /tmp/ghidra-projects McpHeadless \
  -import /path/to/binary \
  -scriptPath "$GHIDRASSISTMCP_EXT/ghidra_scripts" \
  -preScript GAMCPStartServerScript.java "host=127.0.0.1" "port=8080"

For a binary that is already imported into the project, use -process instead:

"$GHIDRA_INSTALL_DIR/support/analyzeHeadless" /tmp/ghidra-projects McpHeadless \
  -process binary_name \
  -scriptPath "$GHIDRASSISTMCP_EXT/ghidra_scripts" \
  -preScript GAMCPStartServerScript.java "host=127.0.0.1" "port=8080"

To keep a headless MCP session open after analysis completes, run the server as a post-script with wait mode:

"$GHIDRA_INSTALL_DIR/support/analyzeHeadless" /tmp/ghidra-projects McpHeadless \
  -process binary_name \
  -scriptPath "$GHIDRASSISTMCP_EXT/ghidra_scripts" \
  -postScript GAMCPStartServerScript.java "host=127.0.0.1" "port=8080" "wait=true"

MCP clients can connect to:

SSE:             http://127.0.0.1:8080/sse
SSE messages:    http://127.0.0.1:8080/message
Streamable HTTP: http://127.0.0.1:8080/mcp

The headless MCP server runs inside the analyzeHeadless JVM and uses the loaded currentProgram. The server holds a program consumer while it is running so MCP requests do not race against program database closure. Use wait=true when you want analyzeHeadless to stay open for interactive MCP clients. A harness can also pass completion_file=/workspace/control/session.complete; creating that file closes the MCP server cleanly and lets Ghidra save and exit normally.

Disposable static-analysis labs may pass tool_profile=agent_lab. This enables sandbox-local program export while arbitrary path import and Ghidra scripts remain disabled because they can expose process secrets or spawn processes. The harness owns artifact imports. Unknown profiles are rejected.

Available Tools

GhidrAssistMCP provides 49 tools organized into categories. Several tools use an action-based API pattern where a single tool provides multiple related operations.

Binary & Program Management

ToolDescription
get_binary_infoGet basic program information (name, architecture, compiler, etc.)
list_binariesList all open programs across all CodeBrowser windows, including Project Path values for unambiguous program_name targeting
open_programList/open project programs in CodeBrowser, with optional analysis prompt suppression and analysis-after-open task submission
close_programClose an open CodeBrowser program; changed programs require save=true or ignore_changes=true
import_fileImport a host file into the current Ghidra project and optionally open it (disabled by default)
project_filesList or delete files/folders in the active Ghidra project; deletion requires confirm=true
scriptsList/read/create/delete/run Ghidra scripts (disabled by default)
assemble_codeAssemble instruction text at an address and optionally patch it into program memory
patch_bytesPatch raw bytes in program memory at a given address
export_programExport the current program to disk (binary or original_file) (disabled by default)

Security-sensitive tools: import_file, scripts, and export_program are disabled by default because they interact with the host filesystem or execute script code. Enable them explicitly in the plugin configuration UI when needed. project_files deletes entries from the active Ghidra project database, not the original imported host files, and requires confirm=true.

Auto Analysis

ToolDescription
analysis_optionsList/set/reset Auto Analysis options and save/apply/list/delete option presets for the current program
analyze_programRun Auto Analysis on the current program or all open programs; supports full re-analysis, pending-changes analysis, address ranges, and option overrides
analysis_controlQuery Auto Analysis status or request cancellation of queued analysis tasks

Function Discovery & Analysis

ToolDescription
get_functionsList functions with optional pattern filtering and pagination
search_functions_by_nameFind functions by name pattern
get_function_statisticsComprehensive statistics for all functions
analyze_functionGet detailed function information (signature, variables, etc.)
get_current_functionGet function at current cursor position
get_function_stack_layoutGet stack frame layout with variable offsets
get_basic_blocksGet basic block information for a function
create_functionCreate/define a function at an address, optionally clearing existing data/code first
disassemble_atDisassemble code at an address, optionally clearing existing data/code in the range first

Binary Information

ToolDescription
get_importsList imported functions/symbols
get_exportsList exported functions/symbols
get_stringsList string references with optional filtering
search_stringsSearch strings by pattern
get_segmentsList memory segments
get_namespacesList namespaces in the program
get_relocationsList relocation entries
get_entry_pointsList all binary entry points

Data Analysis

ToolDescription
get_data_varsList data definitions in the program
get_data_atGet hexdump/data at a specific address
create_data_varDefine data variables at addresses
get_current_addressGet current cursor address

Consolidated Tools

These tools bundle related operations behind a discriminator parameter (e.g., action, target, target_type, or format).

get_code - Code Retrieval Tool

ParameterValuesDescription
formatdecompiler, disassembly, pcodeOutput format
rawbooleanOnly affects format: "pcode" (raw pcode ops vs grouped by basic blocks)

classes - Class Operations Tool

ActionDescription
listList classes with optional pattern filtering and pagination
get_infoGet detailed class information (methods, fields, vtables, virtual functions)

xrefs - Cross-Reference Tool

ParameterDescription
addressFind all references to/from a specific address
functionFind all cross-references for a function
include_callsInclude callers/callees (replaces separate call graph tool)

struct - Structure Operations Tool

ActionDescription
createCreate a new structure from C definition or empty
modifyModify an existing structure with new C definition
mergeMerge (overlay) fields from a C definition onto an existing structure without deleting existing fields
set_fieldSet/insert a single field at a specific offset without needing a full C struct (use field_name to name it)
name_gapConvert undefined bytes at an offset/length into a named byte[]-like field (useful for “naming gaps”; uses field_name)
auto_createAutomatically create structure from variable usage patterns
rename_fieldRename a field within a structure
field_xrefsFind cross-references to a specific struct field

rename_symbol - Symbol Renaming Tool

ParameterValuesDescription
target_typefunction, data, variableWhat kind of symbol to rename

batch_rename - Batch Symbol Renaming Tool

Rename multiple symbols in one operation.

comments - Comment Management Tool

ActionDescription
getGet comment at an address
setSet a comment at an address or on a function
listList all comments
removeRemove a comment

variables - Variable Management Tool

ActionDescription
listList local variables for a function
renameRename a local variable or a global/data symbol using scope
set_typeSet data type for a local variable
set_prototypeSet function signature/prototype

types - Type Management Tool

ActionDescription
listList all available data types
get_infoGet detailed data type information and structure definitions
setSet data type at a specific address, including arrays with array_count or suffix syntax like int[16]
deleteDelete a data type by name (optionally scoped by category)

bookmarks - Bookmark Management Tool

ActionDescription
listList all bookmarks
setSet a new bookmark
removeRemove a bookmark

Search Tools

ToolDescription
search_bytesSearch for byte patterns in memory

Async Task Management

Long-running operations (decompilation, structure analysis, field xrefs) execute asynchronously:

ToolDescription
get_task_statusCheck status and retrieve results of async tasks
cancel_taskCancel a running async task
list_tasksList all pending/running/completed tasks

MCP Resources

GhidrAssistMCP exposes 6 static resources that can be read by MCP clients:

Resource URIDescription
ghidra://program/{name}/infoBasic program information
ghidra://program/{name}/functionsList of all functions
ghidra://program/{name}/stringsString references
ghidra://program/{name}/importsImported symbols
ghidra://program/{name}/exportsExported symbols
ghidra://program/{name}/segmentsMemory segments

MCP Prompts

Pre-built prompts for common analysis tasks:

PromptDescription
analyze_functionComprehensive function analysis prompt
identify_vulnerabilitySecurity vulnerability identification
document_functionGenerate function documentation
trace_data_flowData flow analysis prompt
trace_network_dataTrace network send/recv call stacks for protocol analysis and network vulnerability identification
compare_functionsDiff two functions for similarity analysis
reverse_engineer_structRecover structure definitions from usage patterns

Usage Examples

Basic Program Information

{
  "method": "tools/call",
  "params": {
    "name": "get_binary_info"
  }
}

List Functions with Pattern Filtering

{
  "method": "tools/call",
  "params": {
    "name": "get_functions",
    "arguments": {
      "pattern": "init",
      "case_sensitive": false,
      "limit": 50
    }
  }
}

Decompile Function (get_code)

{
  "method": "tools/call",
  "params": {
    "name": "get_code",
    "arguments": {
      "function": "main",
      "format": "decompiler"
    }
  }
}

Get Class Information (Action-Based)

{
  "method": "tools/call",
  "params": {
    "name": "classes",
    "arguments": {
      "action": "get_info",
      "class_name": "MyClass"
    }
  }
}

Search Classes (Action-Based)

{
  "method": "tools/call",
  "params": {
    "name": "classes",
    "arguments": {
      "action": "list",
      "pattern": "Socket",
      "case_sensitive": false
    }
  }
}

Auto-Create Structure (Action-Based)

{
  "method": "tools/call",
  "params": {
    "name": "struct",
    "arguments": {
      "action": "auto_create",
      "function_identifier": "0x00401000",
      "variable_name": "ctx"
    }
  }
}

Find Struct Field Cross-References (Action-Based)

{
  "method": "tools/call",
  "params": {
    "name": "struct",
    "arguments": {
      "action": "field_xrefs",
      "structure_name": "Host",
      "field_name": "port"
    }
  }
}

Delete a Data Type

If multiple types share the same name across categories, pass category (or pass a full path in name starting with /).

{
  "method": "tools/call",
  "params": {
    "name": "types",
    "arguments": {
      "action": "delete",
      "name": "MyStruct",
      "category": "/mytypes"
    }
  }
}

Set an Array Data Type

{
  "method": "tools/call",
  "params": {
    "name": "types",
    "arguments": {
      "action": "set",
      "address": "0x00402000",
      "data_type": "int[16]"
    }
  }
}

Equivalent form:

{
  "method": "tools/call",
  "params": {
    "name": "types",
    "arguments": {
      "action": "set",
      "address": "0x00402000",
      "data_type": "int",
      "array_count": 16
    }
  }
}

Create a Function

{
  "method": "tools/call",
  "params": {
    "name": "create_function",
    "arguments": {
      "address": "0x00401000",
      "name": "mainWndProc"
    }
  }
}

For overlays or mixed code/data regions where Ghidra defined code as data, clear the existing code unit or an explicit range first:

{
  "method": "tools/call",
  "params": {
    "name": "create_function",
    "arguments": {
      "address": "0x80012340",
      "name": "ovl_init",
      "clear_existing": true,
      "clear_length": 256
    }
  }
}

Rename Function (Action-Based)

{
  "method": "tools/call",
  "params": {
    "name": "rename_symbol",
    "arguments": {
      "action": "function",
      "address": "0x00401000",
      "new_name": "decrypt_buffer"
    }
  }
}

Multi-Program Support

When working with multiple open programs, first list them:

{
  "method": "tools/call",
  "params": {
    "name": "list_binaries"
  }
}

Then specify which program to target using program_name. When multiple programs share the same filename, use the Project Path shown by list_binaries:

{
  "method": "tools/call",
  "params": {
    "name": "get_functions",
    "arguments": {
      "program_name": "/project/folder/target_binary.exe",
      "limit": 10
    }
  }
}

Multi-Window Support & Active Context Awareness

GhidrAssistMCP uses a singleton architecture that enables seamless operation across multiple CodeBrowser windows:

How It Works

  1. Single Shared Server: One MCP server (port 8080) serves all CodeBrowser windows
  2. Focus Tracking: Automatically detects which CodeBrowser window is currently active
  3. Context Hints: All tool responses include context information to help AI understand which binary is in focus

Context Information in Responses

Every tool response includes a context header:

[Context] Operating on: malware.exe | Active window: malware.exe

<tool response content>

or when targeting a different program:

[Context] Operating on: lib.so | Active window: main.exe | Total open programs: 3

<tool response content>

Benefits for AI Assistants

  • Smart Defaults: When no program_name is specified, tools automatically use the program from the active window
  • Context Awareness: AI knows which binary the user is currently viewing
  • Prevents Confusion: Clear indication when operating on a different binary than what's in the active window
  • Multi-tasking: Work with multiple binaries without constantly specifying which one to target

Architecture

Core Components

GhidrAssistMCP/
├── GhidrAssistMCPManager     # Singleton coordinator for multi-window support
│   ├── Tracks all CodeBrowser windows
│   ├── Manages focus tracking
│   └── Owns shared server and backend
├── GhidrAssistMCPPlugin      # Plugin instance (one per CodeBrowser window)
│   └── Registers with singleton manager
├── GhidrAssistMCPServer      # HTTP MCP server (SSE + Streamable)
│   └── Single shared instance on port 8080
├── GhidrAssistMCPBackend     # Tool management and execution
│   ├── Tool registry with enable/disable states
│   ├── Result caching system
│   ├── Async task management
│   └── Resource and prompt registries
├── GhidrAssistMCPProvider    # UI component provider
│   └── First registered instance provides UI
├── cache/                    # Caching infrastructure
│   ├── McpCache.java
│   └── CacheEntry.java
├── tasks/                    # Async task management
│   ├── McpTaskManager.java
│   └── McpTask.java
├── resources/                # MCP Resources (6 total)
│   ├── ProgramInfoResource.java
│   ├── FunctionListResource.java
│   ├── StringsResource.java
│   ├── ImportsResource.java
│   ├── ExportsResource.java
│   └── SegmentsResource.java
├── prompts/                  # MCP Prompts (7 total)
│   ├── AnalyzeFunctionPrompt.java
│   ├── IdentifyVulnerabilityPrompt.java
│   ├── DocumentFunctionPrompt.java
│   ├── TraceDataFlowPrompt.java
│   ├── TraceNetworkDataPrompt.java
│   ├── CompareFunctionsPrompt.java
│   └── ReverseEngineerStructPrompt.java
└── tools/                    # MCP Tools (49 total)
    ├── Consolidated action-based tools
    ├── Analysis tools
    ├── Modification tools
    └── Navigation tools

Tool Design Patterns

Consolidated Tools: Related operations are consolidated into single tools with a discriminator parameter:

  • get_code: format: decompiler|disassembly|pcode
  • classes: action: list|get_info
  • struct: action: create|modify|merge|set_field|name_gap|auto_create|rename_field|field_xrefs
  • rename_symbol: target_type: function|data|variable
  • comments: action: get|set|list|remove
  • variables: action: list|rename|set_type|set_prototype with scope: auto|local|global for rename
  • types: action: list|get|set|create_struct|create_enum|create_typedef|delete
  • bookmarks: action: list|set|remove
  • xrefs: address|function with include_calls parameter
  • analysis_options: action: list|set|reset|save_preset|apply_preset|list_presets|delete_preset
  • analysis_control: action: status|cancel
  • project_files: action: list|delete
  • scripts: action: list|get|create|delete|run

Tool Interface Methods:

  • isReadOnly(): Indicates if tool modifies program state
  • isLongRunning(): Triggers async execution with task management
  • isCacheable(): Enables result caching for repeated queries
  • isDestructive(): Marks potentially dangerous operations
  • isIdempotent(): Indicates if repeated calls produce same result

MCP Protocol Implementation

  • Transports:
    • HTTP with Server-Sent Events (SSE)
    • Streamable HTTP
  • Endpoints:
    • GET /sse - SSE connection for bidirectional communication
    • POST /message - Message exchange endpoint
    • GET /mcp - Receive Streamable HTTP events
    • POST /mcp - Initialize Streamable HTTP session
    • DELETE /mcp - Terminate Streamable HTTP session
  • Capabilities: Tools, Resources, Prompts

Development

Project Structure

src/main/java/ghidrassistmcp/
├── GhidrAssistMCPPlugin.java      # Main plugin class
├── GhidrAssistMCPManager.java     # Singleton coordinator
├── GhidrAssistMCPProvider.java    # UI provider with tabs
├── GhidrAssistMCPServer.java      # MCP server implementation
├── GhidrAssistMCPBackend.java     # Backend tool/resource/prompt management
├── McpBackend.java                # Backend interface
├── McpTool.java                   # Tool interface
├── McpEventListener.java          # Event notification interface
├── cache/                         # Caching system
├── tasks/                         # Async task system
├── resources/                     # MCP resources
├── prompts/                       # MCP prompts
└── tools/                         # Tool implementations

Adding New Tools

  1. Implement McpTool interface:

    public class MyCustomTool implements McpTool {
        @Override
        public String getName() { return "my_custom_tool"; }
    
        @Override
        public String getDescription() { return "Description"; }
    
        @Override
        public boolean isReadOnly() { return true; }
    
        @Override
        public boolean isLongRunning() { return false; }
    
        @Override
        public boolean isCacheable() { return true; }
    
        @Override
        public McpSchema.JsonSchema getInputSchema() { /* ... */ }
    
        @Override
        public McpSchema.CallToolResult execute(Map<String, Object> arguments, Program program) {
            // Implementation
        }
    }
    
  2. Register in backend:

    // In GhidrAssistMCPBackend constructor
    registerTool(new MyCustomTool());
    

Build Commands

# Clean build
./gradlew clean

# Build extension zip (written to dist/)
./gradlew buildExtension

# Install (extract) extension into the Ghidra user Extensions directory
./gradlew installExtension

# Uninstall (delete extracted directory from the Ghidra user Extensions directory)
./gradlew uninstallExtension

# Build/install with specific Ghidra path (required if GHIDRA_INSTALL_DIR isn't set)
./gradlew -PGHIDRA_INSTALL_DIR=/path/to/ghidra installExtension

# Debug build
./gradlew buildExtension --debug

Dependencies

  • MCP SDK: io.modelcontextprotocol.sdk:mcp:0.17.1
  • Jetty Server: 11.0.20 (HTTP/SSE transport)
  • Jackson: 2.18.3 (JSON processing)
  • Ghidra API: Bundled with Ghidra installation

Logging

UI Logging

The Log tab provides real-time monitoring:

  • Session Events: Server start/stop, program changes
  • Tool Requests: REQ: tool_name {parameters...}
  • Tool Responses: RES: tool_name {response...}
  • Error Messages: Failed operations and diagnostics
  • Cache Hits: When cached results are returned

Console Logging

Detailed logging in Ghidra's console:

  • Tool registration and initialization
  • MCP server lifecycle events
  • Async task execution and completion
  • Cache statistics
  • Database transaction operations
  • Error stack traces and debugging information

Troubleshooting

Common Issues

Server Won't Start

  • Check if port 8080 is available
  • Verify Ghidra installation path
  • Examine console logs for errors

Tools Not Appearing

  • Ensure plugin is enabled
  • Check Configuration tab for tool status
  • Verify backend initialization in logs

MCP Client Connection Issues

  • Confirm server is running (check GhidrAssistMCP window)
  • Test connection: curl http://localhost:8080/sse
  • Check firewall settings

Tool Execution Failures

  • Verify program is loaded in Ghidra
  • Check tool parameters are correct
  • Review error messages in Log tab

Async Task Issues

  • Use get_task_status to check task state
  • Use list_tasks to see all tasks
  • Use cancel_task if a task is stuck

Debug Mode

Enable debug logging by adding to Ghidra startup:

-Dlog4j.logger.ghidrassistmcp=DEBUG

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes with proper tests
  4. Follow code style: Use existing patterns and conventions
  5. Submit a pull request with detailed description

Code Standards

  • Java 25 baseline for builds and runtime validation
  • Proper exception handling with meaningful messages
  • Transaction safety for all database operations
  • Thread safety for UI operations
  • Comprehensive documentation for public APIs
  • Action-based consolidation for related tool operations

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • NSA/Ghidra Team for the excellent reverse engineering platform
  • Anthropic for the Model Context Protocol specification

Questions or Issues?

Please open an issue on the project repository for bug reports, feature requests, or questions about usage and development.

常见问题

What is GhidrAssistMCP?

GhidrAssistMCP is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by jtang613. An MCP extension for Ghidra. It has 510 GitHub stars.

Is GhidrAssistMCP safe to use?

Yes. GhidrAssistMCP passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install GhidrAssistMCP?

Clone the repository with "git clone https://github.com/jtang613/GhidrAssistMCP" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is GhidrAssistMCP written in?

GhidrAssistMCP is primarily written in Java. It is open-source under jtang613 on GitHub, so you can review or fork the full source.

Are there alternatives to GhidrAssistMCP?

Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh GhidrAssistMCP against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

Scrapling

by D4Vinci

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

75,9137,581Python
MCP 服务器
查看详情

TrendRadar

by sansan0

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

61,65224,883Python
MCP 服务器
查看详情

context7

by upstash

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

61,0602,938TypeScript
MCP 服务器
查看详情

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

39,9393,219C
MCP 服务器
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情