mcpField
A
AppLedger

AppLedger

本地服务
appledger.net安全02 周前更新

关于 AppLedger

AppLedger 面向使用 AI 工具构建应用的开发者,以通俗语言说明安全扫描结果,并生成可交给编码 Agent 的修复请求。它支持托管扫描和本地扫描,也可重新检查修复结果。

主要功能

  1. 01使用 Trivy 和 Opengrep 扫描应用
  2. 02以通俗语言解释安全问题
  3. 03生成编码 Agent 修复请求并复查
  4. 04输出 HTML、JSON 和 Markdown 报告
  5. 05支持托管模式与本地模式

适用场景

  1. 01在分享应用前检查安全问题
  2. 02将扫描结果交给编码 Agent 修复
  3. 03在不上传代码的本地模式中扫描
  4. 04定期检查应用并保存结果摘要

MCP 相关

提供本地 MCP 服务,供客户端调用 AppLedger 的应用安全检查功能。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"net-appledger-appledger": {
"command": "uvx",
"args": [
"appledger"
],
"env": {
"APPLEDGER_MODE": "<APPLEDGER_MODE>",
"APPLEDGER_KEY": "<APPLEDGER_KEY>"
}
}
}
}
启动命令uvx appledger
需要配置的环境变量
APPLEDGER_MODEhosted (default): files Git would commit are sent to appledger.net, scanned and deleted. local: Trivy and Opengrep run on this machine.
APPLEDGER_KEY密钥Optional dashboard connection key (al_...). Without it, nothing goes to a dashboard; a hosted check returns a link that saves its result to a free account (the summary is kept up to 24 hours).

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

安装包
pypiappledger0.2.5

工具

5

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

参数类型必填说明
pathstring是
app_nameany否
confirm_uploadboolean否
save_to_dashboardboolean否

详细介绍

AppLedger 诚实检查

用通俗易懂的语言,为使用 Claude Code、Codex、Cursor 和 Lovable 等 AI 工具构建的应用提供诚实的安全反馈。

AppLedger 会使用独立扫描器检查你的应用文件夹,并用日常用语解释检查结果:哪里有问题、为何重要,以及该怎么做。它还会生成一份修复请求,你可以直接交给构建该应用的 AI 工具,然后再次检查。

检查内容

扫描器可发现的问题
Trivy泄露的密码和密钥、存在已知安全问题的过时库、有风险的容器配置
Opengrep危险的代码模式:SQL 注入、命令注入、不安全的数据加载、未关闭的调试模式
SonarQube(可选,仅本地模式)代码质量问题,以及更多安全隐患(前提是你已运行 SonarQube 服务)

每次运行都会在 <your-app>/.appledger/ 中生成:

  • report.html:评分、当前可能使用该应用的人员范围(仅你、你的团队、整个公司),以及用通俗语言描述的所有问题
  • fix-prompt.md:可直接交给你的编码 Agent 的修复请求
  • findings.json:供工具和仪表板使用的相同检查结果

两种运行方式

模式需要安装代码去向
托管(默认)仅此软件包将 Git 会提交的源文件打包成 ZIP,通过 HTTPS 发送到 appledger.net,扫描后立即删除。绝不会发送机密文件。每个文件夹首次上传前,你都需要确认
本地(--local 或 APPLEDGER_MODE=local)还需安装 Trivy、Opengrep 和 Opengrep 规则文件留在你的电脑上。使用连接密钥时,只有摘要会发送到你的仪表板(见下文);--no-dashboard 则连摘要也不会发送

托管模式下会上传什么

  • 会发送: Git 会提交的文件(git ls-files,包括未被忽略的新文件)。如果当前目录不在 Git 仓库中,仍会遵守 .gitignore。
  • 绝不会发送: .env 和 .env.*(.env.example、.env.sample、.env.template 除外)、*.pem、*.key、*.p12、*.pfx、SSH 密钥、.npmrc、.pypirc、.netrc、*credentials*.json、service-account*.json、secrets.*、cert、certs、secrets、.ssh 和 .aws 文件夹、.claude/settings.local.json、Terraform 状态文件、密码文件、Ansible Vault 文件、Kubernetes/Helm 机密清单、证书及类似文件(完整列表见 src/appledger/uploadpolicy.py)。服务器也会再次剔除此类文件,作为第二道安全保障。
  • 会跳过: 依赖项、构建产物、媒体、文档和数据文件(CSV、电子表格、幻灯片、SQL、日志、数据转储),以及超过 1 MB 的文件。

如果某个机密文件已提交到 Git 或未被忽略,检查会通过文件名将其报告为问题,但绝不会读取或发送其内容。

无需上传任何内容,即可准确查看哪些内容会被发送、哪些内容会被排除以及原因:

python -m appledger path/to/your-app --list-files

首次托管检查某个文件夹时,系统会要求你确认。在脚本和定时运行中,请传入 --yes。如果代码属于你的雇主或客户,请确认你有权上传,或者使用本地模式。

安装

Claude Code 插件(推荐:提供引导式 check-my-app 技能):

claude plugin marketplace add contentasoftware/appledger
claude plugin install appledger@appledger

在 Claude Code 桌面应用中,也可以在插件设置中添加市场 contentasoftware/appledger。开启新会话,然后询问:“我的应用可以安全分享吗?”或“将这个应用添加到 AppLedger”。

仅安装 MCP 服务(需要 uv):

claude mcp add appledger -- uvx --from appledger appledger-mcp

命令行:

pip install appledger
python -m appledger path/to/your-app

包含故障排查的分步指南:https://appledger.net/docs/

0.2.0 版(上传预览、同意确认、排除机密文件、定时运行)正在发布到 PyPI;在此之前,pip install appledger 会安装 0.1.x。

公司仪表板

在 appledger.net 创建免费账户,将团队成员检查的每个应用都记录在同一份账本中:负责人、等级、评分趋势、可使用该应用的人员,以及构建该应用的 AI 工具。在“Connect a computer”下创建连接密钥,然后将它保存在每台计算机上:

python -m appledger --connect al_your_key

或者告诉 Claude:“用此密钥连接 AppLedger:al_…”。密钥保存在 ~/.appledger/key 中;APPLEDGER_KEY 可覆盖该密钥,--disconnect 会将其移除。

此后,每次检查也会向仪表板保存摘要:应用名称、评分、等级、问题数量、发现的问题列表(级别和简短标题,最多 60 条;绝不包含代码或文件路径),以及所用的扫描器。绝不保存代码。

尚未连接? 从 0.2.3 版本起,没有密钥的计算机进行托管检查后,会显示保存链接,该链接也会显示在 report.html 中:

Save this result to a free AppLedger ledger (link works for 24 hours): https://appledger.net/app/claim.php?t=...

打开链接,创建免费账户或登录,检查结果就会记入账本;随后页面会提供该计算机的密钥。在使用链接之前,服务最多保留 24 小时的检查摘要(应用名称、问题的级别和标题;绝不包含代码)。链接只能使用一次;--no-dashboard 可将其关闭。

你也可以在 Web 应用中点击 Add app 添加应用:无需代码即可注册,或上传 zip 文件并在浏览器中检查(zip 文件会以相同方式扫描并删除)。

定期检查

python -m appledger path/to/your-app --schedule weekly --yes   # or daily
python -m appledger --schedules                                 # list
python -m appledger path/to/your-app --schedule off             # stop

Windows 上使用 Windows 任务计划程序,macOS 和 Linux 上使用 cron。托管定期检查需要一次性同意,使用 --yes;添加 --local 可改为安排本地检查。--quiet 每次检查只打印一行。

本地模式设置

  1. Trivy:winget install AquaSecurity.Trivy(Windows)或 brew install trivy(Mac)
  2. Opengrep:从 发布页面 下载并将其放入 PATH
  3. 规则:git clone --depth 1 https://github.com/opengrep/opengrep-rules.git ~/.appledger/opengrep-rules
  4. 检查:python -m appledger --doctor

仓库结构

路径内容
src/appledger/scanner.py扫描器、通俗易懂的翻译、报告和修复请求
src/appledger/client.py选择要发送的文件(遵循 .gitignore),并将其发送到托管服务
src/appledger/uploadpolicy.py绝不会上传的机密文件完整列表,供客户端和服务端使用
src/appledger/service.py服务端:安全解包上传内容并进行扫描
src/appledger/server.py插件使用的本地 MCP 服务
plugin/包含 check-my-app 技能的 Claude Code / Codex 插件
tests/mcp_smoke.py像 Agent 一样调用每个 MCP 工具

许可证

MIT。扫描器使用的 Opengrep 社区规则采用各自的许可证(Commons Clause);在付费服务中使用前请先查看。

评论

支持 Markdown

第一次接触 MCP?

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

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