1️⃣ MCP(Model Context Protocol)란 무엇인가?
최근 ChatGPT, Gemini와 같은 AI는 물론 DeepSeek, Copilot 등 다양한 LLM 기반 AI의 비약적인 발전과 함께, AI는 일상생활은 물론 업무 환경에서도 필수적인 도구로 자리잡고 있습니다. 저희 팀 역시 이러한 AI를 적극적으로 활용하고 있습니다.
하지만 기존 AI 시스템은 학습된 데이터에 의존하는 특성상, 실시간 정보나 외부 시스템과의 유기적인 연동에는 한계가 있었습니다. API를 통해 일부 데이터에 접근할 수 있었지만, 이는 별도의 개발과 유지관리 비용이 발생하고, 무엇보다 단방향 통신이라는 한계로 인해 지속적인 상호작용이 어렵다는 문제가 있었습니다.
이러한 제약을 극복하고자 등장한 것이 바로 MCP(Model Context Protocol) 입니다. MCP는 AI와 외부 시스템 간의 양방향 실시간 통신을 표준화한 새로운 프로토콜로, AI가 외부 도구 및 데이터를 보다 유연하게 활용할 수 있도록 돕습니다. 특히, 자연어를 기반으로 외부 프로그램을 제어하거나 다양한 시스템을 확장하는 데에 강력한 기반이 됩니다.
2️⃣ ANTHROPIC MCP 아키텍처 구성

2024년 11월, Anthropic은 MCP를 통해 AI와 외부 시스템 간의 통신을 위한 새로운 표준을 제시했습니다. 이 프로토콜은 Claude AI 기반 환경에서 구현되었으며, 다음과 같은 주요 구성 요소로 이루어져 있습니다:
MCP Host : MCP를 통해 데이터에 액세스하려는 Claude Desktop, IDE 또는 AI 도구와 같은 프로그램
여러 MCP Client의 인스턴스 관리
Client 연결 권한과 생명주기를 제어
보안 정책과 동의 요구사항 시행
MCP Client : 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
호스트에 의해 생성되어 Server와 독립적인 연결을 유지
프로토콜 협상 및 기능 교환 처리
양방향으로 프로토콜 메시지를 라우팅
MCP Server : 표준화된 모델 컨텍스트 프로토콜을 통해 각각 특정 기능을 노출하는 경량 프로그램
특화된 컨텍스트와 기능 제공
MCP 기본 요소를 통해 리소스, 도구 및 프롬프트 노출
AI모델과 Data Source 간 브릿지 역할
Local Data Source : MCP 서버가 안전하게 액세스할 수 있는 컴퓨터의 파일, 데이터베이스 및 서비스
Remote Service : MCP 서버가 연결할 수 있는 인터넷(예: API를 통해)을 통해 사용 가능한 외부 시스템
Tools : MCP 서버를 이용해 동작시키고자 하는 도구(예: 메신저, 분석 툴 등)
Anthropic은 MCP를 USB-C 타입에 비유하여 설명합니다. USB-C가 하나의 포트로 다양한 주변 기기와 연결을 가능하게 하는 것처럼, MCP는 오픈 소스 프로토콜로서 AI를 다양한 데이터 소스와 도구에 연결하는 표준화된 방법을 제공합니다. 이를 통해 AI는 더욱 다양한 정보를 활용하고 복잡한 작업을 수행할 수 있게 됩니다.
3️⃣ MCP의 새로운 가능성
MCP는 출시된 지 반년 남짓의 신기술이지만, 2024년 11월 최초 발표 이후 눈에 띄는 진화를 보이고 있습니다. MCP는 AI 모델이 외부 도구, 데이터, 시스템과 유기적으로 상호작용할 수 있도록 설계되어 AI 에이전트의 기능을 획기적으로 확장할 수 있는 기반을 제공합니다.
MCP의 주요 혁신 가능성:
외부 도구 및 데이터와의 심층적 통합
MCP는 AI가 데이터베이스, 파일 시스템, API 등 다양한 외부 자원에 자연스럽게 접근하고 이를 실시간으로 활용할 수 있도록 지원합니다. 이를 통해 AI는 단순한 언어 처리 기능을 넘어 실제 세계의 데이터를 기반으로 복합적인 작업을 수행할 수 있게 됩니다.
AI 에이전트 기능의 확장성 제고
외부 도구를 효과적으로 활용하여 다양한 서비스를 자동화하고 통합함으로써, 더욱 풍부하고 개인화된 사용자 경험을 제공합니다. 이는 AI가 단순한 답변 생성기를 넘어 디지털 협력자로 진화하게 만드는 핵심 인프라 역할을 수행합니다.
개발 효율성의 혁신적 향상
MCP는 복잡한 외부 시스템 통합 과정을 간소화하여, 개발자가 반복적인 API 연결 작업 없이 효율적으로 AI 시스템을 확장할 수 있도록 돕습니다. 개발 시간과 유지보수 비용을 획기적으로 절감할 수 있습니다.
높은 상호운용성과 개방성 확보
MCP는 AI 모델과 외부 시스템 간의 상호 작용을 표준화하여 AI 에이전트의 기능을 확장하고 개발 효율성을 극대화하는 것을 목표로 합니다. 이는 AI가 더욱 다양한 분야에서 활용될 수 있도록 하는 중요한 발걸음이 될 것입니다.
4️⃣ Ghidra MCP 환경 구축 및 동작 확인
MCP의 개념과 가능성을 확인한 후, 실제 연구 업무에 적용 가능한 사례를 찾던 중, 저희 팀이 자주 사용하는 Ghidra와 Binary Ninja에 MCP를 적용한 예제를 확인하였습니다. 본 글에서는 테스트 목적의 MCP 환경 구축 과정을 공유하고자 합니다.
MCP 코드와 Ghidra 플러그인은 아래의 LaurieWired/GhidraMCP github 레포지토리 가이드를 기반으로 진행하였습니다.
※ Windows11 PC와 Ubuntu 24.04.2 를 기반으로 구성했습니다. 클로드 AI를 Windows11 PC에서 사용하고 Ghidra는 Ubuntu 22.04.2에서 사용합니다. 해당 내용은 프로그램이 업데이트됨에 따라서 UI 또는 기능이 변경되어 상이할 수 있습니다.
4.1. 환경 구성 및 필수 프로그램 설치
우선 Windows 11 PC에 Claude Desktop과 Python 패키지를 설치해야 합니다. (Claude Desktop의 계정 연결 과정과 파이썬 설치과정은 다루지 않습니다.)
Claude Desktop 계정 연결을 완료하면 다음과 같은 화면을 볼 수 있습니다.

이후 아래 명령을 이용하여 Python3 패키지 2개를 설치합니다.
python3 -m pip install mcp requests
그다음 Ubuntu 24.04.2에서는 아래의 snap 명령어로 Ghidra 최신 버전을 설치합니다.
sudo snap install ghidra
4.2. Ubuntu 22.04.2 Ghidra MCP 플러그인 적용
LaurieWired/GhidraMCP GitHub 레포지토리의 releases 페이지에서 최신 버전(작성 시점 기준 1.2)을 다운로드합니다.

압축을 해제하면 .zip파일 1개와 .py파일 1개가 있습니다.
.zip 파일은 Ghidra 확장 플러그인, .py 파일은 Claude Desktop에 적용할 코드 입니다.
우선 Ghidra 어플리케이션 실행 후 새로운 프로젝트를 생성하고 분석을 위한 바이너리를 추가합니다.

위 창의 File > Install Extensions에 접근하여 + 버튼 클릭 후 다운로드했던 .zip 파일을 추가하고 Ghidra를 다시 실행합니다.
다시 File > Install Extensions에 접근하여 GhidraMCP가 적용되었는지 확인합니다.


이후 분석을 위한 vuln 바이너리를 더블클릭하여 로드합니다. 아래와 같은 화면을 확인할 수 있으며, Yes와 체크박스를 클릭하여 플러그인을 활성화 합니다.


그 후, 자동 분석을 실행하면 MCP 관련 설정이 적용된 것을 확인할 수 있습니다. MCP 통신을 위한 포트는 Edit > Tool Options > GhidraMCP HTTP Server 메뉴에서 수정 가능합니다.

이 바이너리를 Claude Desktop에서 MCP 설정 후 분석을 진행하겠습니다.
4.3. Claude Desktop에서 MCP 설정
[bridge_mcp_ghidra.py] 파일의 IP를 변경합니다. 기본 설정은 127.0.0.1:8080으로 되어있으나 로컬이 아닌 리모트 환경으로 Ubuntu IP인 192.168.100.3을 입력해야 합니다.
[DEFAULT_GHIDRA_SERVER] 변수를 아래와 같이 수정합니다.

파일 > 설정 > 개발자 에 접근해 하단의 설정 편집을 클릭합니다.

파일 탐색기에서 [claude_desktop_config.json] 파일을 하이라이트로 띄워줍니다. 해당 파일을 더블 클릭하여 수정해야 합니다. Claude Desktop을 설치 후 다른 MCP 또는 개발자 설정을 하지 않았으면 빈 JSON 값이 존재합니다. 여기에 아래 이미지와 같이 다음 설정 값을 추가합니다.
[bridge_mcp_ghidra.py] 파일의 디렉터리 경로와 Ghidra 서버 IP와 포트 설정에 주의해야 합니다. Ubuntu 24.04.2에 설정한 Ghidra MCP 설정에서 포트 정보가 변경되면 해당 스크립트 내용도 변경되어야 합니다.
제 Ubuntu 24.04.2의 IP는 192.168.100.3 이므로 해당 IP를 적용했습니다.
{ "mcpServers": { "ghidra": { "command": "python", "args": [ "/디렉터리 경로/bridge_mcp_ghidra.py", "--ghidra-server", "http://127.0.0.1:8080/" ] } } }

이후 Claude Desktop을 종료 후 다시 실행합니다. 만약 MCP 연결에 문제가 있다면 알람으로 연결에 실패했다고 알려줍니다.
만일을 위해 파일 > 설정 > 개발자 에 들어가면 아래 사진과 같이 GhidraMCP가 동작중으로 확인됩니다.

5️⃣ GhidraMCP 활용하기
모든 설정이 완료되었습니다. 이제 github에 소개된 예제 프롬프트를 실행하겠습니다.
분석 대상은 OS Command Injection 취약점을 포함한 간단한 C 프로그램을 컴파일하여 생성한 [vuln] 바이너리이며, 함수 이름은 A, B, C와 같이 무작위로 지정되어 있습니다.
당 예제 프롬프트는 특정 함수에서 호출되는 모든 서브 함수를 식별하고, 해당 기능에 적합한 이름으로 자동 변경하는 작업을 수행합니다. 테스트는 [main] 함수를 기준으로 실행했으며, 실행 결과는 다음과 같습니다.
※ 실행 중 ‘ghidra 로컬 도구를 허용하시겠습니까?’라는 메시지가 표시될 수 있으며, 허용을 선택하시면 정상적으로 작동합니다.

Claude Desktop 상에서 위와 같은 결과가 출력되었습니다. [func_a], [func_b], [func_c], [func_d], [func_e]에 대해 자동으로 Rename 작업이 수행되었으며, 각 함수의 기능을 분석한 후 해당하는 역할에 따라 이름을 부여했다고 설명하고 있습니다. 이제 Ghidra 상에서 실제로 이름이 변경되었는지 확인해보겠습니다.

각 함수 기능별로 Rename 동작이 완료되었습니다. 이후, 이 바이너리를 대상으로 공격 코드를 작성해 달라는 요청을 한글로 Claude에 전달한 결과는 다음과 같습니다.

해당 결과는 [vuln] 바이너리를 기반으로 자동 생성된 Python 익스플로잇 코드이며, 실제 활용 가능한 수준의 높은 완성도를 보여주고 있습니다. Claude의 무료 버전을 사용하였음에도 불구하고 이와 같은 수준의 결과물이 도출되었으며, 유료 플랜 또는 상위 성능의 LLM을 활용한다면 더욱 정밀하고 정확한 결과를 기대할 수 있을 것입니다.
6️⃣ 마치며
이번 실습을 통해 실제로 MCP 환경을 구성하고, Claude 기반 LLM을 활용해 Ghidra에 분석 요청을 수행하는 전체 흐름을 직접 확인할 수 있었습니다. 현재는 Ghidra와의 연동만 테스트했지만, 향후 다양한 MCP 도구를 추가로 구성한다면 LLM 기반 자동화의 효율성을 비약적으로 향상시킬 수 있을 것으로 기대됩니다.
특히 Claude를 활용한 MCP 결과는 기대 이상으로 만족스러웠습니다. 수작업으로 수행해야 했던 반복적 분석 과정을 단축하고, 함수 분석 결과를 바탕으로 익스플로잇 코드까지 자동 생성하는 등 업무 효율성과 생산성 향상에 실질적인 기여를 확인할 수 있었습니다.
다만, 무료 플랜의 경우 제한된 요청 수, 프롬프트 길이 등의 제약으로 인해 대규모 바이너리나 복잡한 분석 작업에서는 한계가 존재합니다. 이러한 제한은 작업 수행에 지장을 줄 수 있으며, 민감한 분석을 외부 LLM에 의존해야 한다는 점에서 보안성 측면에서도 신중함이 요구됩니다.
이에 따라, 로컬 환경에서 자체적으로 운영 가능한 Llama 등 오픈소스 LLM과 MCP를 연동한다면 이러한 문제점을 효과적으로 극복할 수 있을 것입니다. 외부 의존성을 줄이고 보안성을 확보함과 동시에, 요청 수나 데이터 크기에 제약받지 않고 보다 자유롭고 효율적인 분석 및 자동화가 가능해집니다.
결론적으로, MCP는 단순한 모델 확장을 넘어 AI 기반 실무 자동화의 핵심 인프라로 자리매김할 잠재력을 지니고 있으며, 앞으로의 활용 가능성은 더욱 기대해볼 만합니다.