LLM의 고립을 깨다
대형 언어 모델(LLM)이 아무리 똑똑해도, 외부 데이터와 도구에 접근할 수 없다면 그 능력은 제한적입니다. 바로 이 문제를 해결하기 위해 Anthropic에서 만든 **Model Context Protocol(MCP)**이 등장했습니다.
이 블로그에서는 MCP의 개념부터, 왜 필요한지, 어떤 기능을 제공하는지, 그리고 LangChain과 함께 실제 예제를 통해 어떻게 MCP를 사용할 수 있는지까지 자세히 다룹니다.
1. MCP란 무엇인가?
MCP(Model Context Protocol)는 Anthropic이 개발한 오픈 소스 프로토콜입니다. 주된 목적은 LLM 기반 애플리케이션이 외부 시스템(데이터, 도구, API 등)과 표준화된 방식으로 연결될 수 있도록 하는 것입니다.
쉽게 말해, AI 에이전트와 외부 리소스 간의 'USB-C' 같은 인터페이스 역할을 수행한다고 볼 수 있습니다.
MCP는 클라이언트-서버 구조를 따릅니다:
- MCP 호스트 (클라이언트): LLM 기반 애플리케이션
- MCP 서버: 데이터 제공자 또는 도구 제공자 역할을 하는 외부 시스템
2. 왜 MCP가 필요한가?
LLM이 가진 본질적인 한계 중 하나는 ‘외부 세계와의 단절’입니다. 아무리 정교하게 학습돼도 최신 데이터나 실시간 정보에 접근하지 못하면 실용성은 떨어지게 됩니다.
이를 해결하기 위한 기존 방법들:
- RAG(Retrieval-Augmented Generation)
- 파인튜닝(Fine-Tuning)
- Web search 기반 툴 연동
그러나 이 방식들은 대부분 커스텀 통합이 필요하고, 보안이나 유지보수 측면에서도 복잡합니다.
MCP는 이런 복잡함을 없애고, 안정적이고 재사용 가능한 통합 방식을 제공합니다.
3. MCP의 주요 특징
✅ 표준화된 연결 구조
MCP는 표준 프로토콜이기 때문에, 하나의 MCP 서버를 만들어두면 다양한 애플리케이션에서 재사용이 가능합니다.
✅ 오픈 소스 기반
누구나 MCP를 확장하고 커스터마이징할 수 있어, 개발자 생태계 중심의 발전이 가능합니다.
✅ 모듈화 & 커뮤니티 생태계
MCP 서버는 모듈 단위로 도구를 정의하고 배포할 수 있어, 하나의 서버에서 다양한 기능을 제공할 수 있습니다.
✅ 보안 중심 설계
세분화된 권한 관리를 통해 보안 문제도 함께 해결할 수 있습니다.
4. LangChain과 함께하는 MCP 실습 예제
이제 실제로 MCP를 LangChain과 어떻게 연동해 사용하는지 알아보겠습니다.
🧪 예제 개요
간단한 수학 연산 도구를 MCP 서버로 만들고, LangChain 기반 AI 에이전트를 통해 "(3 + 5) x 12"라는 문제를 해결하는 예제입니다.
🛠️ 준비 작업
- 가상 환경 생성
python3 -m venv MCP_Demo
source MCP_Demo/bin/activate
- 필수 패키지 설치
pip install langchain-mcp-adapters
- OpenAI API Key 환경 변수 등록
export OPENAI_API_KEY=<your_api_key>
🖥️ MCP 서버 코드 (math_server.py)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Math")
@mcp.tool()
def add(a: int, b: int) -> int:
return a + b
@mcp.tool()
def multiply(a: int, b: int) -> int:
return a * b
if __name__ == "__main__":
mcp.run(transport="stdio")
서버 실행:
python3 math_server.py
🧠 MCP 클라이언트 (LangChain Agent) 코드 (client.py)
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
import asyncio
model = ChatOpenAI(model="gpt-4o")
server_params = StdioServerParameters(
command="python",
args=["math_server.py"],
)
async def run_agent():
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await load_mcp_tools(session)
agent = create_react_agent(model, tools)
agent_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})
return agent_response
if __name__ == "__main__":
result = asyncio.run(run_agent())
print(result)
실행 결과:
The result of (3 + 5) x 12 is 96.
MCP 서버와 LangChain 기반 LLM이 성공적으로 연동되어 도구를 호출하고 계산을 수행한 것을 확인할 수 있습니다.
MCP가 여는 AI의 새로운 지평
MCP는 단순한 프로토콜이 아닙니다. AI 에이전트를 단순한 챗봇이 아닌, 실제로 디지털 환경에 깊이 통합된 ‘지능형 시스템’으로 전환시키는 핵심 도구입니다.
특히 LangChain과의 연동을 통해, 기존보다 훨씬 더 유연하고 확장 가능한 AI 솔루션을 구축할 수 있습니다.
앞으로 MCP 기반의 다양한 MCP 서버들이 생태계를 이루게 되면, 개발자들은 더욱 빠르고 효율적으로 LLM 기반 시스템을 현실 문제에 적용할 수 있게 될 것입니다.
https://cobusgreyling.medium.com/using-langchain-with-model-context-protocol-mcp-e89b87ee3c4c
Using LangChain With Model Context Protocol (MCP)
The Model Context Protocol (MCP) is an open-source protocol developed by Anthropic, focusing on safe and interpretable Generative AI…
cobusgreyling.medium.com
'인공지능' 카테고리의 다른 글
“MCP 서버, 그냥 설치하지 마세요” – 생성형 AI 시대, 개인과 기업을 위한 MCP 보안 가이드 (0) | 2025.04.07 |
---|---|
AI와 도구를 연결하는 새로운 표준, MCP란 무엇인가? – OpenAI도 채택한 ‘핫’한 기술의 모든 것 (0) | 2025.04.07 |
AI가 금융 데이터를 바꾸는 방식: 쿼리 최적화부터 사기 탐지까지 (0) | 2025.04.07 |
“공격자는 하나, 방어자는 모두” – 구글의 사이버 보안 AI 모델 ‘Sec-Gemini v1’이 바꾸는 게임의 법칙 (0) | 2025.04.07 |
넷플릭스가 추천 시스템의 미래를 여는 방법: ‘Foundation Model’의 모든 것 (0) | 2025.04.07 |