Skip to content

Challenge 012: Harden an MCP ServerΒΆ

Level: L300 Time: ~90 min Cost: Free

ScenarioΒΆ

Attack a deliberately weak local MCP-style server, defend it with explicit controls, then map each finding to OWASP guidance.

flowchart LR
  A[Attack fixture] --> W[Weak server]
  W --> F[Finding]
  F --> D[Defense]
  D --> T[Regression test]
  T --> O[OWASP mapping]

TaskΒΆ

  1. Run the attack fixtures
  2. Implement schema, authorization, rate, and output controls
  3. Prove negative cases
  4. Map evidence to OWASP

Acceptance criteriaΒΆ

  • All local tests pass
  • Each attack has a named control
  • No secret or network access is required
  • The report maps attack β†’ defense β†’ OWASP

Local validationΒΆ

cd docs/docs/en/challenges/challenge-012
python -m unittest -v
python validate.py

Official sourcesΒΆ