Skip to main content
Glama
noureldeensalama

shipcheck-mcp

AI가 만든 앱이 무엇을 유출하는지 — 배포 전에 찾아내세요.

Claude Code, OpenCode, Cursor 또는 MCP 호환 에이전트와 함께 동작합니다. 표준 Model Context Protocol 서버이지 Claude 전용 도구가 아닙니다.

CI npm license


AI 코딩 에이전트는 API 키를 유출하거나, GPL 라이선스 패키지를 끌어들이거나, 관리자 라우트를 인터넷에 열어 두거나, 개인정보 처리방침 없이 이메일을 수집하거나, 원시 카드 번호를 다루는 앱을 아무렇지 않게 배포합니다. "실행되나요?"와 "이걸 배포해도 되나요?"는 서로 다른 질문인데, 에이전트는 첫 번째 질문에만 답하기 때문입니다.

ShipCheck는 두 번째 질문에 답합니다. 프로젝트에서 다섯 가지 빠르고 결정적인 검사를 실행하고, 모든 발견 항목을 쉬운 말로 설명합니다. 무엇이 문제인지, 왜 당신에게 중요한지, 그리고 정확히 어떻게 고칠 수 있는지까지요. 보안 배경지식은 필요 없습니다.

설계상 정직함: ShipCheck는 위험한 패턴을 지적합니다. 법적 검토나 보증이 아닙니다. 깨끗한 스캔은 이 특정 검사들에 해당하는 항목이 없었다는 뜻일 뿐입니다. 전체 비목표(non-goals)는 PRD.md §2를 참조하세요.

두 가지 도구, 두 가지 시점

도구

시점

스캔 대상

scan_diff

모든 커밋 전 — 에이전트가 빌드하는 동안

커밋되지 않은 변경 사항만(또는 base로 전체 브랜치). 100k개 파일 레포에서도 ~0.1초 안에 실행됩니다.

scan_repo

출시 전 — 앱 스토어, 라이브 배포, 투자자

전체 저장소. 삭제됐지만 교체되지 않은 비밀을 찾기 위한 git 히스토리까지 포함합니다.

번들로 제공되는 스킬은 에이전트에게 습관을 심어 줍니다: 커밋 전에는 scan_diff, 출시 전에는 scan_repo.

Related MCP server: agentguard

사용 중인 스택 지원

검사

적용 범위

🔑 노출된 비밀

모든 언어 — 15개 이상의 키 형식(Stripe, OpenAI, Anthropic, OpenRouter, Supabase service-role, AWS, GitHub, Google, Slack, SendGrid, Resend, 개인 키, DB URL), 커밋된 .env 파일, 그리고 git 히스토리에서 발견되는 삭제됐지만 교체되지 않은 키

⚖️ 카피레프트 라이선스

npm · PyPI · pub.dev · crates.io · RubyGems · Composer

🚪 잠금 해제된 라우트

Express · FastAPI · Flask · Next.js (App + Pages Router) · gin/echo/fiber 스타일 Go · Laravel · Spring Boot

🕵️ 개인정보 처리방침 없는 PII

Google Analytics, PostHog, Meta Pixel, Hotjar, Clarity, Amplitude, Mixpanel, Segment, Firebase, 회원가입/인증 폼, 전화번호 입력 필드

💳 카드 데이터 처리

JS/TS/Dart/Python/HTML의 원시 카드/CVV 필드 vs 프로세서 SDK(Stripe Elements 및 유사 제품)

모든 요약은 감지된 스택(project_types)을 알려주고, 감지된 스택이 완전히 지원되지 않을 때는 모든 것이 괜찮다는 식으로 암시하는 대신 정직하게 경고합니다(coverage_caveat).

발견 항목 예시

[critical] lib/firebase_options.dart — 사용자 기기에서 실행되는 코드에서 Google API 키로 보이는 값이 발견되었습니다.

중요한 이유: 이 키는 앱 안에 포함된 채 모든 사용자의 휴대폰이나 브라우저로 전달됩니다. 누구나 이 키를 꺼내 당신인 것처럼 사용할 수 있습니다 — 돈을 쓰거나 데이터를 읽을 수 있습니다.

해결 방법: 키를 프로젝트의 일부가 되지 않는 별도의 비밀 파일로 옮기고, 시작 시 로드한 다음 제공자 대시보드에서 새 키를 발급받으세요. 이 키는 유출된 것으로 간주하세요.

30초 시작

# In Claude Code:
/plugin marketplace add noureldeensalama/shipcheck
/plugin install shipcheck

# Then just talk to your agent:

"커밋하기 전에 shipcheck 실행해 줘" · "출시 준비가 되었나?" · "이 레포를 스캔해 줘"

헤드리스 / CI:

claude --plugin-dir /path/to/shipcheck -p "Run shipcheck scan_repo on . and summarize findings"

독립형 MCP 서버 (Cursor, OpenCode, 기타 어떤 도구든)

git clone https://github.com/noureldeensalama/shipcheck.git
cd shipcheck && npm install && npm run build
{
  "mcpServers": {
    "shipcheck": { "command": "node", "args": ["/absolute/path/to/shipcheck/dist/index.js"] }
  }
}

또는 게시된 후에는: npx shipcheck-mcp

신뢰할 수 있도록 설계됨

  • 결정적(Deterministic): regex와 의존성 메타데이터만 사용합니다. LLM은 발견 항목을 하위 단계에서 설명할 뿐, 발견 항목이 존재하는지 여부를 결정하지 않습니다 (PRD.md §4).

  • 설계상 조용함: 동일한 키는 중복 제거되어 모든 위치 정보와 함께 하나의 발견 항목으로 표시됩니다. 출력은 심각도 순으로 정렬되고, 간결하며(100k LOC 레포에서 ~1k 토큰), 명시적 잘림 플래그와 함께 최대 100개 발견 항목으로 제한됩니다. 벤더 트리(node_modules, .venv, build…)는 절대 스캔하지 않으며, 플레이스홀더 값(mock…, CI 더미 값)과 공개를 전제로 한 설정(google-services.json, firebase_options.dart)은 거짓 경보를 울리지 않습니다.

  • 실제 코드로 입증됨: 5개의 프로덕션 레포에 직접 적용(dogfooding)해 검증했습니다. 13개 파일에 걸쳐 살아있는 Supabase service-role 키와 인증되지 않은 디버그 엔드포인트 3개를 잡아냈고, 수정 사항이 반영되었는지 확인한 뒤 git 히스토리에만 남아 있던 두 번째 키도 발견했습니다. 전체 참긍정/거짓긍정 로그: DOGFOOD_RESULTS.md.

호환성

Node.js

20+ (CI 매트릭스: 20 & 22)

OS

macOS · Linux · Windows (BOM 허용 파일 파싱, 경로 안전)

에이전트

stdio로 MCP를 지원하는 모든 것

프로젝트 유형

비밀/라이선스 검사는 모든 스택을 지원하며, 라우트 적용 범위는 위 표와 같습니다

직접 테스트해 보기

npm test             # 53 unit tests
npm run e2e          # 21 real-MCP-protocol checks
npm run verify-fixture   # acceptance gate over deliberately-vulnerable fixtures
npm run dogfood -- /path/to/any/repo   # scan any repo from the CLI

기여하기

이슈와 PR은 언제나 환영합니다 — CONTRIBUTING.md를 확인하세요. 새 탐지기 카테고리에는 위험에 반응하는 픽스처(fixture)와 과잉 반응하지 않는 회귀 테스트가 모두 필요합니다. 실제 코드 샘플이 포함된 거짓긍정 리포트는 특히 가치 있습니다. 실제 저장소 결과는 DOGFOOD_RESULTS.md에 있습니다.

라이선스

MIT — LICENSE를 참조하세요.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Agent-native "safe to ship?" security gate for AI-generated code. Uses real parsers and inter-rocedural taint analysis (JS/TS, Python, Go) to flag the classes AI coding agents get wrong — secrets, SQL injection, SS, SSRF, path traversal, command injection, weak JWT/CORS — and ranks findings by confidence. Exposes a scan tool over MCP.
    1
    6
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables scanning of AI agent code for security vulnerabilities such as prompt injection, tool abuse, and data exfiltration, directly from MCP-compatible clients like Claude Code.
    1
    LGPL 3.0
  • A
    license
    C
    quality
    B
    maintenance
    Security scanner and MCP server that catches dangerous patterns in MCP servers and AI agent projects, such as leaked secrets, shell execution, and prompt-injection text. Runs as both a CLI and MCP server with CI-friendly severity gates.
    2
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding tools to scan projects for security vulnerabilities, hardcoded secrets, injection flaws, and privacy violations with 699 rules and 76 MCP tools, all running locally with zero telemetry.
    52
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.

  • Zero-install security baseline for AI coding agents — OWASP/CWE-cited rules over MCP.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noureldeensalama/shipcheck'

If you have feedback or need assistance with the MCP directory API, please join our Discord server