mcpField
A
altcheck

altcheck

本地服务
github.com/AziizBg其他0今天更新

关于 altcheck

altcheck 是一款命令行工具和 MCP 服务,可查找某产品的开源替代方案,并检查其 GitHub 状态、许可和维护信号。它为候选项目给出 VIABLE、RISKY 或 AVOID 判定及理由,供个人和 Agent 评估替代选项。

主要功能

  1. 01根据工具名称查找替代方案
  2. 02评估单个 GitHub 仓库
  3. 03给出 VIABLE、RISKY 或 AVOID 判定
  4. 04依据实时仓库信号说明判定理由
  5. 05为脚本输出 JSON

适用场景

  1. 01选用工具前评估开源替代方案
  2. 02检查仓库许可和维护状态
  3. 03比较商业产品替代候选项目
  4. 04通过 MCP 客户端查询替代方案和仓库判定

MCP 相关

altcheck 可作为 MCP 服务运行,向 MCP 客户端提供 find_alternatives 和 vet_repo 工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"aziizbg-altcheck": {
"command": "npx",
"args": [
"-y",
"altcheck"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}
启动命令npx -y altcheck
需要配置的环境变量
GITHUB_TOKEN密钥Optional GitHub token. Without one GitHub allows ~60 requests/hour (about 2 lookups).

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

安装包
npmaltcheck0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

altcheck

npm test MCP Registry license: MIT

开源替代方案,不做弃用软件。

目录会告诉你有哪些替代方案。altcheck 会告诉你哪些仍然值得放心选用,实时通过 GitHub 检查,并在每个判定旁列出原因。

altcheck 示例:Outline 因 BUSL 许可证被标记,Huly 因仓库冻结,BoostNote 因已归档

npx altcheck notion
Alternatives to notion: 3 VIABLE, 6 RISKY, 1 AVOID

VIABLE   AppFlowy-IO/AppFlowy             ★ 79k     AGPL-3.0        pushed 8d ago     bus 2
VIABLE   docmost/docmost                  ★ 22k     AGPL-3.0        pushed today      bus 1
         ↳ bus factor 1: one person wrote most of it
RISKY    outline/outline                  ★ 41k     BUSL-1.1        pushed today      bus 1
         ↳ source-available license (BUSL-1.1), not OSI open source
RISKY    hcengineering/platform           ★ 28k     EPL-2.0         pushed 1d ago     bus 3
         ↳ README says "no longer actively maintained"
RISKY    mattermost-community/focalboard  ★ 27k     multi:AGPL-3.0  pushed 6mo ago    bus 3
         ↳ no commits on the default branch in the last 12 weeks
...

(摘自 2026-11-11 的真实输出。)

Outline 有 41k 个星标,常被列为 Notion 的开源替代方案,但它采用 BUSL 许可证。Huly(28k★)仍有提交记录,但其 README 声明仓库已冻结,托管服务也已关闭。星标和“最近一次提交”都无法体现这些情况。

使用方法

npx altcheck intercom              # alternatives + verdicts
npx altcheck vet hashicorp/terraform   # vet any single repo
npx altcheck zapier --json --limit 5   # for scripts
作为 MCP 服务使用(Claude Code、Cursor 等)
claude mcp add altcheck -- npx -y altcheck --mcp

工具:find_alternatives { tool } 和 vet_repo { repo }。然后提问:“我们正准备购买 Intercom。有什么可行的开源替代方案?”

检查内容

信号对判定的影响
已归档,或超过 365 天没有推送避免使用
默认分支 12 周内没有提交/超过 180 天没有推送有风险
源码可用许可证(BUSL、SSPL、Elastic、FSL、Commons Clause、PolyForm、Sustainable Use)。当 GitHub 显示 NOASSERTION 时,根据许可证文本检测有风险
没有许可证,或 GitHub 无法识别许可证有风险
老仓库中的 LICENSE 文件在过去 2 年内有变更(可能重新授权)若为非 OSI 许可证则有风险,否则备注
创建时间不足 6 个月(尚未验证),且年轻仓库的 bus factor 为 1有风险
多重许可中包含 OSI 选项(例如 Redis 8、Elasticsearch:“AGPL 或 SSPL 或……”)备注
开放核心(OSS 核心加上专有的 enterprise/ 或 ee/ 目录)备注
成熟仓库的 bus factor 为 1备注

候选项目来自两个来源:

  1. 种子列表: RunaCapital/awesome-oss-alternatives(MIT),收录了 213 个项目,对应 134 个专有工具。
  2. 实时发现: GitHub 上星标数超过 100,且描述中提到是某工具替代方案的仓库。这能发现那些列表尚未收录的新兴 AI 时代项目。

**规则:**每项判定都根据公开数据实时计算。没有赞助排名,也没有人工撰写的意见。

身份验证与限制

如果有可用的 GITHUB_TOKEN、GH_TOKEN 或 gh auth token,altcheck 就会使用它。每次仓库检查约消耗 5 次请求。使用令牌(每小时 5,000 次请求)时,默认检查 10 个候选项目。不使用令牌时,GitHub 每小时允许 60 次请求,因此 altcheck 会检查 5 个候选项目,大约可进行 2 次查询/小时。达到限制后,它会告知你限制何时重置。

这与 OpenSSF Scorecard / deps.dev 有何不同?

这些工具会为你已经选定的仓库评分,主要关注安全性;而 deps.dev 会把 Terraform(BUSL)、Redis(AGPL 或 SSPL)和 Chatwoot(开放核心)都报告为 non-standard。altcheck 从你想替换的工具入手,读取许可证文本以区分这些情况,并给出附有原因的判定,供人或 Agent 采取行动。

发现结果有误?

提交“结果有误”问题。只需两分钟,而且每份报告都会成为一个测试用例。

已知局限

  • Bus factor 根据排名前 100 的贡献者的提交次数计算,只是一个粗略指标。
  • “LICENSE changed” 往往只是版权年份更新。它是提示你去查看,并非证据。
  • 实时搜索取决于仓库如何描述自身。一个自称“开源 Notion 替代品”的项目会被纳入,即使它实际上并非如此。
  • 哪些候选项目入选是按顺序排列,而非排名:实时搜索结果(按星标数排序)与种子列表交替出现。不错的替代品可能排在 --limit 之后;如果不确定,请调高该值。
  • 稳定且已完成的软件(因为无需更改而提交很少)会被标记为过时。请阅读原因,而不只是看标签。
  • 许可证文本检测只读取 LICENSE 文件的前 4 KB。若许可证仅在 README 中说明,或只出现在各文件头部,可能会被漏掉。
  • 在两个盲测基准上测得(共 60 个仓库和 40 个工具,均未用于调优,且各评分一次;详见 bench/):
    • 状态:59/60;
    • 许可证类别完全准确:48/60,且所有误判都偏谨慎:非开源或已弃用的仓库被判为 VIABLE 的情况为 0;
    • 搜索精确率约为 84%,经过一轮修复后约为 89%。
  • 含义模糊的品牌名称会产生噪声:“github”也会匹配 Copilot 和 github.com URL;“framer”会匹配 Framer Motion。
  • 不自称为“X 的替代品”的大型项目(Immich、Bitwarden、Mattermost)只有在种子列表中时才会出现。
  • 未托管在 GitHub 上的项目(GIMP、Krita、Inkscape)无法被发现。
  • MCP 服务已通过 stdio 使用官方 MCP TypeScript SDK 客户端进行测试,但尚未在 Claude Code 或 Cursor 应用中测试。

开发

npm test             # node:test, no network
npm run build:seed   # regenerate data/seed.json from scripts/runa-README.snapshot.md

零运行时依赖。Node 18 或更高版本。MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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