License MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
License MCP Server - The Hard Way
Build an MCP server that answers "what licenses are my dependencies under, and can I ship this?" from a project's lockfiles, mostly offline. You write the SPDX parser, the installed-package readers, the lockfile parsers, the messy-string normaliser, the compatibility table and the policy engine yourself, then put MCP in front of them and test the whole thing over real stdio.
At the end you will have built a minimal version of license-mcp and you will understand the parts most "dependency checker" tutorials skip:
where a license answer really comes from (installed metadata beats lockfile beats network) and why a report must say which one it used;
what "unknown" means and why it must never be guessed into "MIT";
how to make an ambiguity visible instead of silently resolving it;
how to design a compatibility table you can defend (ordered rules with reasons, not a mystery matrix);
how to design verdicts (ok / needs review / violation) so that every one has a reason.
Who this is for
Developers who have built a "hello world" MCP server and want a real one; anyone who has been asked "are we allowed to ship this?" and wants an agent that can answer with evidence.
Prerequisites: Python 3.10+ and pip install -r requirements.txt. Nothing else: no network, no QEMU,
no external tools. (Module 03 reads lockfiles that were generated with uv and npm; they are
committed in fixtures/.)
Related MCP server: license-guardian
Modules
# | Module | What you build |
01 | A tokenizer and recursive-descent parser for | |
02 | Reading | |
03 | Parsers for | |
04 | Normalising | |
05 | Ordered, cited rules for "may X go into a Y project?", including expression semantics | |
06 | Allow / deny / project-license / exceptions, and verdicts that always carry reasons | |
07 | Two tools, a directory sandbox, errors an agent can act on, and a test that launches the server over real stdio |
Each module contains:
README.md: the concepts and the design decisionsmain.py: working, commented code that checks its own results withassertbreak-it.md: challenges that break your code, with hints
How to use this course
Build along: read a module, run its main.py, do the break-it challenges. Reference: jump to a
module; modules 04-07 load the earlier main.py files by path, so keep the directory together.
Run everything the way CI does:
pip install -r requirements.txt
python verify.py # all modules
python verify.py 03 05 # just theseverify.py runs each main.py as a child process (with PYTHONIOENCODING=utf-8, so Windows consoles
do not crash on non-ASCII) and fails if any assertion fails. CI runs it on Ubuntu and Windows.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
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.
Open-source licence risk checks for AI coding agents and dependency trees.
Scan packages and lockfiles (npm, PyPI, Go, Maven, Cargo, NuGet) for vulnerabilities and malware.
Related MCP Servers
AlicenseAqualityDmaintenanceScans project dependencies for license compliance, classifying 60+ licenses and detecting conflicts and copyleft risks.449 npm1MIT- -licenseNot gradedqualityBmaintenanceAudits npm dependencies for license compatibility, catching copyleft and source-available traps before shipping.-
- AlicenseAqualityBmaintenanceEnables AI coding agents to audit Python and npm dependency licenses against your distribution context before shipping, returning CLEAN, REVIEW, or BLOCK verdicts with plain-language reasons and supporting notice generation.31MIT
- AlicenseAqualityCmaintenanceProvides authoritative open source license answers: SPDX identification, copyleft classification, and compatibility checks of dependencies against your project's license.31MIT