Packet Analyzer MCP
Stores captured packet data, threat intelligence, and vector embeddings for semantic search, enabling efficient querying and analysis.
Acts as a message queue for transmitting captured packets from clients to the server for processing and analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Packet Analyzer MCPCapture 50 packets on eth0 with filter 'tcp port 80'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Packet Analyzer MCP
네트워크 패킷을 캡처하고 분석하는 MCP (Model Context Protocol) 서버 시스템입니다. 클라이언트-서버 아키텍처로 구성되어 있으며, 여러 호스트에서 패킷을 수집하여 중앙에서 분석할 수 있습니다.
개요
이 프로젝트는 네트워크 보안 모니터링 및 분석을 위한 분산 시스템입니다:
클라이언트: 각 호스트에서 tcpdump로 패킷을 캡처하고 Kafka로 전송
서버: Kafka에서 패킷을 수집하고 PostgreSQL에 저장한 후 외부 보안 API로 분석
RAG 시스템: 취약 IP 정보를 벡터 데이터베이스에 저장하고 시맨틱 검색으로 매칭
Related MCP server: Wireshark MCP
시스템 아키텍처
┌─────────────────┐
│ Client 1 │──┐
│ (Host A) │ │
└─────────────────┘ │
│
┌─────────────────┐ │ ┌─────────────────┐ ┌──────────────────┐
│ Client 2 │──┼────▶│ Kafka │────▶│ Server │
│ (Host B) │ │ │ Message Queue │ │ - Packet Store │
└─────────────────┘ │ └─────────────────┘ │ - Analyzer │
│ │ - RAG System │
┌─────────────────┐ │ └──────────────────┘
│ Client N │──┘ │
│ (Host N) │ ▼
└─────────────────┘ ┌──────────────────┐
│ PostgreSQL │
│ + pgvector │
│ Database │
└──────────────────┘
│
▼
┌──────────────────┐
│ External APIs │
│ - NVD CVE │
│ - MITRE ATT&CK │
│ - AbuseIPDB │
└──────────────────┘주요 기능
클라이언트 (Packet Capture)
tcpdump를 사용한 실시간 패킷 캡처
Scapy를 사용한 패킷 파싱 (TCP, UDP, ICMP)
BPF 필터 지원
pcap 파일 파싱 및 전송
Kafka를 통한 배치 전송
여러 네트워크 인터페이스 지원
서버 (Packet Analysis)
Kafka 컨슈머로 패킷 수집
PostgreSQL + pgvector에 패킷 저장 및 인덱싱
외부 보안 API 통합
NVD CVE 데이터베이스 검색
MITRE ATT&CK 프레임워크 매핑
AbuseIPDB 위협 인텔리전스
자동 패킷 분석
악의적 IP 탐지
포트 스캔 탐지
안전하지 않은 프로토콜 탐지
비정상 트래픽 탐지
RAG 기반 취약 IP 관리
벡터 임베딩을 통한 시맨틱 검색
취약 IP 데이터베이스 구축
실시간 패킷-위협 매칭
통계 및 리포팅
프로토콜 분포
Top Talkers
위협 요약
설치
1. 프로젝트 클론
git clone <repository-url>
cd packet-analyzer-mcp2. Python 패키지 설치
uv를 사용하는 경우:
uv sync또는 pip를 사용하는 경우:
pip install -e .3. 인프라 설정
PostgreSQL 설치 및 설정
# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib
# macOS
brew install postgresql
brew services start postgresql
# 데이터베이스 생성
sudo -u postgres psql
CREATE DATABASE packet_analyzer;
CREATE USER packet_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE packet_analyzer TO packet_user;
\qRabbitMQ 설치 및 설정
# Ubuntu/Debian
sudo apt-get install rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
# macOS
brew install rabbitmq
brew services start rabbitmq
# 웹 관리 콘솔 활성화 (선택사항)
sudo rabbitmq-plugins enable rabbitmq_management
# http://localhost:15672 (guest/guest)4. 환경 변수 설정
서버 설정 (server/.env)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=packet_analyzer
POSTGRES_USER=packet_user
POSTGRES_PASSWORD=your_password
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_QUEUE=packet_queue
# 선택사항: 외부 API 키
NVD_API_KEY=your_nvd_api_key
ABUSEIPDB_API_KEY=your_abuseipdb_api_key클라이언트 설정 (client/.env)
RABBITMQ_HOST=your_server_ip
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_QUEUE=packet_queue
CLIENT_ID=laptop-01사용법
서버 실행
python -m server.server클라이언트 실행
python -m client.clientClaude Desktop과 통합
Claude Desktop 설정 파일 (claude_desktop_config.json)에 추가:
{
"mcpServers": {
"packet-analyzer-server": {
"command": "python",
"args": ["-m", "server.server"],
"cwd": "/path/to/packet-analyzer-mcp",
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_DB": "packet_analyzer",
"POSTGRES_USER": "packet_user",
"POSTGRES_PASSWORD": "your_password",
"RABBITMQ_HOST": "localhost"
}
},
"packet-analyzer-client": {
"command": "python",
"args": ["-m", "client.client"],
"cwd": "/path/to/packet-analyzer-mcp",
"env": {
"RABBITMQ_HOST": "localhost",
"CLIENT_ID": "my-laptop"
}
}
}
}사용 예시
클라이언트 사용 예
사용 가능한 네트워크 인터페이스를 보여줘
→ list_interfaces 도구 실행
eth0 인터페이스에서 HTTP 트래픽 100개를 캡처해서 서버로 전송해줘
→ capture_and_send 도구 실행 (interface: eth0, filter: "tcp port 80", packet_count: 100)
/home/user/capture.pcap 파일을 분석을 위해 서버로 전송해줘
→ send_pcap_file 도구 실행서버 사용 예
최근 1시간 동안의 패킷을 분석해줘
→ analyze_packets 도구 실행
192.168.1.100 IP의 위협 정보를 알려줘
→ query_threats 도구 실행
오늘 패킷 통계를 보여줘 (프로토콜 분포, Top Talkers)
→ get_statistics 도구 실행
SMB 취약점을 검색해줘
→ search_cve 도구 실행 (keyword: "SMB")
포트 스캔 관련 MITRE ATT&CK 기법을 알려줘
→ check_mitre_technique 도구 실행 (keyword: "port scanning")
최근 HIGH 심각도 위협 목록을 보여줘
→ get_recent_threats 도구 실행 (severity: "HIGH")보안 고려사항
권한 관리
패킷 캡처는 관리자 권한이 필요합니다
최소 권한 원칙을 따르세요
프로덕션 환경에서는 전용 사용자 계정을 사용하세요
데이터 보안
캡처된 패킷에는 민감한 정보가 포함될 수 있습니다
저장된 데이터에 대한 접근 제어를 구현하세요
불필요한 데이터는 정기적으로 삭제하세요
데이터베이스 암호화를 고려하세요
네트워크 보안
RabbitMQ와 PostgreSQL에 대한 접근을 제한하세요
TLS/SSL을 사용하여 통신을 암호화하세요
방화벽 규칙을 적절히 구성하세요
준수 사항
조직의 보안 정책을 준수하세요
법적 요구사항을 확인하세요 (예: GDPR, HIPAA)
패킷 캡처 전에 적절한 승인을 받으세요
기술 스택
구성 요소 | 기술 |
언어 | Python 3.11+ |
MCP SDK | mcp |
데이터베이스 | PostgreSQL 12+ |
메시지 큐 | RabbitMQ 3.8+ |
패킷 캡처 | tcpdump, Scapy |
외부 API | NVD CVE, MITRE ATT&CK, AbuseIPDB |
패키지 관리 | uv |
프로젝트 구조
packet-analyzer-mcp/
├── server/ # 서버 패키지
│ ├── __init__.py
│ ├── server.py # MCP 서버
│ ├── database.py # PostgreSQL 연결
│ ├── message_queue.py # RabbitMQ 컨슈머
│ ├── analyzers.py # 패킷 분석 로직
│ ├── external_apis.py # 외부 API 클라이언트
│ └── README.md # 서버 문서
├── client/ # 클라이언트 패키지
│ ├── __init__.py
│ ├── client.py # MCP 클라이언트
│ ├── packet_capture.py # tcpdump 래퍼
│ ├── message_queue.py # RabbitMQ 프로듀서
│ └── README.md # 클라이언트 문서
├── pyproject.toml # 프로젝트 설정
├── main.py # 기존 엔트리 포인트
└── README.md # 이 파일문제 해결
일반적인 문제
Permission Denied (tcpdump)
sudo 권한 확인
setcap로 권한 부여:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
RabbitMQ 연결 실패
서비스 상태 확인:
sudo systemctl status rabbitmq-server포트 확인:
sudo netstat -tlnp | grep 5672방화벽 규칙 확인
PostgreSQL 연결 실패
서비스 상태 확인:
sudo systemctl status postgresql인증 설정 확인:
/etc/postgresql/.../pg_hba.conf데이터베이스 및 사용자 확인
패킷이 캡처되지 않음
네트워크 트래픽 존재 확인
BPF 필터 구문 확인
인터페이스 이름 확인:
ip link show
디버깅
# RabbitMQ 큐 상태 확인
sudo rabbitmqctl list_queues
# PostgreSQL 연결 테스트
psql -h localhost -U packet_user -d packet_analyzer
# 패킷 캡처 테스트
sudo tcpdump -i any -c 10
# Python 모듈 테스트
python -c "import mcp, asyncpg, pika, scapy.all"성능 최적화
데이터베이스
인덱스가 적절히 생성되었는지 확인
정기적으로 VACUUM 실행
오래된 데이터는 아카이브 또는 삭제
RabbitMQ
메시지 크기 최적화
배치 전송 사용
적절한 QoS 설정
패킷 캡처
BPF 필터로 불필요한 패킷 제외
패킷 수 제한
페이로드 크기 제한
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/choihyuunmin/packet-analyzer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server