shodan-mcp
shodan-mcp
Shodan 기반의 수동 정찰 MCP 서버입니다.
nuclei-mcp와 동일한 게이트를 사용하여 HackerOne 스냅샷을 기준으로 스코프를 제한합니다.
수동 전용 — Shodan 쿼리는 대상에게 패킷을 전혀 전송하지 않습니다. 모든 데이터는 Shodan의 기존 인터넷 전체 스캔 인덱스에서 가져옵니다.
아키텍처
Claude/copilot (AI agent)
│
│ MCP (stdio)
▼
shodan-mcp container
├── reads scope ──► /data/snapshots/*.json ◄─── h1-scope-watcher
└── queries ──► api.shodan.io (passive, no target contact)Related MCP server: Shodan MCP Server
스코프 게이트
모든 도구는 nuclei-mcp와 동일한 게이트를 실행합니다:
/data/snapshots에서 모든*.json로드정확히 일치 → 와일드카드 → 퍼지 키워드 매칭
eligible_for_bounty및eligible_for_submission확인둘 중 하나라도 false이면 차단 — 재정의 불가
빠른 시작
1. 빌드
cd shodan-mcp
docker build -t shodan-mcp .2. Claude/Copilot MCP 설정에 추가
{
"mcpServers": {
"h1-scope-watcher": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
"-e", "SNAPSHOTS_DIR=/data/snapshots",
"mcp/h1-scope"
]
},
"shodan-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
"-e", "SNAPSHOTS_DIR=/data/snapshots",
"-e", "SHODAN_API_KEY=YOUR_KEY_HERE",
"shodan-mcp"
]
}
}
}YOUR_KEY_HERE를 https://account.shodan.io에서 발급받은 키로 교체하세요.
MCP 도구
shodan_host
대상 확인 → IP → 전체 Shodan 호스트 보고서.
매개변수 | 타입 | 기본값 | 설명 |
| string | — | 도메인, URL 또는 퍼지 이름 |
| bool |
| 원시 서비스 배너 포함 (처음 3줄) |
IP당 제공되는 정보:
열린 포트 + 전송 프로토콜
서비스 / 제품 / 버전 핑거프린트
CPE 식별자
CVSS 점수 및 요약이 포함된 CVE 목록
ASN, ISP, 조직, 지리적 위치, OS
Shodan 태그 (예:
cloud,self-signed,vpn)
예시 프롬프트:
"dummy-target에 대해 shodan 실행"
"api.tile.com이 Shodan에서 노출하는 포트는 무엇인가요?"
"배너와 함께 production.tile-api.com에 대해 shodan 확인"
shodan_search
Shodan의 hostname: 인덱스 검색 — 오래된/그림자 인프라를 포함하여 해당 호스트 이름을 서비스한 적이 있는 모든 IP의 레코드를 찾습니다.
매개변수 | 타입 | 기본값 | 설명 |
| str | — | 도메인, URL 또는 키워드 |
| int |
| 최대 호스트 수 (최대: 20) |
예시 프롬프트:
"dummy-target에 대해 Shodan 검색 — 결과 10개 보여줘"
"Shodan에 tile.com에 대해 잊혀진 인프라가 있나요?"
shodan_dns
Shodan의 수동 DNS 레코드 가져오기 — Shodan이 루트 도메인에 대해 관찰한 모든 서브도메인, A/CNAME/MX/TXT 레코드.
매개변수 | 타입 | 설명 |
| str | 도메인 또는 키워드 |
예시 프롬프트:
"dummy-target에 대해 Shodan이 알고 있는 서브도메인은 무엇인가요?"
"tile.com에 대한 Shodan DNS 레코드 보여줘"
check_scope
API 호출 없이 스코프 게이트를 미리 확인합니다.
list_programs
바운티 자격 여부에 따라 그룹화된 모든 H1 스코프 자산을 나열합니다.
Shodan 플랜 참고 사항
플랜 |
|
|
|
Free | ✅ | ✅ (제한됨) | ❌ |
Membership | ✅ | ✅ | ✅ |
API (유료) | ✅ | ✅ | ✅ |
shodan_dns는 유료 Shodan 플랜이 필요합니다.
서버는 시작 시 키와 플랜을 검증하고 결과를 기록합니다.
체인 워크플로우 예시
You: "Full passive recon on dummy-target"
Claude/Copilot:
1. check_scope("dummy-target")
→ ✅ api.dummy-target.com, api-cloudfront.dummy-target.com
2. shodan_dns("dummy-target")
→ 14 subdomains discovered passively
3. shodan_host("api.dummy-target.com")
→ Port 443 (nginx 1.18), Port 8443 (unknown)
→ CVE-2021-23017 CVSS 7.7 (nginx)
4. shodan_search("dummy-target", max_results=10)
→ 3 IPs, one on non-standard port 9200 (Elasticsearch!)
5. nuclei_scan("api.dummy-target.com")
→ Confirms Elasticsearch exposure5단계 전까지는 더미 대상에게 패킷이 전혀 전송되지 않습니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
Defensive Shodan search and host intelligence MCP using customer-provided SHODAN_API_KEY for
Shodan InternetDB MCP — wraps Shodan InternetDB (internetdb.shodan.io)
Shodan MCP — wraps the full Shodan REST API (api.shodan.io)
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for querying the Shodan API and Shodan CVEDB. This server provides tools for IP lookups, device searches, DNS lookups, vulnerability queries, CPE lookups, and more.7520 npm171MIT
- FlicenseNot gradedqualityDmaintenanceA WebSocket server that provides MCP interface for searching and retrieving information about internet-connected devices, IP addresses, DNS data, and CVE vulnerabilities through the Shodan API.3-
- FlicenseNot gradedqualityDmaintenanceThis is a Model Context Protocol (MCP) server that provides access to the Shodan API. It allows you to programmatically query Shodan for information about devices, vulnerabilities, and more.2-
- AlicenseBqualityCmaintenanceMCP server that exposes Shodan API for host information, search, alerts, scanning, and exploit data.201MIT