Skip to main content
Glama
gkhays
by gkhays
README.md
# MCP SBOM Server

[![Python](https://img.shields.io/badge/Python-3.12-blue.svg)](https://www.python.org/)
[![MCP](https://img.shields.io/badge/MCP-1.6-CC5500.svg)](https://www.anthropic.com/news/model-context-protocol)

MCP server to perform a Trivy scan and produce an SBOM in CycloneDX format.

## Installation

### Prerequisites

Install the following.

- [uv](https://github.com/astral-sh/uv)
- [trivy](https://github.com/aquasecurity/trivy)
- [Node.js](https://nodejs.org/en)

## MCP Clients

### Configuration

```json
"mcpServers": {
        "mcp-sbom": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/mcp-sbom",
                "run",
                "mcp-sbom"
            ]
        }
    }
```

## Building

> [!NOTE]
> This project employs `uv`.

1. Synchronize dependencies and update the lockfile.
```
uv sync
```

## Debugging

### MCP Inspector

Use [MCP Inspector](https://github.com/modelcontextprotocol/inspector).

Launch the MCP Inspector as follows:

```
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-sbom run mcp-sbom
```

![MCP Inspector](docs/mcp-inspector.png)

### Windows

When running on Windows, use paths of the style:

```console
C:/Users/gkh/src/mcp-sbom-server/src/mcp_sbom
```

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The single 'scan' tool has a clearly defined purpose of generating SPDX SBOMs for container images using Trivy scanner.

Naming Consistency5/5

With a single tool, naming consistency is inherently perfect. The tool name 'scan' follows a clear verb-based naming pattern that accurately describes its function without any conflicting naming conventions to compare against.

Tool Count2/5

A single tool for an SBOM server feels insufficient for the apparent domain scope. While scanning is a core function, SBOM management typically involves additional operations like listing, retrieving, comparing, or validating SBOMs. The server appears to have significant functional gaps beyond the basic scan capability.

Completeness2/5

The tool surface is severely incomplete for an SBOM server. While scanning is essential, there are obvious gaps in the lifecycle: no tools for retrieving stored SBOMs, comparing different SBOM versions, validating SBOM formats, or managing SBOM metadata. This limited surface will likely cause agent failures when trying to perform comprehensive SBOM workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues