Skip to main content
Glama
bighippoman

license-compliance-mcp

by bighippoman

license-compliance-mcp

MCP server that scans npm project dependencies for license compliance issues. Catch GPL contamination before code ships.

Tools

check-licenses

Scan a project's npm dependencies against a license policy and get a detailed compliance report.

Parameters:

  • path (required) — Absolute path to the project root

  • policy (optional, default: "permissive") — Policy preset or custom SPDX expression

    • "permissive" — Only MIT, ISC, BSD, Apache-2.0, etc.

    • "weak-copyleft" — Adds LGPL, MPL-2.0, EPL-2.0

    • "copyleft" — Adds GPL, AGPL

    • Custom: "(MIT OR Apache-2.0)" — Any valid SPDX expression

explain-license

Get a plain-language explanation of any SPDX license — permissions, conditions, limitations, compatibility, and gotchas.

Parameters:

  • license (required) — SPDX identifier (e.g., "MIT", "GPL-3.0-only", "Apache-2.0")

Related MCP server: License Scanner MCP Server

Install

Claude Code

claude mcp add license-compliance -- npx -y license-compliance-mcp

Claude Desktop / Cursor

Add to your config (claude_desktop_config.json or .cursor/mcp.json):

{
  "mcpServers": {
    "license-compliance": {
      "command": "npx",
      "args": ["-y", "license-compliance-mcp"]
    }
  }
}

How It Works

  1. Scans node_modules using license-checker-rseidelsohn

  2. Normalizes license strings to valid SPDX using spdx-correct

  3. Evaluates each package against the policy using spdx-satisfies

  4. Traces dependency chains to show how problematic packages entered the project

  5. Generates a markdown report grouped by severity (critical > warning > info)

Requirements

  • Node.js >= 18

  • Project must have node_modules installed (npm install)

Available Tools

2 tools
check-licensesCheck License ComplianceA

Scan a project's npm dependencies for license compliance issues. Checks all installed packages against a policy (permissive, weak-copyleft, copyleft, or a custom SPDX expression). Returns a detailed markdown report with any violations, warnings, and dependency chains.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the project root (must contain package.json and node_modules)
policyNoPolicy preset ("permissive", "weak-copyleft", "copyleft") or a custom SPDX expression like "(MIT OR Apache-2.0)"permissive

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states that the tool scans and checks, implying a read-only operation, and describes the output as a markdown report. However, it does not mention potential side effects (e.g., network access, installation) or failure modes when node_modules is missing, leaving some behavioral aspects unclear.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and wastes no words. It efficiently covers what the tool does, what it checks, and what it returns.

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

Completeness4/5

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

Given the tool's moderate complexity, the description covers the key aspects: scanning dependencies, policy options, and output format. It lacks explicit error handling or prerequisites (though the schema mentions path must contain package.json and node_modules), but overall it is sufficiently complete for an agent to understand the tool's function and invocation.

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

Parameters4/5

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

Schema description coverage is 100%, giving the baseline of 3. The description adds value by elaborating on the policy parameter with examples of presets and custom SPDX expressions, and by clarifying that the path should point to the project root with installed packages. This goes beyond the schema's own descriptions.

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

Purpose5/5

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

The description clearly states a specific action ('Scan a project's npm dependencies') and a clear purpose ('license compliance issues'). It distinguishes itself from the sibling tool 'explain-license' by focusing on scanning the entire project rather than explaining a single license.

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

Usage Guidelines3/5

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

The description implies usage for checking a project's dependencies and mentions policy options, but does not explicitly state when to use this tool versus the sibling 'explain-license'. No exclusions or alternative guidance is provided, though the context is clear for a compliance scan.

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

explain-licenseExplain LicenseA

Explain what a specific SPDX license means in plain language. Covers permissions, conditions, limitations, compatibility with proprietary/open-source/SaaS use, and common gotchas. Supports 15 major licenses plus deprecated SPDX forms.

ParametersJSON Schema
NameRequiredDescriptionDefault
licenseYesSPDX license identifier (e.g., "MIT", "GPL-3.0-only", "Apache-2.0")

TDQS

A4.2/5.0
Behavior4/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 behavior disclosure. It explicitly lists the dimensions covered (permissions, conditions, limitations, compatibility, gotchas) and the supported scope (15 major licenses plus deprecated forms). It does not detail handling of unsupported licenses or the exact return format, but for a simple informational tool this is reasonably transparent.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states the core action, the second details what the explanation covers, and the third scopes supported inputs. No filler or redundancy.

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

Completeness4/5

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

The tool is simple with one parameter and no output schema. The description covers the purpose, content coverage, and supported license scope. It could mention behavior for unsupported licenses or expected output format, but these are minor gaps for this complexity level.

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 already provides 100% coverage for the single 'license' parameter, including an example. The description says 'specific SPDX license' but adds no new semantic detail beyond what the schema's description and example already convey. Baseline of 3 is appropriate given full schema coverage.

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

Purpose5/5

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

The description uses a specific verb ('Explain') and resource ('specific SPDX license') and clearly defines the tool's scope ('permissions, conditions, limitations, compatibility...'). It also differentiates from the sibling tool 'check-licenses' by focusing on plain-language explanation rather than checking or validating licenses.

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

Usage Guidelines4/5

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

The description makes the use case clear: use when you need a plain-language explanation of a license's meaning and implications. It does not explicitly mention when not to use it or contrast with 'check-licenses', but the purpose is specific enough to guide 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. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.3
    • First observedcheck-licenses
    • First observedexplain-license

TDQS

A4/5.0
Disambiguation5/5

The two tools are completely distinct: one scans npm dependencies for compliance, the other explains SPDX licenses. There is no overlap or ambiguity between them.

Naming Consistency4/5

Both tools follow a verb_noun pattern with hyphenation, but 'check-licenses' uses plural while 'explain-license' uses singular. This minor inconsistency is slightly noticeable but does not hinder readability.

Tool Count3/5

With only 2 tools, the server feels thin for its apparent scope. The tools are focused and useful, but the count is on the borderline of what is considered reasonable for a utility server.

Completeness3/5

The server covers scanning and explaining, but lacks tools for managing the compliance policy (e.g., setting or updating policy). This is a notable operational gap for a license compliance workflow.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bighippoman/license-compliance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server