gophish-mcp

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.

Category
访问服务器

README

🎣 GoPhish MCP Server

Python MCP GoPhish License

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 <repository-url>
cd gophish-mcp
  1. Install dependencies:
pip install -e .

Configuration

Option 1: .env file (Recommended)

  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

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


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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选