gophish-mcp
An MCP server that provides a complete interface to the GoPhish API for managing phishing campaigns, groups, templates, landing pages, SMTP profiles, and users through natural language commands.
README
๐ฃ GoPhish MCP Server
A complete MCP (Model Context Protocol) server for interacting with all GoPhish API functionalities.
Features โข Installation โข Configuration โข Usage โข Tools
๐ Note: This MCP has been tested and works with GoPhish version 0.11.0. If I receive enough love ๐, I might update it with new capabilities!
โจ Key Features
- ๐ฏ Complete Campaign Management: Full CRUD + advanced analysis and statistics
- ๐ฅ Group Management: Manage target user groups with search capabilities
- ๐ง Email Templates: Create, edit and manage email templates
- ๐ Landing Pages: Manage landing pages for campaigns
- ๐ฎ SMTP Profiles: Configure email sending profiles
- ๐ค User Management: Manage system users and administrators
- ๐ Analysis and Reports: Detailed statistics, data export and global analysis
- ๐ Utility Tools: Search, validation, duplication and diagnostics
๐ Quick Start
Installation
- Clone this repository
git clone <repository-url>
cd gophish-mcp
- Install dependencies:
pip install -e .
Configuration
Option 1: .env file (Recommended)
- Copy the example file:
cp env.example .env
- Edit
.envwith your credentials:
GOPHISH_URL=https://your-gophish-server:3333
GOPHISH_API_KEY=your-api-key-here
Option 2: Environment variables
export GOPHISH_URL="https://your-gophish-server:3333"
export GOPHISH_API_KEY="your-api-key"
๐ป Usage with Claude, Cursor, VSCode, Kiro
Step 1: Configure Credentials (One time only)
Create a .env file in the project directory:
cp env.example .env
# Edit .env with your real credentials
Step 2: Configure MCP Client
Add the server to your MCP configuration (without credentials):
{
"mcpServers": {
"gophish": {
"command": "python",
"args": ["/path/to/your/gophish-mcp/server.py"],
"cwd": "/path/to/your/gophish-mcp",
"disabled": false,
"autoApprove": [
"gophish_get_campaigns",
"gophish_get_campaign",
"gophish_get_active_campaigns",
"gophish_get_completed_campaigns",
"gophish_get_recent_campaigns",
"gophish_get_latest_campaign",
"gophish_get_campaigns_summary",
"gophish_get_campaign_results",
"gophish_get_campaign_summary",
"gophish_get_campaign_analytics",
"gophish_get_global_analytics",
"gophish_get_system_status",
"gophish_search_campaigns",
"gophish_search_groups",
"gophish_search_templates",
"gophish_get_groups",
"gophish_get_templates",
"gophish_get_pages",
"gophish_get_smtp_profiles",
"gophish_get_users",
"gophish_get_campaign_by_status",
"gophish_get_campaign_by_date_range",
"gophish_get_campaign_targets",
"gophish_get_campaign_events"
]
}
}
}
Step 3: Restart MCP Client
Restart your MCP client (Claude, Cursor, etc.)
๐ Security Note: Credentials are only configured in the server's
.envfile, not in the client JSON.All tools listed in
autoApproveare read-only according to the API implementation inserver.py. Any create, update or delete operation (gophish_create_*,gophish_update_*,gophish_delete_*) will always require manual approval.
๐ ๏ธ Tool Categories
| Category | Description |
|---|---|
| ๐ READ-ONLY | These tools only read data and are automatically approved by the MCP client |
| โ๏ธ WRITE | These tools modify data and require manual approval for security |
๐ Available Tools
๐ฏ Campaigns (Complete Management)
Basic Operations
| Tool | Description | Type |
|---|---|---|
gophish_get_campaigns |
Get all campaigns | ๐ READ-ONLY |
gophish_get_campaign |
Get details of a specific campaign | ๐ READ-ONLY |
gophish_create_campaign |
Create new campaign | โ๏ธ WRITE |
gophish_update_campaign |
Update existing campaign | โ๏ธ WRITE |
gophish_delete_campaign |
Delete campaign | โ๏ธ WRITE |
Analysis and Statistics
| Tool | Description | Type |
|---|---|---|
gophish_get_latest_campaign |
Get latest campaign with complete statistics | ๐ READ-ONLY |
gophish_get_campaigns_summary |
Get summary of last N campaigns | ๐ READ-ONLY |
gophish_get_campaign_results |
Get detailed results of a campaign | ๐ READ-ONLY |
gophish_get_campaign_summary |
Get summary with statistics of a campaign | ๐ READ-ONLY |
gophish_get_campaign_analytics |
Get complete analysis of a campaign | ๐ READ-ONLY |
Filters and Search
| Tool | Description | Type |
|---|---|---|
gophish_get_active_campaigns |
Get active campaigns | ๐ READ-ONLY |
gophish_get_completed_campaigns |
Get completed campaigns | ๐ READ-ONLY |
gophish_get_campaign_by_status |
Filter campaigns by status | ๐ READ-ONLY |
gophish_get_recent_campaigns |
Get campaigns from last N days | ๐ READ-ONLY |
gophish_get_campaign_by_date_range |
Get campaigns in date range | ๐ READ-ONLY |
gophish_search_campaigns |
Search campaigns by name | ๐ READ-ONLY |
Utilities
| Tool | Description | Type |
|---|---|---|
gophish_get_campaign_targets |
Get all targets of a campaign | ๐ READ-ONLY |
gophish_get_campaign_events |
Get events of a campaign | ๐ READ-ONLY |
๐ฅ Groups (Complete Management)
| Tool | Description | Type |
|---|---|---|
gophish_get_groups |
Get all groups | ๐ READ-ONLY |
gophish_create_group |
Create new group | โ๏ธ WRITE |
gophish_update_group |
Update existing group | โ๏ธ WRITE |
gophish_delete_group |
Delete group | โ๏ธ WRITE |
gophish_search_groups |
Search groups by name | ๐ READ-ONLY |
๐ง Email Templates (Complete Management)
| Tool | Description | Type |
|---|---|---|
gophish_get_templates |
Get all templates | ๐ READ-ONLY |
gophish_create_template |
Create new template | โ๏ธ WRITE |
gophish_update_template |
Update existing template | โ๏ธ WRITE |
gophish_delete_template |
Delete template | โ๏ธ WRITE |
gophish_search_templates |
Search templates by name or subject | ๐ READ-ONLY |
๐ Landing Pages (Complete Management)
| Tool | Description | Type |
|---|---|---|
gophish_get_pages |
Get all pages | ๐ READ-ONLY |
gophish_create_page |
Create new page | โ๏ธ WRITE |
gophish_update_page |
Update existing page | โ๏ธ WRITE |
gophish_delete_page |
Delete page | โ๏ธ WRITE |
๐ฎ SMTP Profiles (Complete Management)
| Tool | Description | Type |
|---|---|---|
gophish_get_smtp_profiles |
Get all SMTP profiles | ๐ READ-ONLY |
gophish_create_smtp_profile |
Create new SMTP profile | โ๏ธ WRITE |
gophish_update_smtp_profile |
Update existing SMTP profile | โ๏ธ WRITE |
gophish_delete_smtp_profile |
Delete SMTP profile | โ๏ธ WRITE |
๐ค User Management
| Tool | Description | Type |
|---|---|---|
gophish_get_users |
Get all users/administrators | ๐ READ-ONLY |
gophish_create_user |
Create new user | โ๏ธ WRITE |
gophish_update_user |
Update existing user | โ๏ธ WRITE |
๐ Global Analysis and Reports
| Tool | Description | Type |
|---|---|---|
gophish_get_system_status |
Get system status and general statistics | ๐ READ-ONLY |
gophish_get_global_analytics |
Get global analysis of all campaigns | ๐ READ-ONLY |
๐ก Usage Examples
Once configured, you can use commands like:
Basic Management
Show me all GoPhish campaigns
Create a new campaign called "Test Campaign" using template with ID 1
Update campaign with ID 5 to change its name to "Updated Campaign"
Analysis and Reports
Show me the complete analysis of campaign with ID 3
Get global statistics of all campaigns
Show me events from campaign 2
Search and Filters
Search campaigns containing "phishing" in the name
Show me all active campaigns
Get campaigns created in the last 7 days
User Management
List all system users
Create a new administrator user
Advanced Search
Search templates containing "urgent" in the subject
Find groups containing "marketing" in the name
๐ Security
- โ ๏ธ Server disables SSL verification by default for local development
- โ Make sure to use HTTPS in production
- ๐ Keep your API key secure and don't share it
- ๐ก๏ธ All write operations require valid authentication
๐งช Testing
Run Tests
# Run all tests
python test.py all
# Run read-only tests
python test.py readonly
# Run verbose demo
python test.py demo
# Run comprehensive tests
python test.py comprehensive
Testing Requirements
- โ GoPhish server running
- โ
Valid credentials in
.env - โ
Dependencies installed:
pip install -e .
See tests/README.md for more details about testing.
๐ ๏ธ Utilities
Utility Scripts
# List campaigns
python utils/list_campaigns.py
๐๏ธ Development
For local development:
# Install in development mode
pip install -e .
# Run server directly
python server.py
# Run tests
python test.py all
๐ Additional Resources
- Architecture Documentation - Learn about the server architecture
- Test Results - View comprehensive test results
Made with โค๏ธ for the GoPhish community
โญ Star this repo if you find it useful!
License
This project is licensed under the MIT License. See the LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.