mcpField
S
sizecheck

sizecheck

本地服务
github.com/CloudCorpRecords版本控制01 周前更新

关于 sizecheck

sizecheck 是一款本地工具,根据变更文件的修改量、受影响的导出符号和目录分布评估拉取请求的影响范围。它给出风险等级、突出显示高修改量文件,并为大型变更提供拆分建议。

主要功能

  1. 01计算分数和风险等级
  2. 02汇总文件数与行数
  3. 03按顶层目录分组变更
  4. 04列出修改量最高的五个文件
  5. 05为大型变更提供拆分建议

适用场景

  1. 01评估拉取请求的审查负担
  2. 02查找修改量最大的文件
  3. 03确定可拆分为独立变更的目录组

MCP 相关

向 MCP 客户端提供 `score_blast_radius` 工具,返回分数、风险、汇总数据、目录分布、高修改量文件和拆分建议。

配置

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

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

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

安装包
npm@reneturcios/sizecheck0.1.0
ocighcr.io/cloudcorprecords/sizecheck:0.1.0

工具

1

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

参数类型必填说明
filesarray是拉取请求中已更改的文件(至少一个)

详细介绍

sizecheck

一个拉取请求可能只改动一个文件中的三行,也可能改动半个代码库、分散在多个文件中的三千行,审查负担自然不同。sizecheck 接收变更文件列表——包括每个文件的路径、增删行数,以及可选的已变更导出符号数量——并将其汇总为一份影响范围报告:

  • 评分和风险 — 一个整数评分:变更总量(新增行数加删除行数),每个受影响的导出符号加 25 分,以及从第二个顶层目录起每多一个目录加 10 分。评分对应一个风险等级:低于 100 为 small,100–399 为 medium,400–999 为 large,1000 及以上为 huge。
  • 总计 — 文件数以及新增行数、删除行数、变更总量和已变更导出符号数的总和,因此始终可以根据输入核对评分。
  • 按目录统计变更分布 — 按顶层目录分组变更(路径中没有目录的文件计入 "(root)"),按变更总量降序、再按目录名称升序排序。
  • 变更最集中的文件 — 按变更总量排列的前五个文件;若并列,则按路径升序排列,以便优先仔细审查影响最大的文件。
  • 拆分建议 — 当风险为 large 或 huge 时,会将最大目录组以外的每个目录组列为可单独合并的变更部分。风险为 small 或 medium 的变更,以及仅涉及单个目录的变更,不会提供建议。

每个变更文件都必须有唯一且非空的 path,以及非负整数 added 和 deleted 计数。 exports_changed 为可选项(默认值为 0),如有提供,必须为非负整数;kind 为可选项(默认值为 "code"),如有提供,必须为 "code"、"test"、"docs"、"config" 或 "other" 之一。该字段会经过验证,但不会影响评分。无效输入会产生一条指明出错路径的验证错误(例如 files[0].added must be an integer >= 0),且不会生成部分报告。计算过程是纯本地的:不访问网络、不需要配置,也不会读取你传入的输入之外的任何文件。

CLI

npx @reneturcios/sizecheck score --input args.json
npx @reneturcios/sizecheck --version

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

{
  "files": [
    { "path": "src/api.ts", "added": 120, "deleted": 30, "exports_changed": 3 },
    { "path": "src/api.test.ts", "added": 80, "deleted": 10, "kind": "test" },
    { "path": "docs/api.md", "added": 25, "deleted": 5, "kind": "docs" }
  ]
}

报告以 JSON 格式打印:

{
  "score": 355,
  "risk": "medium",
  "files_count": 3,
  "added": 225,
  "deleted": 45,
  "churn": 270,
  "exports_changed": 3,
  "by_directory": [
    { "directory": "src", "files": 2, "churn": 240 },
    { "directory": "docs", "files": 1, "churn": 30 }
  ],
  "hottest_files": [
    { "path": "src/api.ts", "churn": 150 },
    { "path": "src/api.test.ts", "churn": 90 },
    { "path": "docs/api.md", "churn": 30 }
  ],
  "split_suggestions": []
}

评分为 270(变更总量)+ 25 × 3(导出符号)+ 10 × 1(额外目录)= 355。

退出代码:成功时为 0,运行时错误时为 1(包括无法读取或无效的输入文件,或无效输入),用法错误时为 2。

MCP 服务

npx -y @reneturcios/sizecheck mcp

MCP 客户端配置:

{
  "mcpServers": {
    "sizecheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/sizecheck", "mcp"]
    }
  }
}
工具
  • score_blast_radius — 根据拉取请求的变更文件评估其影响范围。
    • files(数组,必填,至少包含一个元素)— 文件对象 {path, added, deleted, exports_changed?, kind?};集合中的 path 必须唯一

返回 {score, risk, files_count, added, deleted, churn, exports_changed, by_directory, hottest_files, split_suggestions}。

Docker

docker run -i ghcr.io/cloudcorprecords/sizecheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/sizecheck score --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 — 版权所有 (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

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

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