Skip to main content
Glama
sammkong

SafetyScanner

by sammkong
README.md
<p align="center">
  <img src="docs/safetyscanner-logo.png" alt="SafetyScanner 로고" width="180" />
</p>

# **SafetyScanner 안심 알바 스캐너**

> 거래·알바 글을 붙여넣으면 <b>사기 의심 신호</b>를 탐지해  
> <b>위험도, 근거 문구, 위험한 이유, 안전 체크리스트</b>를 돌려주는 읽기 전용 MCP 서버입니다.

SafetyScanner는 에이전트가 중고거래 글이나 단기알바 공고를 대신 검토할 때 쓰는 <b>안전 필터</b>입니다.  
공고 속 표현을 룰 기반으로 분석해 <b>어떤 신호가 왜 위험한지</b>를 근거와 함께 제공합니다.

정식 등록된 PlayMCP 서비스로 사용할 수 있습니다.

> [PlayMCP에서 SafetyScanner 안심 알바 스캐너 열기](https://playmcp.kakao.com/mcp/61804602214891466)

<p align="center">
  <img src="docs/playmcp-listing.png" alt="PlayMCP에 등록된 SafetyScanner 화면" width="760" />
</p>

## 문제 정의

중고거래·단기알바 사기는 글 텍스트에 위험 신호가 드러나는 경우가 많습니다.  
하지만 사용자가 급하거나 익숙하지 않을 때는 이런 표현을 놓치기 쉽습니다.

| 상황 | 자주 보이는 신호 |
| --- | --- |
| 중고거래 | 선입금 요구, 안전결제 회피, 외부 메신저 유도, 지나치게 낮은 가격 |
| 알바 공고 | 보증금·교육비 요구, 신분증·통장사본 요구, 고수익 보장, 업무 내용 모호 |
| 범죄 가담형 공고 | 자금 이체·대리 인출, 불법 장비 설치, 명의·계정 대여, 물품 수거 전달 |

SafetyScanner는 <b>판단 근거를 만들고</b>, 에이전트는 그 근거를 바탕으로 사용자에게 설명합니다.

## 동작 흐름

| 단계 | 흐름 |
| --- | --- |
| 1 | 사용자가 거래글이나 알바 공고를 붙여넣습니다. |
| 2 | 에이전트가 `score_listing_risk`를 호출합니다. |
| 3 | SafetyScanner가 위험도와 근거를 반환합니다. |
| 4 | 에이전트가 사람 말로 위험한 이유와 대응 방법을 설명합니다. |

> 내 서버는 <b>판단 근거</b>를 만들고, 에이전트는 그걸 <b>사용자에게 설명</b>합니다.

## 탐지하는 사기 유형

| # | 사기 유형 | 핵심 패턴 |
| --- | --- | --- |
| 1 | 보이스피싱 자금세탁(계좌 중개) | 송금된 돈 확인 후 이체·인출·전달, 건당 수수료 |
| 2 | 불법 중계기(심박스) 설치 | 회사가 보낸 소형 장비를 집에 설치, 전원·인터넷만 연결 |
| 3 | 유료가입·추천인 먹튀 | 작업자 등록·본인 인증 명목 가입 유도 |
| 4 | 보이스피싱 수거책 | 명품·골드바·상품권 대리구매 후 전달, 회사 체크카드 |
| 5 | 몸캠피싱·보증금 먹튀 | 피팅모델, 신체 노출 사진 요구, 보증금 선입금 |
| 6 | 가짜 결제 사이트 | 전용 정산 프로그램 설치, 라이선스 비용 결제 |
| 7 | 명의도용 대출 공범 | 동행·서명만·머릿수 채우기, 캐피탈 대출 |
| 8 | 계정 대여·불법 홍보 | 대리 포스팅·댓글 작업, 아이디·비밀번호 제공 |

## 실제 탐지 예시

입력 예시는 <b>백화점 명품관 단순 구매 대행 알바</b>입니다.  
명품 시계·골드바·상품권을 대신 결제하고, 회사 체크카드로 픽업 후 전달하며, 당일 현금 지급을 약속하는 형태입니다.

```text
🚨 위험도 : 100/100 (위험)

⚠️ 사기인 이유
 - 보이스피싱 수거책 사기
   → 현금·상품권·귀금속을 대신 결제·수거·전달하게 해 범죄 수익 운반책으로 만드는 수법
 - 개인정보·계좌 악용 사기
   → 채용 전 민감 정보를 요구해 대포통장·명의도용·추가 금융 피해로 이어질 수 있는 수법
 - 고수익 미끼 알바 사기
   → 쉽고 높은 보수를 내세워 검증을 느슨하게 만든 뒤 위험한 역할이나 선결제를 요구하는 수법

🔍 탐지된 신호
 - 물품 수거·전달책 (높음)
 - 신분증·계좌·통장사본 요구 (높음)
 - 고수익 보장 (중간)
 - 비현실적 즉시보상 (중간)

📌 근거 문구
 "구매 대행", "체크카드", "일당 15만", "당일 지급"

✅ 권장
 범죄 가담 위험, 즉시 중단 및 신고(112/경찰청) 고려
```

<details>
<summary>제공 Tools 보기</summary>

| Tool | 역할 |
| --- | --- |
| `score_listing_risk` | 공고 글의 위험도, 사기 유형, 근거 문구를 분석합니다. |
| `explain_signal` | 특정 표현이 왜 위험한지 사기 유형과 대응 방법으로 설명합니다. |
| `safe_trade_checklist` | 거래·알바 전 스스로 확인할 안전 체크리스트를 제공합니다. |

</details>

## 기술 구조

| 항목 | 값 |
| --- | --- |
| 언어 | Python 3.12 |
| MCP 프레임워크 | 공식 MCP Python SDK의 FastMCP |
| 전송 방식 | Streamable HTTP |
| 세션 방식 | 무세션 |
| 엔드포인트 | `/mcp` |
| 동작 성격 | 읽기 전용 |

## 기술 스택

![Python](https://img.shields.io/badge/Python-3.12-3776AB?style=for-the-badge&logo=python&logoColor=white)
![MCP](https://img.shields.io/badge/MCP-FastMCP-111111?style=for-the-badge)
![Transport](https://img.shields.io/badge/Transport-Streamable_HTTP-2563EB?style=for-the-badge)