LLM이 등장하고 MCP라는게 계속 보이기 시작한다. MCP를 이용해 LLM을 이곳 저곳 붙여서 쓰곤 하는데 MCP라는게 도대체 뭘까?
MCP는 Model Context Protocol(모델 컨텍스트 프로토콜)의 약자로, AI 모델이 외부 데이터 소스나 도구와 표준화된 방식으로 연결되고 상호작용할 수 있게 해주는 오픈 소스 통신 규약(프로토콜)이다.

LLM이 똑똑해져도, 기본적으로는 대화창 안에서 텍스트만 보고 판단한다는 한계가 있다.
그래서 실제 업무(코드 분석, 리버싱, 트래픽 분석, 문서 검색 등)에서는 LLM이 외부 데이터(파일/DB/로그/PCAP) 를 읽거나, 외부 도구(IDA, Ghidra, Wireshark, Git, 브라우저 자동화 등) 를 실행할 수 있으면 정말 편리할 것이다.
문제는 여기서부터다.
도구마다 API가 제각각이고, LLM 앱/플랫폼마다 “툴 호출 방식”이 달라서 매번 1:1 맞춤 연동을 해야 한다. (툴이 10개, 모델/앱이 5개면 조합이 50개…)
MCP는 이걸 표준화된 연결 방식으로 정리해서, 도구/데이터를 “MCP 서버”로 한 번만 노출하면 여러 LLM 앱이 같은 방식으로 붙어 쓸 수 있게 만든다. 공식 문서에서도 MCP를 “AI 앱의 USB-C 포트” 같은 개념으로 설명한다.

MCP는 크게 두 가지를 표준화한다.
대화 컨텍스트를 공급하는 방식
예: “이 저장소의 특정 파일”, “이 PCAP의 특정 스트림”, “이 바이너리의 함수 목록” 같은 컨텍스트를 리소스(resource) 로 제공
도구를 호출하는 방식
예: “Wireshark 필터 적용”, “Ghidra에서 디컴파일”, “IDA에서 함수 리네임” 같은 동작을 툴(tool) 로 제공
그리고 MCP 서버는 보통 다음 3종류의 기능을 노출한다는 식으로 개념이 잡혀 있다 -> Resources / Tools / Prompts
Host(호스트): LLM이 들어있는 앱 (예: 데스크톱 앱, IDE, 챗 앱, 에이전트 런타임)
MCP Client(클라이언트): 호스트 내부에서 MCP 서버와 통신하는 모듈
MCP Server(서버): 외부 시스템/도구를 감싸서 표준 인터페이스로 제공하는 쪽
통신은 보통 JSON-RPC 기반으로 이루어지고, 로컬에선 stdio, 원격에선 SSE/HTTP 계열 전송 방식을 쓴다
사용자가 질문한다: “이 PCAP에서 C2 후보 보여줘”
LLM은 “Wireshark 필터/통계 기능” 같은 툴 사용이 필요하다고 판단
호스트가 MCP 클라이언트를 통해 해당 MCP 서버의 툴을 호출
MCP 서버가 실제 Wireshark/스크립트를 실행하고 결과를 반환
LLM은 그 결과를 바탕으로 최종 답변을 정리

내가 사용하는 도구나 프로그램등에 MCP를 붙여서 사용하고 싶다! 어떻게 해야할까?
-> 대부분 이미 누군가 잘 만들어놓은 MCP 서버가 있다... 가져다 쓰자
IDA에서 MCP를 붙여서 리버싱을 LLM으로 한다면 어떨까? 정말 편리할 것이다. 알아서 바이너리를 분석하고 함수/변수들의 이름을 지정하고 주석을 달아주고 이 모든 과정들을 LLM이 자동으로 해준다.
참고로 IDA에서 MCP를 이용하기 위해서는 IDA Pro (8.3 or higher, 9 recommended)이며 Free 는 지원하지 않는다... IDA Pro가 없다면 ghidra를 쓰도록 하자 ghidraMCP도 있다!
ghidra MCP
https://github.com/LaurieWired/GhidraMCP
IDA MCP 설치 및 실행 과정이다. 간단하다...
pip uninstall ida-pro-mcp
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
ida-pro-mcp --install
위에 명령어를 통해 설치를 완료했다면 IDA를 키고 바이너리를 연 뒤
Edit - Plugin - MCP 선택

Claude를 키고 파일 - 설정을 들어간다.

개발자를 선택해 ida-pro-mcp가 추가되어 있는지 확인하자! 위에 명령어를 쳐서 설치를 했는데 안뜬다면 Claude를 껏다 켜주자

자 이러면 설치가 끝났다. 인제 Claude에 prompt를 작성하기만 하면 된다.
ida 연결이 되었는지 확인해보자

연결이 되었다! 해당 바이너리에 함수하나를 분석하라고 시켜보자


프롬프트만 작성하고 손가락하나 까딱하지 않았는데 알아서 주석도 달고 네이밍도 하고 요약도 해준다...


이외에도 다양한 MCP 서버들이 있다. 몇가지 재밌고 유용한 것을 말해보자면
Wireshark MCP
https://github.com/0xKoda/WireMCP
wireshark와 tshark에 mcp를 붙여서 이용할 수 있다... 패킷 분석을 MCP를 이용해 LLM과 함께 해보자
Notion MCP
https://developers.notion.com/docs/mcp
노션은 공식적으로 mcp를 지원한다. 문서정리? LLM과 함께 해보는건 어떨까?
이것 말고도 정말 다양한 MCP 서버들이 있다. 각종 DB부터 우리가 일상적으로 사용하는 여러가지 도구들까지...