Skip to main content
Glama

MCP SBOM Server

Python MCP

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

Installation

Prerequisites

Install the following.

MCP Clients

Configuration

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

Building

NOTE

This project employsuv.

  1. Synchronize dependencies and update the lockfile.

uv sync

Debugging

MCP Inspector

Use MCP Inspector.

Launch the MCP Inspector as follows:

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

MCP Inspector

Windows

When running on Windows, use paths of the style:

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

Available Tools

1 tool
scanC
Execute Trivy scanner to generate SPDX SBOM for a container image.
Supports the SPDX JSON format.

Args:
    image (str): The container image name/reference to scan

Returns:
    str: Test response or error message
ParametersJSON Schema
NameRequiredDescriptionDefault
imageYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'Supports the SPDX JSON format' and returns a 'Test response or error message,' but lacks critical details such as execution time, network dependencies, authentication needs, rate limits, or error handling. This leaves significant gaps in understanding the tool's operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, with three sentences that efficiently cover purpose, format support, parameters, and returns. Each sentence adds value without redundancy. Minor improvements could include bullet points or clearer separation, but overall it is appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (scanning container images) and lack of annotations or output schema, the description is incomplete. It fails to explain key aspects like what an SPDX SBOM entails, how results are structured, potential side effects (e.g., network calls), or error scenarios. The return statement 'Test response or error message' is vague and unhelpful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It includes an 'Args' section that documents the single parameter 'image' as 'The container image name/reference to scan,' adding meaningful context beyond the bare schema. However, it does not elaborate on format specifics (e.g., Docker tags, registry URLs) or constraints, limiting its utility.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Execute Trivy scanner to generate SPDX SBOM for a container image.' It specifies the verb ('execute'), resource ('Trivy scanner'), and output format ('SPDX SBOM'). However, with no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance, only stating that it 'Supports the SPDX JSON format.' It does not specify when to use this tool versus other scanning methods, prerequisites, or exclusions. Without explicit context or alternatives, the guidance is insufficient for informed tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedscan

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'scan' has a clear and distinct purpose: generating an SPDX SBOM for a container image using Trivy scanner.

Naming Consistency5/5

With only one tool, naming consistency is inherently perfect. The tool name 'scan' follows a simple verb pattern, and there are no other tools to compare it against for inconsistency.

Tool Count2/5

A single tool is too few for a server named 'MCP SBOM Server', which suggests a broader scope related to Software Bill of Materials. While the tool covers scanning, typical SBOM workflows might include operations like listing, analyzing, or comparing SBOMs, making this feel thin and incomplete.

Completeness2/5

The tool surface is severely incomplete for an SBOM domain. It only provides scanning functionality, with no tools for retrieving, updating, deleting, or analyzing SBOMs. This creates significant gaps that will likely cause agent failures in broader SBOM-related tasks.

Related MCP Connectors