Cybersecurity Analyst

Ed Donner

A code analyzer that scans Python source code for security vulnerabilities and provides a summary, list of vulnerabilities, and fix recommendations.

Static web · Backend APIs · Research Agent · Semgrep MCP · Terraform (AWS, Azure, GCP)

Open live demo ↗

Overview

Cybersecurity Analyst is a static UI plus API that accepts a Python upload and returns a security report. One Security Researcher agent runs in the API process, calls Semgrep over MCP, reviews for gaps, and returns a typed SecurityReport for the browser.

System design

  • Upload, then analyze. Next.js owns the file pick and results table; FastAPI owns POST /api/analyze.
  • One researcher agent. OpenAI Agents SDK + Semgrep MCP in-process; no separate batch or chat surface.
  • Ephemeral workspace. Uploaded source is written for the scan and removed after the report.
  • One container image. UI and API ship together; Terraform packages the same image for AWS, Azure, and GCP.

Product path

What a developer can do. Diagram key: ✦ AI agent · purple = actor · white = service.

---
config:
  theme: default
  themeVariables:
    background: "#ffffff"
    fontSize: "14px"
---
flowchart TB
    person[Developer]
    ui[Cybersecurity Analyst UI]
    researcher["✦ Security Researcher"]
    report[SecurityReport]

    person -->|upload Python source| ui
    person -->|read summary and fixes| ui
    ui --> researcher --> report --> ui

    classDef agent fill:#e8f0ee,stroke:#0f3d36,stroke-width:2px,color:#0d0d0d
    classDef service fill:#fafaf8,stroke:#c8c8c2,stroke-width:1px,color:#0d0d0d
    classDef actor fill:#f3eef8,stroke:#6b4f9a,stroke-width:2px,color:#0d0d0d
    class researcher agent
    class ui,report service
    class person actor

Scan stages and Semgrep detail live on Mental Model and the Security Researcher tab.

Clean product overview and path. Mental Model holds the five-layer map and Anthropic workflows; Security Researcher owns scan detail.