mcpField
L
licensefile

licensefile

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

licensefile について

licensefileは、リポジトリのメンテナー向けに依存関係のライセンスと帰属表示を一覧化します。SPDXライセンスを分類し、競合を示して、公開可否を判定します。

主な機能

  1. 01依存関係のライセンス一覧
  2. 02ライセンス集計と帰属表示行
  3. 03コピーレフトと不明ライセンスの警告
  4. 04ブロックまたは許可の判定
  5. 05ローカルJSONコマンドラインと検証

活用シーン

  1. 01リポジトリ公開前の依存関係確認
  2. 02不明または競合するライセンスの特定
  3. 03依存関係の帰属表示記録の作成

MCP 対応

MCPサーバーは`catalog_licenses`ツールを公開します。リポジトリのライセンスと依存関係を受け取り、一覧、警告、帰属表示行、判定を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-licensefile": {
"command": "npx",
"args": [
"-y",
"@reneturcios/licensefile"
]
}
}
}
起動コマンドnpx -y @reneturcios/licensefile

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/licensefile0.1.0
ocighcr.io/cloudcorprecords/licensefile:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
dependenciesarrayはい一覧化する依存関係(1 件以上)
repo_licensestringはいリポジトリ自体のライセンスの SPDX ID。例:MIT

詳細

licensefile

リポジトリで配布できるものは、依存関係のライセンスによって決まります。licensefile は、リポジトリ自身のライセンスと依存関係のリストを受け取り、すぐに利用できる単一のカタログにまとめます。

  • インベントリ — 依存関係ごとに 1 件を名前順に表示します。ライセンスは正規化され(前後の空白を削除し、未指定または空の場合は unknown にします)、バージョン、作成者、ホームページがない場合は null として扱います
  • ライセンス別の件数 — 正規化された各ライセンスを持つ依存関係の数を、件数の降順で表示し、同数の場合はライセンス名順に並べます
  • 帰属表示行 — 依存関係ごとに 1 行を名前順に表示します。形式は name@version — license — author です。バージョンがない場合は unknown とし、作成者が指定されていない場合は作成者の部分全体を省略します
  • フラグ — 依存関係ごとに、最初に一致したルールに基づくフラグを最大 1 つ設定します。不明なライセンスには警告を出します。強いコピーレフトライセンスのファミリー(GPL と AGPL)がリポジトリのライセンスのファミリーと異なる場合はエラーになります。弱いコピーレフトライセンスを許容的ライセンスのリポジトリで使用している場合は通知を出します。既知の分類のいずれにも属さないライセンスは、それがリポジトリ自身のライセンスでない場合、未分類として報告します
  • 判定 — フラグにエラーが 1 つでもある場合は blocked、それ以外の場合は ok です

ライセンスの分類には、仕様で定義された大文字と小文字を区別する正確な SPDX ID を使用します。許容的ライセンス(MIT、ISC、各種 BSD 条項、Apache-2.0 など)、強いコピーレフトライセンス(各種 GPL および AGPL)、弱いコピーレフトライセンス(各種 LGPL、MPL-2.0、EPL、EUPL-1.2)のセットがあります。すべての処理は入力に基づいてローカルで行われ、ネットワーク、設定、ライセンスデータベースは使用しません。無効な入力(リポジトリのライセンスがない、依存関係リストが空、依存関係に名前がない、名前が重複している、フィールドの型が誤っている)は、該当するパスを示すエラーとともに拒否され、部分的なカタログは生成されません。

CLI

npx @reneturcios/licensefile catalog --input args.json
npx @reneturcios/licensefile --version

args.json には引数オブジェクト全体を記述します。

{
  "repo_license": "MIT",
  "dependencies": [
    { "name": "alpha", "version": "1.0.0", "license": "MIT", "author": "Ann Example" },
    { "name": "beta", "version": "0.2", "license": "LGPL-2.1-only" },
    { "name": "gamma", "license": "GPL-3.0-only" }
  ]
}

依存関係ごとの version、license、author、homepage は省略可能です。カタログは JSON として出力されます。

終了コード:成功時は 0、実行時エラー時(読み取り不能または無効な入力ファイル、無効な入力を含む)は 1、使用方法のエラー時は 2 です。

MCP サーバー

npx -y @reneturcios/licensefile mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "licensefile": {
      "command": "npx",
      "args": ["-y", "@reneturcios/licensefile", "mcp"]
    }
  }
}
ツール
  • catalog_licenses — リポジトリの依存関係に関するライセンスと帰属表示のインベントリを作成します。
    • repo_license(string、必須)— リポジトリ自身のライセンスの SPDX ID。例:MIT
    • dependencies(array、必須、1 件以上)— {name, version?, license?, author?, homepage?} オブジェクトとして指定する依存関係。name は必須で、一意でなければなりません

{repo_license, dependency_count, inventory, by_license, flags, attribution_lines, verdict} を返します。

Docker

docker run -i ghcr.io/cloudcorprecords/licensefile
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/licensefile catalog --input /w/args.json

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。