SafetyScanner
A read-only MCP server that detects scam indicators in transaction and part-time job postings, returning a risk score and evidence.
README
<p align="center"> <img src="docs/safetyscanner-logo.png" alt="SafetyScanner 로고" width="180" /> </p>
SafetyScanner 안심 알바 스캐너
거래·알바 글을 붙여 넣으면 사기 의심 신호를 찾아
위험도 점수와 근거를 돌려주는 읽기 전용 MCP 서버입니다.
SafetyScanner는 사용자가 중고거래 글이나 단기알바 공고를 보고
“이거 괜찮은가?” 를 판단하기 전에 호출할 수 있는 안전 필터입니다.
에이전트가 글을 대신 검토할 때
막연한 감이 아니라 명확한 위험 신호와 근거를 바탕으로
사용자에게 주의가 필요한 지점을 설명하도록 돕습니다.
문제 정의
중고거래와 단기알바 사기는
글 안에 위험 신호가 드러나는 경우가 많습니다.
| 상황 | 자주 보이는 신호 |
|---|---|
| 중고거래 | 선입금 요구, 안전결제 회피, 외부 메신저 유도, 지나치게 낮은 가격 |
| 알바 공고 | 보증금·교육비 요구, 신분증·통장사본 요구, 고수익 보장, 업무 내용 모호 |
문제는 사용자가 급하거나 익숙하지 않을 때
이런 신호를 놓치기 쉽다는 점입니다.
SafetyScanner는 글을 읽고 왜 위험한지를 근거와 함께 돌려주어
에이전트가 더 일관되고 설명 가능한 경고를 할 수 있게 돕습니다.
어떻게 쓰이나요?
사용 흐름은 단순합니다.
| 단계 | 내용 |
|---|---|
| 1 | 사용자가 거래글이나 알바 공고를 에이전트에게 붙여 넣습니다. |
| 2 | 에이전트가 score_listing_risk(text) 도구를 호출합니다. |
| 3 | 서버가 위험도 점수와 탐지 근거를 반환합니다. |
| 4 | 에이전트가 사용자에게 주의할 지점을 설명합니다. |
응답은 점수만 던지는 방식이 아니라
탐지된 신호, 근거 문구, 권장 행동을 함께 보여주는 형태를 목표로 합니다.
risk_score: 75/100 (위험)
탐지 신호:
- 선입금 요구 [높음]
- 외부 메신저 유도 [중간]
근거: "예약금 먼저 보내주세요", "텔레그램으로 연락"
권장: 안전결제 이용, 외부 채널 거래 금지
제공 Tools
| Tool | 언제 쓰나요? | 결과 |
|---|---|---|
score_listing_risk |
거래글·알바 공고가 사기인지 확인하고 싶을 때 | 위험도 점수, 사기 유형, 탐지 신호, 근거 문구, 권장 행동 |
explain_signal |
“선입금”, “장비 설치”, “계좌 이체” 같은 표현이 왜 위험한지 물을 때 | 해당 신호의 사기 유형, 위험한 이유, 대응 방법 |
safe_trade_checklist |
거래나 알바를 시작하기 전 스스로 점검하고 싶을 때 | 중고거래·알바 안전 체크리스트 |
기술 구조
| 항목 | 값 |
|---|---|
| 언어 | Python 3.11 이상 |
| MCP 프레임워크 | 공식 MCP Python SDK의 FastMCP |
| 설치 패키지 | mcp[cli] |
| 전송 방식 | Streamable HTTP |
| 세션 방식 | 무세션 |
| 실행 주소 | 0.0.0.0:8000 |
| 엔드포인트 | /mcp |
서버는 Remote MCP 서버로 동작하며,
도구는 사용자 데이터를 변경하지 않는 읽기 전용 방식으로 설계합니다.
설치
macOS/Linux
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
Windows
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
실행
python server.py
실행 후 MCP 엔드포인트는 아래 주소입니다.
http://localhost:8000/mcp
MCP Inspector로 확인
npx @modelcontextprotocol/inspector
Inspector에서 아래처럼 설정합니다.
| 항목 | 값 |
|---|---|
| Transport | Streamable HTTP |
| URL | http://localhost:8000/mcp |
확인할 것:
- 도구 목록에
score_listing_risk가 보이는지 - 샘플
text로 실행했을 때 stub 응답이 오는지
Render 배포
SafetyScanner는 Render의 Web Service로 배포할 수 있습니다.
저장소 루트의 render.yaml을 Render가 인식하면
빌드와 실행 명령이 자동으로 설정됩니다.
| 항목 | 값 |
|---|---|
| Build Command | pip install -r requirements.txt |
| Start Command | python server.py |
| Python Version | 3.12.13 |
배포 흐름:
- GitHub에 이 프로젝트를 올립니다.
- Render에서 New Web Service를 선택합니다.
- GitHub 레포를 연결하고 SafetyScanner 레포를 선택합니다.
- Render가 루트의
render.yaml을 인식하는지 확인합니다. - 배포가 끝나면 Render가 제공한 HTTPS URL 뒤에
/mcp를 붙여 사용합니다.
예시:
https://safetyscanner.onrender.com/mcp
로컬에서는 PORT 환경변수가 없어도 기본값인 8000으로 실행됩니다.
python server.py
Render에서는 PORT 환경변수가 자동으로 주입되며,
서버는 그 값을 읽어 해당 포트로 실행됩니다.
무료 티어를 사용할 경우, 일정 시간 요청이 없으면 서버가 sleep 상태가 될 수 있습니다.
이때 첫 요청은 서버가 다시 깨어나는 cold start 지연이 발생할 수 있습니다.
기술 스택
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。