MVP-omgeving voor een bachelorproef rond geautomatiseerde security assessments van Model Context Protocol (MCP)-servers.
Deze repository bevat twee onderdelen:
- een opzettelijk kwetsbare doelserver (Goat),
- een scanner die de MCP-aanvalsoppervlakte ontdekt en test.
Het doel is een reproduceerbaar framework bouwen dat:
- MCP endpoints en tools automatisch ontdekt,
- statische risico-indicatoren detecteert (SAST-regels),
- dynamische probes/fuzzing uitvoert,
- resultaten exporteert naar een gestructureerd rapport.
bp-mvp/
├── docker-compose.yml
├── roadmap.md
├── goat/
│ └── Dockerfile
└── scanner/
├── Dockerfile
└── reports/
- Docker Engine
- Docker Compose (v2)
Controle:
docker --version
docker compose version- Clone/open de repository.
- Bouw de containers:
docker compose build- Start de stack:
docker compose up- Stoppen:
docker compose downREADME.mdenroadmap.mdzijn aanwezig.- Werkende Goat-server in
goat/server.pymet endpoints/health,/sseen/rpc. - Werkende scanner in
scanner/client.pydie discovery uitvoert (list_tools,list_prompts,list_resources). - Dependencies en entrypoints zijn geconfigureerd via de Dockerfiles en
requirements.txtbestanden. - Scanresultaten worden geschreven naar
scanner/reports/discovery-report.jsonenscanner/reports/discovery-report.md.
docker compose up --build --abort-on-container-exit --exit-code-from scannerNa een succesvolle run bevat de scanner-output regels zoals:
[scanner] Discovery done. tools=... prompts=... resources=...[scanner] Reports written to /app/reports
Als Docker faalt met docker-credential-desktop (credential helper ontbreekt), gebruik tijdelijk:
mkdir -p .docker-tmp
printf '{}' > .docker-tmp/config.json
DOCKER_CONFIG=$PWD/.docker-tmp docker compose up --buildDe volledige planning en checklist staan in roadmap.md.
De Goat-component bevat (of zal bevatten) opzettelijk kwetsbaar gedrag voor onderzoeksdoeleinden.
- Gebruik deze omgeving uitsluitend lokaal/in een geïsoleerd lab.
- Niet blootstellen aan publieke netwerken of productie-omgevingen.