license-sentinel
Audit and check dependency licenses for compliance using an MCP server that runs locally.
audit_project(path, context): scan a Python/npm project's dependencies and get counts plus BLOCK and REVIEW items with plain-language reasons.check_package(names, context): evaluate specific packages or raw license strings (e.g. AGPL-3.0, GPLv3, MIT OR Apache-2.0) before installing.generate_notices(path, output): write a THIRD-PARTY-NOTICES.md attribution document for client hand-off.Choose distribution context:
proprietary,saas-backend,permissive, orcopyleft-okto tailor verdicts.Supports both Python and npm dependencies in one pass, including declared-but-uninstalled packages flagged as UNKNOWN.
Runs over stdio with no network calls, no telemetry, and does not scan the server's own environment unless opted in.
Click on "Deploy 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-sentinel audit my project's dependencies for license compliance"
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-sentinel
Audit Python and npm dependency licenses for compliance before you ship — an MCP server for AI coding agents.
An AI agent can add pdf-renderer to your project in one second. It will not tell you that
pdf-renderer is AGPL-3.0 and that shipping it inside a closed-source product is a license
violation. License data and compatibility rules are things a model cannot reliably recall —
packages relicense between versions (MongoDB → SSPL, Redis → BUSL, Elasticsearch → Elastic-2.0),
and "the source is on GitHub" does not mean "free to ship".
license-sentinel reads what is actually on your disk and judges it against how you
distribute your product.
Works for Python and npm in one pass — one scan covers both halves of a mixed stack.
Runs locally over stdio. No network calls, no telemetry, nothing leaves your machine.
Verdicts, not raw data:
CLEAN/REVIEW/BLOCK, each with the reason in plain language.
Tools
Tool | What it does |
| Scan a project's dependencies and return counts plus every BLOCKING and REVIEW item with reasons. |
| Check specific packages or messy license strings before installing. Accepts |
| Write a |
There is also a pre_release_license_review prompt that chains the audit into a go/no-go review.
Related MCP server: DepHealth MCP
Install
# run without installing (recommended)
uvx --from license-sentinel license-sentinel
# or install
uv pip install license-sentinel
# or
pip install license-sentinelConfigure your client
Claude Desktop / Cursor / Windsurf / VS Code Copilot / Zed all read the same shape:
{
"mcpServers": {
"license-sentinel": {
"command": "uvx",
"args": ["--from", "license-sentinel", "license-sentinel"]
}
}
}If you installed with pip instead, use "command": "license-sentinel" with no args.
Restart the client and the three tools appear.
Distribution context
The same dependency is fine in one context and fatal in another, so every tool takes a
context argument:
Context | Meaning | What it blocks |
| Closed-source product you distribute | GPL/AGPL/SSPL, BUSL/Elastic, non-commercial |
| Never distributed, only runs on your servers | AGPL/SSPL (network trigger), BUSL/Elastic |
| Your own project is MIT/Apache/BSD | Anything copyleft that would contaminate your terms |
| Your own project is GPL family | Only source-available and non-commercial |
What it reads
Python:
.venv//venv//env/installed packages (dist-info/METADATA),requirements.txt,pyproject.toml(PEP 621, poetry, dependency-groups)npm:
node_modules/*/package.json(including scoped packages),package.jsondependencies
If a dependency is declared but not installed, it is reported with an UNKNOWN license rather
than silently dropped — an unlicensed dependency is all-rights-reserved by default.
Privacy
No HTTP client is imported anywhere in this package. The scan is read-only (except
generate_notices, which writes the file you name). Nothing is uploaded.
Limitations
Not legal advice. It is a fast first pass that catches the expensive mistakes; have counsel review anything flagged.
Transitive dependencies are read from what is installed. If you have no
.venvand nonode_modules, declared-only dependencies come backUNKNOWN.The current environment running the server is never scanned, so the server's own packages never pollute your report. Set
LICENSE_SENTINEL_SCAN_CURRENT_ENV=1to change that.
Development
uv sync
python tests/smoke_test.py # 9 tests, no pytest needed
python tests/e2e_check.py # calls the tools end to endLicense
MIT
Available Tools
3 toolsaudit_projectA
Scan a project's dependencies and report licensing risk.
Args:
path: Project directory to scan. Defaults to the current directory.
context: How you distribute your product. One of
proprietary (closed-source product you distribute),
saas-backend (you only run it, never distribute),
permissive (your own project is MIT/Apache/BSD),
copyleft-ok (your own project is GPL family).
Returns: Counts per verdict plus every BLOCK and REVIEW item with the reason.
Inputs: path, context. Returns: result
check_packageA
Check packages or raw license strings before installing them.
Args:
names: Package or license strings to check. Accepts the messy real-world
forms: AGPL-3.0, BUSL-1.1, GPLv3, Apache License 2.0,
MIT OR Apache-2.0, or a comma-separated string of any of these.
These are license strings, not package lookups: to audit what is
actually installed in a project directory, use audit_project.
context: Distribution context, see audit_project.
Returns: One line per input with its verdict and the reason.
Inputs: names (required), context. Returns: result
generate_noticesA
Write a THIRD-PARTY-NOTICES.md attribution document for client hand-off.
Args:
path: Project directory to scan.
output: Output file. Relative paths are resolved against path.
Returns: The absolute path written and how many dependencies were listed.
Inputs: path, output. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct stage: audit_project scans an existing project, check_package evaluates individual license strings or packages before install, and generate_notices produces an attribution file. The descriptions explicitly clarify the boundary between audit_project and check_package, so an agent is unlikely to select the wrong tool.
All three tools follow the same verb_noun snake_case pattern: audit_project, check_package, generate_notices. The naming is predictable and immediately conveys the action and target of each tool.
Three tools is a well-scoped count for a focused license-compliance server. Each tool covers a non-overlapping, meaningful workflow step without unnecessary bloat or missing core functionality.
The toolset covers the main license compliance lifecycle: audit a project, check new dependencies, and generate notices. Minor gaps exist around policy configuration/allowlisting and detailed reporting on all permissive dependencies, but agents can work around these using the provided outputs.
Maintenance
Related MCP Connectors
Open-source licence risk checks for AI coding agents and dependency trees.
Generate, audit, and maintain legal policies that match what your code actually does.
Check if a dependency's license obligates you, based on how you ship. npm, PyPI, Go.
Trust-check any dependency for agents: OpenSSF Scorecard, licenses, CVEs, deps. 7 ecosystems.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides verified dependency-audit verdicts for AI agents, checking installed versions against OSV advisories and splitting direct vs transitive dependencies.3MIT
- AlicenseAqualityDmaintenanceDependency security & health auditing for AI agents with no account or API key required.22MIT
- AlicenseAqualityDmaintenanceAudits project dependency licenses for compatibility issues, flags GPL/AGPL conflicts, and generates compliance reports.150 npmMIT
- AlicenseAqualityCmaintenanceProvides authoritative open source license answers: SPDX identification, copyleft classification, and compatibility checks of dependencies against your project's license.31MIT