GitHub 저장소와 프로필을 스캔하여 멀웨어 및 스캠 신호를 탐지하고, AI 에이전트와 개발자에게 위험 판정 결과를 제공합니다.
다른 이름 flagrix-io/flagrix-cli, flagrix-cli
- 스타
- 2
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.5.1
- 마지막 커밋
- 2026년 11월 10일
- 라이선스
- MIT
flagrix MCP란?
flagrix은(는) MCP server입니다. GitHub 저장소와 프로필을 스캔하여 멀웨어 및 스캠 신호를 탐지하고, AI 에이전트와 개발자에게 위험 판정 결과를 제공합니다.
프로젝트 README에서 생성된 요약
flagrix MCP server 정보
Flagrix는 개발자와 AI 에이전트가 GitHub 저장소 및 사용자 프로필에서 멀웨어와 스캠 신호를 식별할 수 있도록 보안 스캔 레이어를 제공합니다. 터미널을 통해 실행하거나 CI 파이프라인에 통합할 수 있으며, MCP stdio 프로토콜을 사용하여 AI 클라이언트에 연결할 수 있는 로컬 도구로 작동합니다. 특정 커밋을 분석함으로써 시스템은 위험 판정을 코드의 정확한 상태에 고정하며, 이를 통해 코드의 무단 변경이 스캔 결과를 무효화하는 것을 방지합니다.
사용자는 scan 명령으로 저장소를 스캔하거나 scan-user로 프로필을 평가할 수 있습니다. 이 도구는 GitHub의 기본 속도 제한을 따르지만, GITHUB_TOKEN을 제공하면 시간당 요청 한도가 60회에서 5,000회로 늘어나며 프라이빗 저장소 스캔도 가능해집니다. 모든 스캔 로직과 OSV 악성 패키지 피드를 통한 의존성 검사는 개인정보 보호를 위해 로컬에서 수행되며, 어떠한 텔레메트리나 데이터도 중앙 Flagrix 백엔드로 전송되지 않습니다.
활용 사례
- 1클론 전 저장소 안전성 검증AI 에이전트가 scan_github_repo 도구를 사용하여 코드를 다운로드하기 전에 데이터 유출 패턴이 있는지 저장소를 확인할 수 있습니다.
- 2GitHub 프로필 위험도 평가개발자가 GitHub 사용자 프로필에서 스캐머나 가짜 채용 담당자의 징후가 있는지 확인할 수 있습니다.
- 3CI 보안 게이트 자동화스캐너를 지속적 통합(CI) 파이프라인에 통합하여 고위험 코드가 탐지될 경우 빌드를 자동으로 중단할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
flagrix MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 flagrix MCP 설치
$ claude mcp add --env 'GITHUB_TOKEN=<YOUR_GITHUB_TOKEN>' flagrix-cli -- npx -y flagrixCursor에 flagrix MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"flagrix-cli": {
"command": "npx",
"args": [
"-y",
"flagrix"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}VS Code에 flagrix MCP 설치
.vscode/mcp.json
{
"servers": {
"flagrix-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"flagrix"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}VS Code CLI에 flagrix MCP 설치
$ code --add-mcp '{"name":"flagrix-cli","type":"stdio","command":"npx","args":["-y","flagrix"],"env":{"GITHUB_TOKEN":"<YOUR_GITHUB_TOKEN>"}}'Claude Desktop에 flagrix MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"flagrix-cli": {
"command": "npx",
"args": [
"-y",
"flagrix"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}Codex에 flagrix MCP 설치
$ codex mcp add flagrix-cli --env 'GITHUB_TOKEN=<YOUR_GITHUB_TOKEN>' -- npx -y flagrixCodex config.toml에 flagrix MCP 설치
~/.codex/config.toml
[mcp_servers.flagrix-cli] command = "npx" args = ["-y", "flagrix"] [mcp_servers.flagrix-cli.env] GITHUB_TOKEN = "<YOUR_GITHUB_TOKEN>"
Gemini CLI에 flagrix MCP 설치
$ gemini mcp add -s user -e 'GITHUB_TOKEN=<YOUR_GITHUB_TOKEN>' flagrix-cli npx -- -y flagrixGemini settings.json에 flagrix MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"flagrix-cli": {
"command": "npx",
"args": [
"-y",
"flagrix"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}구성
GITHUB_TOKEN비밀Optional GitHub token — raises API rate limits and enables private-repo scans
| 이름 | 설명 | 유형 |
|---|---|---|
| GITHUB_TOKEN | Optional GitHub token — raises API rate limits and enables private-repo scans | 비밀 |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능flagrix-io/flagrix-cli is public and reachablegithub.com/flagrix-io/flagrix-cli ↗통과
- 패키지가 이 저장소를 소스로 명시flagrix names flagrix-io/flagrix-cli as sourcenpmjs.com/package/flagrix ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for flagrixnpmjs.com/package/flagrix/v/0.5.1#provenance ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-10github.com/flagrix-io/flagrix-cli ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from flagrix통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음99 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에서 보기flagrix
Scan GitHub repositories and profiles for malware before you clone — from the terminal, CI, or an AI agent. The same commit-pinned verdict as the Flagrix browser extension, made callable.
npx flagrix scan https://github.com/some-org/coding-assignment
some-org/coding-assignment @ 3f9c2a1
HIGH RISK — Do not clone security score 12/100
3 files scanned · 10 dependencies · 2 issues
CRITICAL Data exfiltration patterns detected: Keylogger Pattern
assignment.js:14
14 document.addEventListener("keydown", (e) => send(e.key))
Built after real fake-recruiter campaigns ("coding assignment" repos that steal wallets, SSH keys, and browser sessions) started targeting developers.
Commands
flagrix scan <url | owner/repo> # scan a repository (--ref <branch|sha>)
flagrix scan-user <username> # score a GitHub profile for scam signals
flagrix mcp # MCP server (stdio) for AI agents
Exit codes
| code | meaning |
|---|---|
| 0 | low risk |
| 1 | scan failed |
| 2 | medium risk — review before proceeding |
| 3 | high risk — do not clone |
| 4 | scan incomplete — not enough of the repository was read to give a verdict |
--json (automatic when stdout is piped) emits the full result. The verdict is
pinned to the scanned commit (commitSha in the JSON): every file is read at
that SHA, so a push mid-scan or after the verdict can't silently invalidate it.
Incomplete scans (exit 4)
A repository scan is one tree request plus up to ~200 file reads, and GitHub allows 60 requests an hour without a token. When the budget runs out part way through, the rest of the repository is never looked at — so a "low risk, no findings" result over 30 of 180 files is the absence of looking, not a clean bill of health.
The result says so (scanSummary.complete: false, with
scanSummary.incompleteReason of "rate-limit" or "fetch-errors"), the
human output withholds the verdict and the score, and the exit code is 4
instead of 0. In CI the exit code is the decision and nobody reads stdout, so
a gate on flagrix scan stops here as it does on any non-zero code. Findings
are the other way round: evidence found is evidence however little else was
read, so a medium or high verdict keeps its own code and the coverage note
reads "there may be more".
In --json output, read verdict and coverage rather than riskLevel:
{
"verdict": "incomplete",
"coverage": {
"complete": false,
"unreliableClear": true,
"filesRead": 30,
"filesUnread": 150,
"reason": "rate-limit"
},
"riskLevel": "low",
"safeToClone": false,
...
}
verdictis"low","medium","high", or"incomplete"when a low result rests on files that were never read. It matches the exit code (0 / 2 / 3 / 4).coverage.unreliableClearis true exactly whenverdictis"incomplete";coverage.completeis false on any partial scan, including a medium or high one.reasonis present only when coverage is incomplete.riskLevel,riskScoreand the rest of the engine's result are unchanged, so existing consumers keep working — butriskLevelis the engine's reading of the files it did see, so on an incomplete scan it can still say"low".safeToCloneis kept for compatibility and is nowfalsewheneververdictis"incomplete"(in 0.4.0 and earlier it could betruethere). Gate onverdictor the exit code instead.
The MCP tool's JSON block carries the same fields.
Set a token to make this rare: GITHUB_TOKEN raises the budget to 5,000/h.
AI agents
claude mcp add flagrix -- npx -y flagrix mcp
Tools: scan_github_repo, scan_github_user. A Claude Code hook that gates every
git clone on a scan ships in hooks/ — see
docs/agent-gating.md.
Tokens & rate limits
Unauthenticated scans use GitHub's 60 req/h budget (a scan issues one request per
scanned file, up to ~200). Set GITHUB_TOKEN (or FLAGRIX_GITHUB_TOKEN, or
--token) to raise it to 5,000/h and to scan private repositories. A scan that
runs out of budget reports partial coverage and exits 4 — see
Incomplete scans.
Privacy
Fully local. No telemetry, no accounts, no Flagrix backend — the only network calls go to the GitHub/npm APIs and the public detection-rules repository (signature refresh, cached 6 h, with a bundled offline snapshot).
Dependencies are also checked against the OSV malicious-package feed
(osv-malicious.json from the same repository: every npm/PyPI package the
OpenSSF malicious-packages project has confirmed malicious). The feed is
downloaded and matched locally, so dependency names never leave your machine.
It is cached 6 h and revalidated with its ETag. Set FLAGRIX_OSV_FEED=0 to
skip it (the curated list in the signatures still applies).
How it works
Scanning logic lives in @flagrix/scanner-core (MIT), signatures in flagrix-detection-rules (MIT) — the same engine and rules the browser extension uses. Verdicts are risk assessments, not definitive fraud determinations; always verify through official channels.
AI Disclosure
This project leverages Claude AI for boilerplate generation, test-suite expansion, and optimization. All AI-generated code is strictly reviewed, refactored, and verified by human maintainers before merging.
License
MIT — see LICENSE.
flagrix MCP 질문
flagrix MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env 'GITHUB_TOKEN=<YOUR_GITHUB_TOKEN>' flagrix-cli -- npx -y flagrix를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
flagrix MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
flagrix를 사용할 때 제 데이터는 안전한가요?
네, 이 도구는 텔레메트리나 Flagrix 백엔드 없이 완전히 로컬에서 작동합니다. 네트워크 호출은 GitHub/npm API 및 탐지 규칙 저장소로만 이루어집니다.
종료 코드 4는 무엇을 의미하나요?
종료 코드 4는 스캔이 불완전함을 나타냅니다. 주로 속도 제한(rate limiting)으로 인해 전체 판정을 내릴 만큼 저장소를 충분히 읽지 못한 경우 발생합니다.