Skip to main content
Glama

License Scanner MCP Server

A Model Context Protocol (MCP) server built with FastMCP that scans project dependencies and generates license reports in markdown format.

Features

  • Multi-package manager support: npm, pip, cargo, and more

  • Automatic license detection: Fetches license information from package registries

  • Markdown report generation: Creates comprehensive license reports

  • Caching: Avoids repeated API calls for better performance

  • Error handling: Robust error handling and informative error messages

Supported Package Managers

  • npm/yarn/pnpm: package.json, yarn.lock, pnpm-lock.yaml

  • Python: requirements.txt, pyproject.toml, Pipfile

  • Rust: Cargo.toml, Cargo.lock

  • PHP: composer.json, composer.lock

  • Ruby: Gemfile, Gemfile.lock

  • Go: go.mod, go.sum

  • Java: pom.xml, build.gradle

Installation

  1. Install dependencies:

pip install -r requirements.txt
  1. Run the MCP server:

python license_scanner.py

Available Tools

1. scan_dependencies(project_path: str)

Scans a project for dependencies and returns detailed license information.

Parameters:

  • project_path: Path to the project directory to scan

Returns: JSON string containing dependency and license information

2. generate_license_report(project_path: str, output_file: str = None)

Generates a markdown license report for a project.

Parameters:

  • project_path: Path to the project directory to scan

  • output_file: Optional path to save the markdown report

Returns: Markdown content of the license report

3. list_package_managers(project_path: str)

Lists all package manager files found in a project.

Parameters:

  • project_path: Path to the project directory to scan

Returns: JSON string containing list of package manager files

Example Usage

Using the MCP server with Claude Desktop

  1. Add the server to your Claude Desktop configuration:

{ "mcpServers": { "license-scanner": { "command": "python", "args": ["/path/to/license_scanner.py"], "cwd": "/path/to/project" } } }
  1. Use the tools in Claude Desktop:

    • "Scan the dependencies in my project"

    • "Generate a license report for this project"

    • "List the package managers used in this project"

Example Project

The example_project/ directory contains sample files for different package managers:

  • package.json - npm dependencies

  • requirements.txt - Python dependencies

  • Cargo.toml - Rust dependencies

License Information Sources

  • npm packages: npm registry API

  • Python packages: PyPI JSON API

  • Rust crates: crates.io API

Output Format

The license report includes:

  1. Project information: Path, total dependencies, package files found

  2. Dependencies by manager: Organized by package manager with license details

  3. License summary: Count of dependencies by license type

Sample Markdown Output

# License Report **Project:** /path/to/project **Total Dependencies:** 8 **Package Files Found:** package.json, requirements.txt ## NPM Dependencies Found 5 dependencies | Package | Version | License | Author | Homepage | |---------|---------|---------|--------|----------| | express | ^4.18.2 | MIT | TJ Holowaychuk | https://expressjs.com/ | | lodash | ^4.17.21 | MIT | John-David Dalton | https://lodash.com/ | ## License Summary | License | Count | |---------|-------| | MIT | 6 | | Apache-2.0 | 2 |

Error Handling

The server includes comprehensive error handling:

  • Invalid project paths

  • Missing package files

  • Network errors when fetching license information

  • Malformed package files

Performance

  • Caching: License information is cached to avoid repeated API calls

  • Parallel processing: Multiple package files are processed efficiently

  • Timeout handling: API requests have timeout protection

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Add tests for new functionality

  4. Submit a pull request

License

This project is licensed under the MIT License.

-
security - not tested
-
license - not tested
-
quality - not tested

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/RyanCadby/mcp-license-scanner'

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