# dependencyTrack-MCP MCP-Server fuer [OWASP Dependency-Track](https://dependencytrack.org/), in Rust. Read-only Zugriff auf Projekte, Findings und Metriken -- gedacht fuer den Einsatz mit Claude Desktop (stdio) auf dem Arbeitsrechner. > **Status: Stage 0** -- stdio, read-only, 3 Tools. Multi-Client / Permissions / > Admin-UI / SSO folgen in spaeteren Stages (siehe Roadmap). ## Architektur ``` crates/dtrack-core DT-REST-Client (reqwest+rustls, read-only) crates/dtrack-stdio rmcp stdio-Server -> ARBEIT: vom Desktop via `run -i` gestartet ``` Spaeter kommt ein `dtrack-http`-Frontend (Multi-Client, Admin-UI) dazu; die Tool-Logik in `dtrack-core` bleibt dabei dieselbe. ## Tools | Tool | Argument | DT-Endpoint | |---|---|---| | `list_projects` | -- | `GET /project` | | `project_findings` | `uuid` | `GET /finding/project/{uuid}` | | `project_metrics` | `uuid` | `GET /metrics/project/{uuid}/current` | ## Konfiguration (Umgebungsvariablen) | Var | Pflicht | Bedeutung | |---|---|---| | `DTRACK_URL` | ja | Basis-URL der DT-Instanz, z.B. `https://dtrack.firma.intern` | | `DTRACK_API_KEY` | ja | API-Key eines **read-only** Teams (`VIEW_PORTFOLIO`, `VIEW_VULNERABILITY`) | | `DTRACK_INSECURE` | nein | `1`/`true` -> TLS-Pruefung aus (Notbehelf bei internem CA-Cert) | ## Bauen ```sh # Lokal cargo build --release --bin dtrack-stdio # Container podman build -t dtrack-mcp:latest -f Containerfile . ``` ## Transfer auf den Arbeitsrechner (ohne Registry) ```sh # daheim podman save dtrack-mcp:latest | gzip > dtrack-mcp.tar.gz # -> Datei uebertragen, dann auf dem Laptop: podman load < dtrack-mcp.tar.gz ``` (Automatisiert spaeter ueber CI als Gitea-Release-Asset.) ## Claude Desktop einbinden `--network=host`, damit der Container die DT-Instanz ueber die VPN-Route des Hosts erreicht: ```json { "mcpServers": { "dependency-track": { "command": "podman", "args": [ "run", "-i", "--rm", "--network=host", "-e", "DTRACK_URL", "-e", "DTRACK_API_KEY", "-e", "DTRACK_INSECURE", "dtrack-mcp:latest" ], "env": { "DTRACK_URL": "https://dtrack.firma.intern", "DTRACK_API_KEY": "odt_...", "DTRACK_INSECURE": "0" } } } } ``` ## Roadmap | Stage | Inhalt | |---|---| | **0** (jetzt) | stdio, read-only, 3 Tools, CI, Container | | 1 | Permission-Engine (config-getrieben) | | 2 | HTTP-Frontend + Auth-Trait, Multi-Client | | 3 | Admin-UI (Token/URL pflegbar, maskiert) + Audit-Log | | 4 | SSO (Gitea-OIDC) |