Git-Fabric CVE
OfficialEnables autonomous repository management by programmatically creating branches and committing dependency updates as part of the remediation process.
Integrates with GitHub to scan repositories for vulnerabilities using the GitHub Advisory Database and automates the creation and management of pull requests for fixes.
Provides specialized workflows for GitHub Actions to automate periodic vulnerability scanning and the dispatching of triage tasks.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
@git-fabric/cve
CVE detection-to-remediation fabric app. Scan, enrich, triage, and fix vulnerabilities across managed repos — autonomously.
Part of the git-fabric ecosystem. Built on the fabric-sdk OSI/BGP routing model.
Architecture
Five composable layers, each independently consumable:
Detection → Intelligence → Decision → Action → State
│ │ │ │ │
│ Scan deps │ NVD enrich │ Policy │ Branch │ JSONL queue
│ query GHSA │ CVSS/CWE │ triage │ commit │ dedup
│ │ │ plans │ PR │ stats
└───────────────┴──────────────┴────────────┴──────────┴──────────Layer | What it does | Side effects? |
Detection | Reads dependency manifests, queries GitHub Advisory Database | No (produces findings) |
Intelligence | Enriches CVEs from NVD with CVSS scores, status, CWE | No (pure data transform) |
Decision | Applies severity policy, produces triage plans | No (pure logic) |
Action | Creates branches, commits dependency bumps, opens PRs | Yes (writes to GitHub) |
State | Manages the CVE queue (JSONL), dedup, filtering, stats | Yes (writes to state repo) |
OSI Layer Mapping
The pipeline maps to the fabric-sdk OSI model:
Layer 7 — Application app.ts (FabricApp factory, 8 tools)
Layer 6 — Presentation bin/cli.js (Commander CLI + MCP stdio/HTTP, aiana_query)
Layer 5 — Session layers/state.ts (JSONL queue, dedup, stats)
Layer 4 — Transport MCP protocol (stdio + StreamableHTTP)
Layer 3 — Network Gateway registration (AS65009, fabric.cve.*)
Layer 2 — Data Link adapters/env.ts (Octokit + NVD API)
Layer 1 — Physical GitHub API, NVD APIRelated MCP server: Security-Use MCP Server
Quick Start
As an MCP Server (stdio)
# Set environment
export GITHUB_TOKEN="ghp_..."
export STATE_REPO="ry-ops/git-steer-state"
export MANAGED_REPOS="ry-ops/git-steer,ry-ops/blog"
# Start MCP server (stdio)
npx @git-fabric/cve startAs an HTTP MCP Server
# Start in HTTP mode with gateway registration
export MCP_HTTP_PORT=8209
export GATEWAY_URL="http://gateway.fabric-sdk:8080"
fabric-cve startWhen MCP_HTTP_PORT is set, the server starts an HTTP listener with the following endpoints:
Endpoint | Method | Description |
| GET | Health check (validates token + state repo) |
| GET | List available tools |
| POST | Call a tool by name |
| POST | StreamableHTTP MCP endpoint |
Claude Desktop Config
{
"mcpServers": {
"git-fabric-cve": {
"command": "npx",
"args": ["@git-fabric/cve", "start"],
"env": {
"GITHUB_TOKEN": "ghp_...",
"STATE_REPO": "ry-ops/git-steer-state",
"MANAGED_REPOS": "ry-ops/git-steer,ry-ops/blog"
}
}
}
}CLI
# Scan repos for vulnerable deps
fabric-cve scan --severity-threshold HIGH
# Enrich a single CVE from NVD
fabric-cve enrich CVE-2024-45519
# Triage pending queue entries (dry run)
fabric-cve triage --dry-run true
# Queue operations
fabric-cve queue list --status pending
fabric-cve queue statsMCP Tools
Tool | Description |
| Scan managed repos for vulnerable dependencies via GHSA |
| Fetch enriched details for a CVE from NVD |
| Batch enrich and rank multiple CVEs by severity |
| Process pending queue entries and open PRs per policy |
| List queue entries filtered by status/severity |
| Queue health dashboard |
| Manually update entry status (e.g. skip with reason) |
| Compact queue by removing resolved entries past retention |
Gateway Registration
fabric-cve registers as AS65009 with the fabric-sdk gateway. On startup in HTTP mode, it advertises the following BGP-style route prefixes:
Route Prefix | Description |
| CVE detection, enrichment, triage, and remediation |
| Vulnerability scanning — repo dependency analysis via GHSA |
| CVE enrichment — NVD details, CVSS, CWE, references |
| Triage — severity policy, auto-PR, queue processing |
| Queue management — list, stats, update, compact |
| Vulnerability intelligence across managed repos |
All routes advertise with local_pref: 100 (deterministic lane). The gateway uses these prefixes to resolve natural language queries to the correct fabric without calling Claude.
Registration includes a 30-second keepalive interval. If the session expires (401), fabric-cve re-registers automatically.
aiana_query
The gateway's DNS resolver sends aiana_query requests to fabric-cve when a natural language question matches a fabric.cve.* prefix. fabric-cve maps these queries to real-time tool calls:
Natural language pattern | Tools called | Confidence |
"active CVEs", "pending vulnerabilities" |
| 0.95 |
"triage status", "queue dashboard" |
| 0.90 |
"scan results", "detection findings" |
| 0.85 |
"critical findings", "high severity CVEs" |
| 0.90 |
"PRs opened", "remediation status" |
| 0.85 |
"errors", "failed triage" |
| 0.85 |
"health", "API connectivity" |
| 0.90 |
Reference questions ("how to", NVD docs) | Library lookup | 0.60-0.92 |
If no live-data pattern matches, the query falls through to the Library for reference documentation. If the Library also misses, queue stats are returned as a fallback at confidence 0.50.
This keeps the three routing lanes intact: deterministic (>=0.95) answers from live tools, local-llm (>=floor) from Library context, and Claude as the 0.0.0.0/0 default route (last resort).
Severity Policy
The decision layer applies configurable policy:
Severity | Default Action | PR Type |
CRITICAL | Auto-PR | Confirmed |
HIGH | Auto-PR | Draft |
MEDIUM | Skip | Manual review |
LOW | Skip | Noise reduction |
Override via CLI flags or MCP tool arguments:
fabric-cve triage \
--auto-pr-threshold CRITICAL \
--max-prs-per-run 3 \
--require-patched-version trueLibrary
fabric-cve includes a built-in Library for reference documentation lookups. The Library fetches content on demand from upstream sources — no local copies stored permanently.
Source | Repository | Description |
| GHSA advisories, ecosystem docs | |
| CISA CVE enrichment data, CVSS, CWE | |
| Open Source Vulnerability format spec |
The Library is the second knowledge source checked by aiana_query — after live tool data but before escalating to Claude. It answers "how to" and "why" questions using upstream reference docs.
Environment Variables
Variable | Required | Description |
| Yes | GitHub token (or |
| Yes | State repo path (e.g. |
| Yes | Comma-separated repos to manage |
| No | NVD API key (raises rate limit 5 to 50 req/30s) |
| No | Start HTTP server instead of stdio (e.g. |
| No | Gateway registration endpoint (e.g. |
| No | Pod IP for gateway |
| No | Ollama inference endpoint (default: |
| No | Local LLM model for routing (default: |
| No | Cache directory for Library checkouts (default: |
GitHub Actions
Two workflows for autonomous operation:
cve-scan.yml— Weekly Monday scan, queries GHSA for all managed repos, queues findingscve-triage.yml— Dispatch-only, reads queue, applies policy, opens PRs
The scan explicitly dispatches triage after completing — no push-trigger race condition.
Required Secrets & Variables
Name | Type | Description |
| Secret | GitHub token with repo + workflow access |
| Secret | NVD API key (optional, raises rate limit 5→50 req/30s) |
| Variable | State repo path (e.g. |
| Variable | Comma-separated repos to manage |
Consuming from git-steer
git-steer can delegate to the fabric by implementing the GitHubAdapter and StateAdapter interfaces:
import { layers } from "@git-fabric/cve";
// Detection
const result = await layers.detection.detect(repos, "HIGH", githubAdapter);
// Queue
await layers.state.enqueue(result.findings, stateAdapter);
// Triage
const pending = await layers.state.pending(stateAdapter);
const plans = layers.decision.triage(pending, policy);
const results = await layers.action.execute(plans, githubAdapter);Project Structure
src/
├── types.ts # Shared types + adapter interfaces
├── index.ts # Barrel export
├── app.ts # FabricApp factory (8 tools, health check)
├── library.ts # Reference doc retrieval (GHSA, NVD, OSV)
├── layers/
│ ├── detection.ts # GHSA scanning + manifest parsing
│ ├── intelligence.ts # NVD enrichment
│ ├── decision.ts # Severity policy engine
│ ├── action.ts # Branch + commit + PR creation
│ └── state.ts # JSONL queue management
├── mcp/
│ └── server.ts # MCP server (stdio, 7 tools)
└── adapters/
└── env.ts # Env var → Octokit + NVD adapter
bin/
└── cli.js # Commander CLI + MCP stdio/HTTP + aiana_queryLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Deep security scans of repos you own from your editor: dependency CVEs, SAST, git-history secrets.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Defensive vulnerability intelligence search across public CVE/NVD and GitHub advisory APIs with CVSS
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides Trivy security scanning capabilities through a standardized interface, allowing users to scan projects for vulnerabilities and automatically fix them by updating dependencies.10MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to scan project dependencies and Infrastructure as Code files for security vulnerabilities and misconfigurations. It also provides automated fixing capabilities to remediate identified security issues.183MIT
- AlicenseAqualityAmaintenanceDependency intelligence for AI agents. CVE scanning, health checks, upgrade planning.9412 npm2Apache 2.0
- FlicenseAqualityDmaintenanceEnables searching and analyzing CVEs and vulnerabilities from multiple sources, optimized for PR review scenarios to help developers identify the latest security issues.82-