mcpField
A
abandoncheck

abandoncheck

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

关于 abandoncheck

abandoncheck 根据调用方提供的仓库信号评估依赖维护状况,供团队检查依赖健康度。它使用固定的本地评分规则返回判定和理由,不会获取仓库或检查代码。

主要功能

  1. 01评估仓库维护信号
  2. 02返回判定、分数和理由
  3. 03划分发布与提交的时效区间
  4. 04验证输入并指出错误字段

适用场景

  1. 01维护工作中审查依赖健康度
  2. 02依据提供的信号比较依赖

MCP 相关

MCP 服务提供 `check_dep_maintenance`,根据调用方提供的信号返回判定、分数、信号和理由。该工具不会进行网络查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-abandoncheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/abandoncheck"
]
}
}
}
启动命令npx -y @reneturcios/abandoncheck

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/abandoncheck0.1.0
ocighcr.io/cloudcorprecords/abandoncheck:0.1.0

工具

1

收录的工具列表 · 更新于 1 周前

参数类型必填说明
namestring是依赖项名称
archivedboolean是依赖项的仓库是否已归档
open_issuesinteger否未解决问题数(可选;仅报告,不计分)
last_commit_daysinteger否距上次提交的天数(可选;未知时省略)
maintainer_countinteger否活跃维护者数量(可选)
last_release_daysinteger否距上次发布的天数(可选;从未发布时省略)
recent_commits_90dinteger否过去 90 天的提交数(可选)

详细介绍

abandoncheck

依赖树中的每个依赖都曾在某个时刻被选中,通常是几年前,而之后真正重要的问题很简单:还有人在维护它吗?abandoncheck 无需猜测,就能回答这个问题。你只需提供已有的事实信号——仓库是否已归档、距上次发布和上次提交分别过了多久、过去 90 天内有多少次提交、有多少位维护者活跃,以及有多少个未关闭的问题——它就会返回判定、分数、这些信号所属的区间,以及分数背后的具体原因。

不会获取任何信息,也不会推断代码本身的情况。仓库一旦归档,问题就有了定论:分数为 0,判定为 abandoned,无论其他信号看起来有多新都一样。否则,分数从 100 开始,按固定顺序因缺少或过时的发布信息、缺少或过时的提交信息、过去 90 天毫无动静,以及维护者人手不足而扣分,最低不低于 0。未关闭的问题数会在信号中原样返回,并且明确不参与评分:问题跟踪器繁忙,既可能意味着项目很受欢迎,也可能意味着项目无人维护,而此工具只采用指向单一结论的信号。

这些区间让分数一目了然、便于核查。距上次发布不超过 180 天为 fresh,之后到 365 天为 aging,到 730 天为 stale,超过则为 dormant;如果没有发布信息,区间为 unknown。提交采用更短的时间尺度:不超过 90 天为 active,到 180 天为 slowing,到 365 天为 quiet,超过则为 silent。分数达到 80 为 maintained,达到 50 为 at_risk,大于 0 为 likely_abandoned,而 0 为 abandoned。如果完全没有触发扣分项,唯一的原因是“no adverse signals”;否则,每条原因都会按应用顺序指出触发的扣分项。

格式错误的输入——缺失、为空或不是字符串的 name,缺失或不是布尔值的 archived,或任何不是大于等于 0 的整数的可选计数——都会导致验证错误,并指出出错的路径,不会返回部分结果。未知的额外字段会被忽略。计算是纯粹的本地操作:不联网、不需要配置,也不会读取或触碰任何仓库。

CLI

npx @reneturcios/abandoncheck check --input args.json
npx @reneturcios/abandoncheck --version

args.json 包含完整的参数对象:

{
  "name": "leftpad",
  "archived": false,
  "last_release_days": 45,
  "last_commit_days": 12,
  "recent_commits_90d": 18,
  "maintainer_count": 3,
  "open_issues": 27
}

结果会以 JSON 格式输出:

{
  "name": "leftpad",
  "verdict": "maintained",
  "score": 100,
  "signals": {
    "archived": false,
    "last_release_band": "fresh",
    "last_commit_band": "active",
    "recent_commits_90d": 18,
    "maintainer_count": 3,
    "open_issues": 27
  },
  "reasons": ["no adverse signals"]
}

未提供的可选信号会在 signals 中显示为 null,其区间为 "unknown"。退出码:成功时为 0,运行时错误时为 1(包括无法读取或内容无效的输入文件,或输入无效),用法错误时为 2。

MCP 服务

npx -y @reneturcios/abandoncheck mcp

MCP 客户端配置:

{
  "mcpServers": {
    "abandoncheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/abandoncheck", "mcp"]
    }
  }
}
工具
  • check_dep_maintenance — 仅根据调用方提供的事实信号,判断某个依赖是否有人维护。

    • name(字符串,必填,不能为空)— 依赖名称
    • archived(布尔值,必填)— 依赖的仓库是否已归档
    • last_release_days(整数,可选,至少为 0)— 距上次发布的天数;没有发布记录时省略
    • last_commit_days(整数,可选,至少为 0)— 距上次提交的天数;未知时省略
    • recent_commits_90d(整数,可选,至少为 0)— 过去 90 天内的提交数
    • maintainer_count(整数,可选,至少为 0)— 活跃维护者人数
    • open_issues(整数,可选,至少为 0)— 未关闭的问题数;会报告,但不参与评分

    返回 {name, verdict, score, signals, reasons},其中 signals 为 {archived, last_release_band, last_commit_band, recent_commits_90d, maintainer_count, open_issues}。

Docker

docker run -i ghcr.io/cloudcorprecords/abandoncheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/abandoncheck check --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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。