mcpField
L
licensefile

licensefile

本地服务
github.com/CloudCorpRecords开发工具01 周前更新

关于 licensefile

licensefile 为仓库维护者整理依赖许可证与署名目录。它按 SPDX 许可证分类、标记冲突,并给出是否阻止发布的判定。

主要功能

  1. 01依赖许可证清单
  2. 02许可证计数与署名行
  3. 03Copyleft 与未知许可证标记
  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是要整理的依赖项(至少一个)
repo_licensestring是代码库自身许可证的 SPDX ID,例如 MIT

详细介绍

licensefile

仓库只能发布其依赖项许可证所允许的内容。licensefile 获取仓库自身的许可证和依赖项列表,并将它们整理成一份可供采取行动的清单:

  • 清单 — 每个依赖项一条记录,按名称排序, 许可证经过规范化处理(去除首尾空白;缺失或为空的 许可证将设为 unknown),缺失的版本、作者或主页 则设为 null
  • 按许可证统计 — 统计使用各规范化许可证的依赖项数量, 按数量降序排列;数量相同时按许可证名称排序
  • 署名行 — 按名称顺序为每个依赖项生成一行, 格式为 name@version — license — author;缺失的版本显示为 unknown,未提供作者时则完全省略作者部分
  • 标记 — 每个依赖项最多生成一个标记,按首个匹配规则确定: 未知许可证会产生警告;许可证为强 copyleft 且其系列 (GPL 与 AGPL)与仓库许可证的系列不同时,会产生错误; 使用宽松许可证的仓库中出现弱 copyleft 许可证时,会产生 提示;许可证不属于任何已知类别且不是仓库自身的许可证时, 会报告为未分类
  • 结论 — 若任何标记属于错误,则为 blocked, 否则为 ok

许可证类别使用规范中精确且区分大小写的 SPDX id:宽松许可证集合 (MIT、ISC、各 BSD 条款、Apache-2.0 等)、强 copyleft 许可证集合 (GPL 和 AGPL 的各种版本),以及弱 copyleft 许可证集合(LGPL 的 各种版本、MPL-2.0、EPL、EUPL-1.2)。所有计算均根据输入在本地完成: 不联网、不需要配置,也不会查询许可证数据库。无效输入——缺失仓库许可证、 依赖项列表为空、依赖项缺少名称、名称重复或字段类型错误——会被拒绝, 并指出出错路径,且不会生成部分清单。

命令行

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(字符串,必填)— 仓库自身许可证的 SPDX id,例如 MIT
    • dependencies(数组,必填,至少一项)— 依赖项对象,格式为 {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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。