AI로 구축한 애플리케이션을 대상으로 자연어 보안 스캔을 수행하고, 코딩 에이전트용 수정 요청을 생성합니다.
다른 이름 contentasoftware/appledger
- 스타
- 0
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.2.5
- 마지막 커밋
- 2026년 10월 14일
- 라이선스
- MIT
AppLedger MCP란?
AppLedger은(는) MCP server입니다. AI로 구축한 애플리케이션을 대상으로 자연어 보안 스캔을 수행하고, 코딩 에이전트용 수정 요청을 생성합니다.
프로젝트 README에서 생성된 요약
AppLedger MCP server 정보
AppLedger는 Claude Code, Cursor, Lovable과 같은 AI 도구로 구축한 애플리케이션에 대한 보안 피드백을 제공합니다. 독립적인 도구를 사용하여 애플리케이션 폴더를 스캔하고 취약점을 식별하며, 기술적인 분석 결과를 쉬운 영어로 번역하여 제공합니다. 이 서비스를 통해 개발자는 무엇이 잘못되었는지, 왜 중요한지, 그리고 어떻게 수정해야 하는지를 쉽게 이해할 수 있습니다. 또한 코딩 에이전트에게 직접 전달하여 문제를 해결할 수 있는 특정 fix-prompt.md 파일을 생성합니다.
사용자는 호스팅 모드와 로컬 모드 중 하나를 선택할 수 있습니다. 호스팅 모드에서는 Git이 커밋할 파일들을 zip으로 압축하여 스캔을 위해 appledger.net으로 HTTPS를 통해 전송하며, .env나 SSH 키와 같은 민감한 파일은 엄격히 제외됩니다. 로컬 모드는 설치된 Trivy 및 Opengrep 버전을 사용하여 모든 코드를 사용자의 로컬 머신에 유지합니다. 시스템은 Trivy를 사용하여 유출된 키와 오래된 라이브러리를 찾고, Opengrep은 SQL injection과 같은 위험한 패턴을 감지합니다. 기존 SonarQube 서버를 사용하는 경우, 로컬 모드에서 코드 품질 및 보안 핫스팟을 확인하기 위해 해당 스캔을 선택적으로 포함할 수 있습니다.
활용 사례
- 1AI 수정 요청 생성보안 결함을 복구하기 위해 코딩 에이전트에게 바로 전달할 수 있는 완성된 지침 세트가 포함된 마크다운 파일을 생성합니다.
- 2AI 생성 코드의 취약점 감사애플리케이션 폴더를 스캔하여 유출된 비밀번호, 오래된 라이브러리 또는 SQL injection과 같은 위험한 패턴을 찾습니다.
- 3정기적인 보안 점검 자동화cron 또는 Windows Task Scheduler와 같은 시스템 스케줄러를 사용하여 일간 또는 주간 자동 스캔을 설정합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
AppLedger MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 AppLedger MCP 설치
$ claude mcp add --env 'APPLEDGER_KEY=<YOUR_APPLEDGER_KEY>' appledger -- uvx appledgerCursor에 AppLedger MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"appledger": {
"command": "uvx",
"args": [
"appledger"
],
"env": {
"APPLEDGER_KEY": "<YOUR_APPLEDGER_KEY>"
}
}
}
}VS Code에 AppLedger MCP 설치
.vscode/mcp.json
{
"servers": {
"appledger": {
"type": "stdio",
"command": "uvx",
"args": [
"appledger"
],
"env": {
"APPLEDGER_KEY": "<YOUR_APPLEDGER_KEY>"
}
}
}
}VS Code CLI에 AppLedger MCP 설치
$ code --add-mcp '{"name":"appledger","type":"stdio","command":"uvx","args":["appledger"],"env":{"APPLEDGER_KEY":"<YOUR_APPLEDGER_KEY>"}}'Claude Desktop에 AppLedger MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"appledger": {
"command": "uvx",
"args": [
"appledger"
],
"env": {
"APPLEDGER_KEY": "<YOUR_APPLEDGER_KEY>"
}
}
}
}Codex에 AppLedger MCP 설치
$ codex mcp add appledger --env 'APPLEDGER_KEY=<YOUR_APPLEDGER_KEY>' -- uvx appledgerCodex config.toml에 AppLedger MCP 설치
~/.codex/config.toml
[mcp_servers.appledger] command = "uvx" args = ["appledger"] [mcp_servers.appledger.env] APPLEDGER_KEY = "<YOUR_APPLEDGER_KEY>"
Gemini CLI에 AppLedger MCP 설치
$ gemini mcp add -s user -e 'APPLEDGER_KEY=<YOUR_APPLEDGER_KEY>' appledger uvx -- appledgerGemini settings.json에 AppLedger MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"appledger": {
"command": "uvx",
"args": [
"appledger"
],
"env": {
"APPLEDGER_KEY": "<YOUR_APPLEDGER_KEY>"
}
}
}
}구성
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).
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). | 비밀 |
| APPLEDGER_MODE | hosted (default): files Git would commit are sent to appledger.net, scanned and deleted. local: Trivy and Opengrep run on this machine. |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능contentasoftware/appledger is public and reachablegithub.com/contentasoftware/appledger ↗통과
- 패키지가 이 저장소를 소스로 명시appledger names contentasoftware/appledger as sourcepypi.org/project/appledger/ ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for appledgerpypi.org/project/appledger/ ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-14github.com/contentasoftware/appledger ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from appledger통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음32 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기AppLedger honest check
Honest security feedback, in plain language, for apps people build with AI tools such as Claude Code, Codex, Cursor and Lovable.
AppLedger checks your app folder with independent scanners and explains what they find in everyday words: what is wrong, why it matters, and what to do. It also writes a fix request you can hand straight to the AI tool that built the app, then checks again.
What it checks
| Scanner | Finds |
|---|---|
| Trivy | Leaked passwords and keys, outdated libraries with known security problems, risky container setup |
| Opengrep | Dangerous code patterns: SQL injection, command injection, unsafe data loading, debug mode left on |
| SonarQube (optional, local mode) | Code quality and more security hotspots, if you already run a SonarQube server |
Each run produces, in <your-app>/.appledger/:
report.html: a score, who may use the app right now (only you, your team, the whole company), and every problem in plain wordsfix-prompt.md: a ready-made fix request for your coding agentfindings.json: the same findings for tools and dashboards
Two ways to run
| Mode | What you install | Where your code goes |
|---|---|---|
| Hosted (default) | Only this package | Source files Git would commit are zipped, sent over HTTPS to appledger.net, scanned and deleted right after. Secret files are never sent. You confirm before the first upload of each folder |
Local (--local or APPLEDGER_MODE=local) |
Also Trivy, Opengrep and the Opengrep rules | Stays on your computer. With a connection key, only a summary goes to your dashboard (see below); --no-dashboard skips even that |
What gets uploaded in hosted mode
- Sent: files Git would commit (
git ls-files, including new files that aren't ignored). Outside a Git repository,.gitignoreis still honoured. - Never sent:
.envand.env.*(except.env.example,.env.sample,.env.template),*.pem,*.key,*.p12,*.pfx, SSH keys,.npmrc,.pypirc,.netrc,*credentials*.json,service-account*.json,secrets.*, the folderscert,certs,secrets,.sshand.aws,.claude/settings.local.json, Terraform state, password files, Ansible Vault files, Kubernetes/Helm secret manifests, certificates and similar (full list insrc/appledger/uploadpolicy.py). The server drops such files again as a second safety net. - Skipped: dependencies, build output, media, documents and data files (CSV, spreadsheets, slides, SQL, logs, data dumps) and files over 1 MB.
If a secret file is committed to Git or not ignored, the check reports it as a problem by file name. Its content is never read or sent.
See exactly what would be sent, and what is left out and why, without uploading anything:
python -m appledger path/to/your-app --list-files
The first hosted check of a folder asks you to confirm. In scripts and scheduled runs, pass --yes. If the code belongs to your employer or a client, make sure you're allowed to upload it, or use local mode.
Install
Claude Code plugin (recommended: adds the guided check-my-app skill):
claude plugin marketplace add contentasoftware/appledger
claude plugin install appledger@appledger
In the Claude Code desktop app, add the marketplace contentasoftware/appledger in the plugin settings instead. Start a new session, then ask: "Is my app safe to share?" or "Add this app to AppLedger".
MCP server only (needs uv):
claude mcp add appledger -- uvx --from appledger appledger-mcp
Command line:
pip install appledger
python -m appledger path/to/your-app
Step-by-step guide with troubleshooting: https://appledger.net/docs/
Version 0.2.0 (upload preview, consent, secret-file exclusion, scheduling) is being released to PyPI; until then pip install appledger gets 0.1.x.
Company dashboard
Create a free account at appledger.net to keep every app your people check in one ledger: owner, grade, score trend, who may use it and which AI tool built it. Create a connection key under "Connect a computer", then save it on each computer:
python -m appledger --connect al_your_key
Or tell Claude: "Connect AppLedger with this key: al_…". The key is saved in ~/.appledger/key; APPLEDGER_KEY overrides it and --disconnect removes it.
From then on each check also saves a summary to your dashboard: the app's name, score, grade, problem counts, the list of problems found (level and short title, up to 60; never code or file paths), and the scanners used. Never the code.
Not connected yet? From 0.2.3, a hosted check from a computer without a key ends with a save link, also shown in report.html:
Save this result to a free AppLedger ledger (link works for 24 hours): https://appledger.net/app/claim.php?t=...
Open it, create a free account or log in, and the check is in your ledger; the page then offers a key for that computer. Until the link is used, the service keeps only the check's summary (app name, score, the problems' levels and titles; never code), for up to 24 hours. A link works once; --no-dashboard turns it off.
You can also add an app in the web app with Add app: register it without code, or upload a zip to check it in the browser (the zip is scanned and deleted the same way).
Scheduled checks
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
Uses Windows Task Scheduler on Windows and cron on macOS and Linux. Hosted scheduled checks need the one-time --yes consent; add --local to schedule local checks instead. --quiet prints one line per check.
Local mode setup
- Trivy:
winget install AquaSecurity.Trivy(Windows) orbrew install trivy(Mac) - Opengrep: download from the releases page and put it on your PATH
- Rules:
git clone --depth 1 https://github.com/opengrep/opengrep-rules.git ~/.appledger/opengrep-rules - Check:
python -m appledger --doctor
Repository layout
| Path | What |
|---|---|
src/appledger/scanner.py |
Scanners, plain-language translation, report and fix request |
src/appledger/client.py |
Picks the files to send (honouring .gitignore) and sends them to the hosted service |
src/appledger/uploadpolicy.py |
The full list of secret files that are never uploaded, used by client and server |
src/appledger/service.py |
Server side: unpacks an upload safely and scans it |
src/appledger/server.py |
Local MCP server used by the plugin |
plugin/ |
Claude Code / Codex plugin with the check-my-app skill |
tests/mcp_smoke.py |
Calls every MCP tool like an agent would |
License
MIT. The Opengrep community rules used by the scanner have their own license (Commons Clause); check it before using them in a paid service.
AppLedger MCP 질문
AppLedger MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env 'APPLEDGER_KEY=<YOUR_APPLEDGER_KEY>' appledger -- uvx appledger를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
AppLedger MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
발견된 내용을 사용하여 코드를 어떻게 수정하나요?
이 도구는 'fix-prompt.md' 파일을 생성합니다. 이 파일은 AI 코딩 에이전트에게 즉시 제공할 수 있는 완성된 형태의 수정 요청서입니다.