DG

dan1t0/gophish-mcp

开发工具
21 stars 0 forks 质量 90 趋势 90

A lightweight toolkit of scripts and utilities to automate Gophish campaigns, streamline phishing assessments, and speed up MCP security workflows.

概览

This MCP has been tested and works with GoPhish version . If I receive enough love 😊, I might update it with new capabilities! - 🎯 : Full CRUD + advanced analysis and statistics - 👥 : Manage target user groups with search capabilities - 📧 : Create, edit and manage email templates - 🌐 : Manage landing pages for campaigns - 📮 : Configure email sending profiles - 👤 : Manage system users and administrators - 📊 : Detailed statistics, data export and global analysis - 🔍 : Search, validation, duplication and diagnostics Create a .env file in the project directory: Add the server to your MCP configuration (without credentials): Restart your MCP client (Claude, Cursor, etc.) Credentials are only configured in the server's .env file, not in the client JSON. All tools listed in autoApprove are read-only according to the API implementation in server.py. Any create, update or delete operation (gophish_create_*, gophish_update_*, gophish_delete_*) will always require manual approval.

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

  1. Clone this repository
git clone 
cd gophish-mcp
  1. Install dependencies:
pip install -e .

Configuration

  1. Copy the example file:
cp env.example .env
  1. Edit .env with 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 .env file, not in the client JSON.

All tools listed in autoApprove are read-only according to the API implementation in server.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
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
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


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.

View this README on GitHub

安装

This server does not publish a one-line install command.

Open the repository installation guide

配置

{ "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" ] } } }