license-compliance-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@license-compliance-mcpcheck license compliance of my project at /Users/me/my-project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 rootpolicy(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, AGPLCustom:
"(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-mcpClaude 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
Scans
node_modulesusinglicense-checker-rseidelsohnNormalizes license strings to valid SPDX using
spdx-correctEvaluates each package against the policy using
spdx-satisfiesTraces dependency chains to show how problematic packages entered the project
Generates a markdown report grouped by severity (critical > warning > info)
Requirements
Node.js >= 18
Project must have
node_modulesinstalled (npm install)
Available Tools
2 toolscheck-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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the project root (must contain package.json and node_modules) | |
| policy | No | Policy preset ("permissive", "weak-copyleft", "copyleft") or a custom SPDX expression like "(MIT OR Apache-2.0)" | permissive |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| license | Yes | SPDX license identifier (e.g., "MIT", "GPL-3.0-only", "Apache-2.0") |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v1.0.3- First observed
check-licenses - First observed
explain-license
TDQS
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.
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.
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.
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
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
Detect malicious or vulnerable npm packages: registry search, OSV.dev and GitHub advisory lookups
Check if a dependency's license obligates you, based on how you ship. npm, PyPI, Go.
Provide AI-powered real-time analysis and intelligence on NPM packages, including security, depend…
Audit GitHub repos for malicious and supply-chain code before you depend on them.
Related MCP Servers
- AlicenseBqualityFmaintenanceAudits npm package dependencies for security vulnerabilities, providing detailed reports and fix recommendations with MCP integration.16257MIT
- FlicenseNot gradedqualityDmaintenanceEnables scanning of project dependencies across multiple package managers (npm, pip, cargo, etc.) and generates comprehensive markdown license reports. Supports automatic license detection from package registries with caching for improved performance.-

gridwork-licenseofficial
AlicenseAqualityDmaintenanceScans project dependencies for license compliance, classifying 60+ licenses and detecting conflicts and copyleft risks.4561MIT- AlicenseNot gradedqualityCmaintenanceAudits npm packages for supply-chain attacks (typosquatting, malicious install scripts, credential exfiltration) before installation, returning a SAFE/SUSPICIOUS/DANGEROUS verdict.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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