Skip to main content
Glama

Docker MCP Python License

Compatible with:

Kiro Cursor Claude VS Code Windsurf


Table of Contents

Related MCP server: MCP Vulnerability Checker Server

Overview

MCPwner is an MCP server that gives your LLM agent a full offensive-security toolkit. It exposes 55+ containerized tools through a single MCP interface - SAST, SCA, secrets, IaC, reconnaissance, DAST, coverage-guided fuzzing, CodeQL (builtin and custom queries), a headless browser, an OOB callback server, a PoC-script sandbox with deterministic oracles, and a persistent findings ledger.

The architecture is designed for agent-driven vulnerability research: a single agent session - model-agnostic (Claude, Cursor, Kiro, Gemini, or any MCP-capable coding agent) - works through the research phases (recon, code audit, PoC validation, adversarial review), recording every step in the shared findings ledger. Each finding progresses from hypothesis through empirical proof to verified report - "no exploit, no report."

Note: This project is under active development. Learn more about MCPs here.

Workflow

MCPwner is the tool server; your LLM agent is the brain. A typical deep-research engagement:

Phase

What happens

MCPwner tools used

Workspace

Clone target, detect stack

create_workspace, detect_languages

Discover

Broad scan for known patterns

run_sast_scan, run_sca_scan, run_secrets_scan, run_reconnaissance_chain, execute_query

Triage

Kill false positives, prove reachability

index_code_facts, query_code_facts, execute_query (custom CodeQL)

Research

Hunt novel bugs via diffs and variant analysis

diff_discovery, run_fuzzing_scan, custom CodeQL

Prove

Empirical validation with deterministic oracles

run_poc_scan (sandbox), run_dast_scan, run_utilities_scan (chromium)

Report

Only oracle-verified findings ship

upsert_finding, generate_report

The ledger uses deep-merge upserts, so a later phase's review verdict never clobbers the earlier poc data (and vice-versa) - and it stays consistent if the agent's context is reset mid-engagement.

Integrated Tools

Reconnaissance

Static Application Security Testing (SAST)

Source Fuzzing

Secrets Scanning

Software Composition Analysis (SCA)

Infrastructure & IaC Security

Dynamic Application Security Testing (DAST)

Utilities

PoC Validation

PoC-Script Sandbox

Deterministic oracle runner

The PoC sandbox runs agent-authored Python/bash exploit scripts inside the target network and returns a deterministic oracle verdict (pass/fail based on exit code or explicit markers). This is how MCPwner proves logic bugs, IDOR/BOLA, race conditions, and access-control bypasses that off-the-shelf DAST cannot express.

Installation

Prerequisites

System Requirements:

  • Docker Engine 20.10+ and Docker Compose 2.0+

  • 8GB RAM minimum (16GB recommended for running multiple tools)

  • 20GB free disk space (security tool images are large)

  • Supported platforms: Linux, macOS, Windows (with WSL2)

MCP Client:

  • Claude Desktop, Cursor, Kiro, or any MCP-compatible client

Setup

  1. Clone the repository:

    git clone https://github.com/nedlir/mcpwner.git
    cd mcpwner
  2. Configure the server:

    cp .env.example .env
    cp config/config.yaml.example config/config.yaml
  3. Start the services:

    docker compose up -d --build
  4. Verify services are running:

    docker compose ps

Connect Your IDE

Once Docker containers are running, add MCPwner to your MCP client.

Dynamic Tool Registration: MCPwner uses Docker Compose profiles for opt-in tool categories. The .env file's COMPOSE_PROFILES variable controls which containers start. The MCP server probes running containers at startup and registers only healthy tools - if a container is down, its tools simply don't appear. Tools in the utilities category run unconditionally.

One-Click Install (requires Docker running):

Kiro Cursor Claude VS Code Windsurf

Manual Configuration:

Add to your MCP configuration file (claude_desktop_config.json, mcp.json, etc.):

{
  "mcpServers": {
    "mcpwner": {
      "command": "docker",
      "args": ["exec", "-i", "mcpwner-server", "python", "src/server.py"],
      "env": {}
    }
  }
}

Restart your MCP client to load the new server configuration.

Scanning Local Projects

Mount your projects into the container by adding a volume in docker-compose.yaml:

services:
  mcpwner:
    volumes:
      - /path/to/your/projects:/mnt/projects:ro

Then use create_workspace with source_type="local" and source="/mnt/projects/my-project".

Architecture

graph LR
    subgraph IDE[" "]
        LLM[🤖<br/>LLM]
        Client[MCP Client]
        LLM -.-> Client
    end

    Server[MCPwner Server]

    SAST[SAST Tools]
    Secrets[Secrets Scanning]
    SCA[SCA Tools]
    Recon[Reconnaissance]
    CodeQL[CodeQL Service]
    Linguist[Language Detection]
    Utilities[Utilities]
    IaC[IaC Security]
    Fuzzing[Source Fuzzing]
    DAST[DAST Tools]
    PoC[PoC Sandbox]

    Client -->|JSON-RPC 2.0| Server
    Server -->|HTTP| SAST
    Server -->|HTTP| Secrets
    Server -->|HTTP| SCA
    Server -->|HTTP| Recon
    Server -->|HTTP| CodeQL
    Server -->|HTTP| Linguist
    Server -->|HTTP| Utilities
    Server -->|HTTP| IaC
    Server -->|HTTP| Fuzzing
    Server -->|HTTP| DAST
    Server -->|HTTP| PoC

    style LLM fill:#7C3AED,stroke:#5B21B6,stroke-width:3px,color:#fff
    style Client fill:#4A90E2,stroke:#2E5C8A,stroke-width:3px,color:#fff
    style Server fill:#F5A623,stroke:#C17D11,stroke-width:3px,color:#fff
    style SAST fill:#E74C3C,stroke:#C0392B,stroke-width:2px,color:#fff
    style Secrets fill:#9B59B6,stroke:#7D3C98,stroke-width:2px,color:#fff
    style SCA fill:#1ABC9C,stroke:#16A085,stroke-width:2px,color:#fff
    style Recon fill:#00BCD4,stroke:#0097A7,stroke-width:2px,color:#fff
    style CodeQL fill:#E67E22,stroke:#CA6F1E,stroke-width:2px,color:#fff
    style Linguist fill:#3498DB,stroke:#2874A6,stroke-width:2px,color:#fff
    style Utilities fill:#6D28D9,stroke:#4C1D95,stroke-width:2px,color:#fff
    style IaC fill:#059669,stroke:#047857,stroke-width:2px,color:#fff
    style Fuzzing fill:#B91C1C,stroke:#7F1D1D,stroke-width:2px,color:#fff
    style DAST fill:#D35400,stroke:#A04000,stroke-width:2px,color:#fff
    style PoC fill:#DC2626,stroke:#991B1B,stroke-width:2px,color:#fff
    style IDE fill:none,stroke:#ddd,stroke-width:2px,stroke-dasharray: 5 5

Design Principles:

  • Container isolation for security tool execution

  • Standardized output (SARIF/JSON) for LLM consumption

  • Dynamic tool registration - only healthy containers appear as tools

  • Persistent findings ledger with deep-merge semantics across research phases

  • Deterministic oracles for PoC validation (exit code, markers, OOB callbacks, XSS execution)

Agent Workflow

MCPwner is tool infrastructure. A single agent session - model-agnostic (Claude, Cursor, Kiro, Gemini, or any MCP-capable coding agent) - drives the whole engagement, running each phase itself (recon → API mapping → environment → code audit → vulnerability research → PoC → review) and recording progress in the findings ledger. There is no separate orchestration service or configuration file: MCPwner exposes tools, the agent supplies the workflow.

For a long, isolated sub-task - canonically, standing up and driving a live target environment in a container - the agent may optionally offload to a helper session if its host supports one, but the flow never depends on it.

Data Persistence

MCPwner persists workspace metadata, CodeQL databases, and findings across container restarts using file-based storage in the shared Docker volume (/workspaces/.metadata/). The findings ledger is always available (no container health gate) - it's how the agent tracks findings across phases and recovers state after a context reset.

Workspace Cleanup:

  • delete_files=True, delete_metadata=False - Free disk space, preserve history

  • delete_files=True, delete_metadata=True - Complete removal

  • delete_files=False, delete_metadata=True - Remove from list, keep files

License

Apache 2.0

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    A Model Context Protocol compliant server that integrates Semgrep static analysis tool with AI assistants like Anthropic Claude, enabling advanced code analysis, security vulnerability detection, and code quality improvements through a conversational interface.
    Last updated
    7
    107
    28
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server providing security vulnerability intelligence tools including CVE lookup, EPSS scoring, CVSS calculation, exploit detection, and Python package vulnerability checking.
    Last updated
    8
    9
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    A security-focused Model Context Protocol server that enables controlled local tool execution through strict network firewalls, filesystem protections, and rate-limiting policies. It features a plugin-based architecture for progressive tool discovery and includes reference implementations for web searching and bug tracking.
    Last updated
    15
    MIT

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A Model Context Protocol server for Wix AI tools

  • MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pigyon/MCPwner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server