Skip to content
This repository was archived by the owner on Nov 16, 2025. It is now read-only.

Commit c580093

Browse files
committed
Dockerfile and Smithery config
1 parent 7356e0c commit c580093

3 files changed

Lines changed: 81 additions & 0 deletions

File tree

Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config
2+
# Start from official Python image
3+
FROM python:3.10-slim
4+
5+
# Set working directory
6+
WORKDIR /app
7+
8+
# Copy requirements and install dependencies
9+
COPY requirements.txt .
10+
RUN pip install --no-cache-dir -r requirements.txt
11+
12+
# Copy application code
13+
COPY bridge_mcp_ghidra.py .
14+
15+
# Expose nothing (stdio by default), user can map ports for SSE
16+
17+
# Default entrypoint (overridden by MCP start command)
18+
ENTRYPOINT ["python", "bridge_mcp_ghidra.py"]

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ MCP Server + Ghidra Plugin
2525

2626
# Installation
2727

28+
### Installing via Smithery
29+
30+
To install GhidraMCP for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@LaurieWired/GhidraMCP):
31+
32+
```bash
33+
npx -y @smithery/cli install @LaurieWired/GhidraMCP --client claude
34+
```
35+
2836
## Prerequisites
2937
- Install [Ghidra](https://ghidra-sre.org)
3038
- Python3

smithery.yaml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Smithery configuration file: https://smithery.ai/docs/build/project-config
2+
3+
startCommand:
4+
type: stdio
5+
configSchema:
6+
# JSON Schema defining the configuration options for the MCP.
7+
type: object
8+
required: []
9+
properties:
10+
ghidraServer:
11+
type: string
12+
default: http://127.0.0.1:8080/
13+
description: URL of the Ghidra HTTP server
14+
transport:
15+
type: string
16+
default: stdio
17+
description: Transport protocol for MCP
18+
mcpHost:
19+
type: string
20+
default: 127.0.0.1
21+
description: Host for SSE transport
22+
mcpPort:
23+
type: number
24+
default: 8081
25+
description: Port for SSE transport
26+
commandFunction:
27+
# A JS function that produces the CLI command based on the given config to start the MCP on stdio.
28+
|-
29+
(config) => {
30+
const args = [];
31+
if (config.ghidraServer) {
32+
args.push("--ghidra-server", config.ghidraServer);
33+
}
34+
if (config.transport) {
35+
args.push("--transport", config.transport);
36+
}
37+
if (config.transport === "sse") {
38+
if (config.mcpHost) {
39+
args.push("--mcp-host", config.mcpHost);
40+
}
41+
if (config.mcpPort !== undefined) {
42+
args.push("--mcp-port", String(config.mcpPort));
43+
}
44+
}
45+
return {
46+
command: "python",
47+
args: ["bridge_mcp_ghidra.py", ...args],
48+
env: {}
49+
};
50+
}
51+
exampleConfig:
52+
ghidraServer: http://127.0.0.1:8080/
53+
transport: stdio
54+
mcpHost: 127.0.0.1
55+
mcpPort: 8081

0 commit comments

Comments
 (0)