7619f968fd514749c1124a90574de1b5150777f8
CI / test (push) Successful in 11m37s
dependencyTrack-MCP
MCP-Server fuer OWASP Dependency-Track, 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
# Lokal
cargo build --release --bin dtrack-stdio
# Container
podman build -t dtrack-mcp:latest -f Containerfile .
Transfer auf den Arbeitsrechner (ohne Registry)
# 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:
{
"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) |
Description
Languages
Rust
98.3%
Dockerfile
1.7%