npm package: @iflow-mcp/scancode-license-analysis-tool
Description: A Model Context Protocol (MCP) tool for analyzing software licenses using Scancode data.
Latest version: 1.0.1

# Scancode License Analysis Tool for MCP

This project provides a set of tools built with the Model Context Protocol (MCP) TypeScript SDK. These tools help you analyze software licenses, specifically using data from a Scancode-generated `license_analysis_detailed.json` file. It's designed to make license compliance easier to manage by providing quick access to critical information about problematic licenses, affected files, and scan issues.

## What is the Model Context Protocol (MCP)?

MCP is a standardized way for applications (like code editors or AI agents) to communicate with external services (like this license analysis tool). Think of it as a universal language that allows different software components to understand each other and work together, especially when dealing with large codebases or complex data.

## Why use this tool?

If you work with software projects, understanding the licenses of your dependencies is crucial for legal compliance. This tool helps you:

*   **Quickly identify problematic licenses:** See which licenses are a concern (e.g., copyleft, GPL, unknown).
*   **Pinpoint affected files:** Find out which specific files in your codebase are associated with these licenses.
*   **Review scan issues:** Understand if there were any problems during the license scanning process.
*   **Get recommendations:** Receive high-level guidance on how to address licensing concerns.
*   **Generate file reports:** Easily get the content of a specific file along with its associated problematic licenses, directly from the tool.

## Prerequisites

Before you get started, make sure you have the following installed on your system:

*   **Node.js (v18 or higher):** A JavaScript runtime. You can download it from [nodejs.org](https://nodejs.org/).
*   **npm:** Node Package Manager, which comes with Node.js.

## Setup Steps

Follow these steps to set up and run your Scancode License Analysis Tool:

1.  **Clone this repository** (if you haven't already):
    Open your terminal or command prompt and run:
    ```bash
    git clone <your-repo-url> # Replace <your-repo-url> with the actual URL
    cd <your-repo-directory> # Navigate into the cloned project folder
    ```

2.  **Install project dependencies:**
    This command downloads all the necessary libraries and packages for the tool to run:
    ```bash
    npm install
    ```

3.  **Ensure your `license_analysis_detailed.json` file is present:**
    This tool relies on a `license_analysis_detailed.json` file generated by Scancode. Make sure this file is in the root directory of your project (where `index.ts` is located). This file contains the license scan results that the tools will analyze.

4.  **Configure TypeScript (Optional, but recommended for development):**
    A `tsconfig.json` file is already included and configured. It tells TypeScript how to compile your code. Key settings for this project include:
    ```json
    {
      "compilerOptions": {
        "module": "nodenext",  // Ensures modern module resolution for Node.js
        "target": "es2022",    // Compiles to a recent JavaScript version
        "outDir": "dist",      // Output compiled JavaScript files to the 'dist' folder
        // ... other settings for strictness and compatibility ...
      },
      "include": ["index.ts"] // Only compile this file
    }
    ```

5.  **Build the project (Compile TypeScript to JavaScript):**
    This step compiles your TypeScript code (`.ts`) into plain JavaScript (`.js`) files, which Node.js can execute. The compiled files will be placed in the `dist/` directory.
    ```bash
    npx tsc
    ```

## Running the Tool

YouYou have two main ways to run this tool:

### 1. For Development (using `tsx`)

`tsx` allows you to run TypeScript files directly without a separate compilation step, which is great for development and testing:

```bash
npx tsx index.ts
```

### 2. Running the Built Version

After building your project (step 5 above), you can run the compiled JavaScript files from the `dist/` directory:

```bash
node dist/index.js
```

## How to Add This Tool to Cursor MCP

To integrate this tool with Cursor’s Model Context Protocol (MCP) feature, follow these steps:

1.  **Start your MCP server:**
    First, get your MCP server running using one of the methods above (e.g., `npx tsx index.ts`). This will keep the server active and listening for requests from Cursor.

2.  **Open Cursor and navigate to the MCP integration panel.**
    In Cursor, look for the MCP panel (usually in the sidebar or a dedicated view).

3.  **Add a new MCP server connection:**
    Click on the option to “Add MCP Server” or similar. You'll need to configure how Cursor connects to your running tool.

    *   **Connection Type:** Select **Stdio**.
    *   **Command:** Provide the command to start your server. This is the same command you used to run it in your terminal.
        *   Example (for development): `npx tsx C:\Users\Admin\Desktop\Dev\ScancodeMCP\index.ts`
        *   Example (for built version): `node C:\Users\Admin\Desktop\Dev\ScancodeMCP\dist\index.js`

    *   **(Optional) Environment Variables:** You might want to add `NODE_NO_WARNINGS: 1` under environment variables to suppress Node.js warnings.

4.  **Save and Connect.**
    Once configured, save the connection. Cursor should automatically detect your tools and make them available in the MCP tool palette.

## Example: `.cursor/mcp.json` Configuration

For a permanent setup, you can add this tool directly to your Cursor's global or project-specific `.cursor/mcp.json` file. This file tells Cursor which MCP servers to automatically start and connect to.

Here's an example entry to add to your `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "scancode-license-server": {
      "command": "npx",
      "args": [
        "tsx",
        "C:\\Users\\Admin\\Desktop\\Dev\\ScancodeMCP\\index.ts"
      ],
      "env": {
        "NODE_NO_WARNINGS": "1"
      },
      "disabled": false,
      "autoApprove": [
        "mcp_ScancodeMCP_analyze_license_file",
        "mcp_ScancodeMCP_summarize_license_risks",
        "mcp_ScancodeMCP_compare_license_compatibility",
        "mcp_ScancodeMCP_list_high_risk_files",
        "mcp_ScancodeMCP_get_license_clause_summary"
      ]
    }
    // ... any other MCP servers you have ...
  }
}
```

*   **Adjust the `args` path**: Make sure the `C:\\Users\\Admin\\Desktop\\Dev\\ScancodeMCP\\index.ts` path matches the actual location of your `index.ts` file.
*   **`autoApprove`**: This list tells Cursor which tools from your server can be automatically approved by the AI. This is convenient for frequently used tools.

After saving `mcp.json`, reload MCP servers in Cursor (there's usually a refresh button in the MCP panel). Your "Scancode License Analysis Tool" and its sub-tools will then be available in the MCP tool palette, ready to use!

## Available Tools and Their Uses

Here are the tools provided by this server, designed to help with license compliance:

| Tool Name                               | Description                                                                                                                                                                                                                         | How to Use (Example)                                                                                                                                                                                                                                                                                                                         |
| :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mcp_ScancodeMCP_analyze_license_file`  | Clause-by-clause legal analysis of all licenses detected in a file, including obligations, risks, and compatibility. Supports analyzing multiple files and reading a configurable number of lines from each file.                  | `mcp_ScancodeMCP_analyze_license_file(filePaths=['path/to/file1.txt', 'path/to/file2.txt'], linesToRead=50, scannedDataBasePath='C:\\Users\\Admin\\Desktop\\LICENSE_MANAGER\\')` <br/> `mcp_ScancodeMCP_analyze_license_file(filePaths=['path/to/single_file.txt'])`                                                              |
| `mcp_ScancodeMCP_summarize_license_risks` | Lists all files with high-risk/problematic licenses and provides a legal risk summary for each license type.                                                                                                            | `mcp_ScancodeMCP_summarize_license_risks()`                                                                                                                                                                                                                                                                                          |
| `mcp_ScancodeMCP_compare_license_compatibility` | Legal compatibility verdict and explanation for two license types (e.g., MIT vs GPLv3).                                                                                                                            | `mcp_ScancodeMCP_compare_license_compatibility(licenseA='MIT', licenseB='GPL-3.0')`                                                                                                                                                                                                                                                 |
| `mcp_ScancodeMCP_list_high_risk_files`  | Lists all files with copyleft, unknown, or commercial-unfriendly licenses, with a legal warning for each.                                                                                                             | `mcp_ScancodeMCP_list_high_risk_files()`                                                                                                                                                                                                                                                                                             |
| `mcp_ScancodeMCP_get_license_clause_summary` | Clause-by-clause legal summary of a license (obligations, risks, compatibility, etc).                                                                                                                               | `mcp_ScancodeMCP_get_license_clause_summary(licenseName='MIT')`                                                                                                                                                                                                                                                                     |

## License
MIT

## Keywords

#OpenSource #LicenseCompliance #LegalTech #Scancode #MCP #ModelContextProtocol #SoftwareLicenses #LicenseAnalysis #ComplianceTool #DeveloperTools #TypeScript #NodeJS #AutomatedLegal #CodeAnalysis