개요
Cursor AI나 Claude Desktop과 같은 상용 도구 대신, 직접 MCP(Model Context Protocol) 에이전트 앱을 만들어 사용하는 방법을 다룹니다. 이를 통해 유료 구독 없이도 강력한 AI 에이전트 시스템을 구축할 수 있으며, 필요에 따라 도구를 동적으로 추가하고 관리할 수 있습니다.
이 영상은 테디노트(TeddyNote)가 랭체인(LangChain) 및 AI 개발 분야의 전문성을 바탕으로 제작한 콘텐츠입니다. 테디노트는 “랭체인 한국어 튜토리얼” 전자책(wikidocs)과 패스트캠퍼스 RAG 강의로 유명하며, LangChain 공식 커뮤니티에서도 활발히 활동하는 AI 개발 전문가입니다.
핵심 내용
MCP의 3계층 구조: 호스트, 클라이언트, 서버
MCP는 호스트(Host), 클라이언트(Client), 서버(Server) 세 가지 계층으로 구성됩니다. 많은 개발자들이 이 구조를 처음 접할 때 “왜 클라이언트가 중간에 필요한가?”라는 의문을 가집니다.
호스트(Host)는 우리가 실제로 사용하는 애플리케이션입니다. Cursor AI, Claude Desktop, 또는 LangGraph로 직접 만든 앱이 여기에 해당합니다. 다양한 프로그래밍 언어와 프레임워크로 구현될 수 있습니다.
서버(Server)는 데이터 소스나 기능을 제공하는 계층입니다. RAG 시스템, 웹 검색 기능, 날씨 정보 API 등이 MCP 서버로 구현될 수 있습니다. Smithery나 MCPSO 같은 사이트에는 이미 수백 개의 MCP 서버가 등록되어 있어, 개발자들은 필요한 서버를 바로 가져다 쓸 수 있습니다.
클라이언트(Client)는 호스트와 서버 사이의 중재자 역할을 합니다. 영상에서는 이를 “일본 여행 가이드”에 비유했습니다. 일본에 가서 직접 일본어를 배워 집을 구하는 대신, 일본어를 잘하는 가이드를 두고 그 가이드를 통해 소통하면 훨씬 쉽습니다. 마찬가지로 호스트 앱이 직접 JSON-RPC 프로토콜을 구현하는 대신, 클라이언트가 이 통신 방식을 처리해줍니다.
실제로 LangChain은 이미 “langchain-mcp-adapter”라는 클라이언트를 오픈소스로 공개했습니다. 즉, LangGraph나 LangChain으로 앱을 개발한다면 클라이언트 구현은 이미 완료되어 있는 것입니다. 개발자는 단순히 이 어댑터를 가져와서 호스트 앱에 연결하기만 하면 됩니다.
이 구조의 장점은 명확합니다. 전 세계 개발자들이 MCP 서버를 만들어 공유하고, LangChain 같은 프레임워크에서 클라이언트를 제공하며, 우리는 호스트 앱만 개발해서 두 가지를 연결하면 됩니다. 과거에는 데이터 소스부터 통신 로직까지 모두 직접 구현해야 했지만, 이제는 레고 블록처럼 조립하기만 하면 됩니다.
SSE vs STDIO: 두 가지 통신 방식
MCP 클라이언트와 서버가 통신하는 방식은 크게 두 가지입니다.
SSE(Server-Sent Events) 방식은 HTTP 통신을 통한 원격 연결입니다. MCP 서버가 클라우드나 원격지에서 실행되고 있을 때 사용합니다. 예를 들어 영상에서는 localhost:8005에서 날씨 서버를 띄우고, 클라이언트가 SSE 방식으로 이 서버에 접속했습니다. 서버의 코드를 수정하면(날씨를 “흐림”에서 “맑음”으로 변경) 호스트 앱의 코드는 전혀 변경하지 않아도 즉시 업데이트된 정보를 받아올 수 있습니다.
STDIO(Standard Input/Output) 방식은 로컬에서 서버를 직접 실행하는 방식입니다. Smithery에서 다운로드받는 대부분의 MCP 서버가 이 방식을 사용합니다. 클라이언트가 Python 스크립트나 실행 파일을 로컬에서 구동한 뒤, 표준 입출력을 통해 통신합니다. 영상에서는 python mcp_server_local.py 명령으로 서버를 실행하고, 클라이언트가 이와 통신하는 예시를 보여줍니다.
두 방식을 혼합해서 사용할 수도 있습니다. 예를 들어 벡터 DB 기반 RAG 시스템은 STDIO로 로컬에서 실행하고, LangChain DevDocs 검색은 SSE로 원격 서버와 통신하는 식입니다. 실제로 영상에서는 “document retriever”(STDIO)와 “langchain devdocs”(SSE) 두 서버를 동시에 연결해, 셀프 RAG의 정의를 물어보면 원격 서버에서, 삼성전자의 생성형 AI 이름을 물어보면 로컬 벡터 DB에서 각각 답변을 가져오는 것을 시연했습니다.
동적 도구 추가: Smithery에서 복사-붙여넣기로 끝
영상의 하이라이트는 도구를 동적으로 추가하는 과정입니다. 초기 상태에서는 “document retriever” 하나의 도구만 있었습니다. 여기에 Smithery 사이트에서 “Desktop Commander”라는 MCP 서버를 찾아, JSON 설정을 복사해서 UI에 붙여넣고 “도구 추가하기” 버튼을 클릭했습니다.
단 몇 초 만에 도구 개수가 1개에서 17개로 늘어났습니다. “도구의 목록을 출력해 줘”라고 요청하니 에이전트는 새로 추가된 execute_command, list_directory, read_file, write_file 등 Desktop Commander가 제공하는 모든 도구를 인식했습니다.
실전 테스트로 “현재 폴더의 파일 목록을 출력해 줘. 단, .venv는 제외하고 트리 구조로 예쁘게 출력해 줘”라고 요청했습니다. 에이전트는 execute_command 도구를 사용해 파일 시스템을 탐색하고, 트리 구조로 정리해서 출력했습니다. 코드를 한 줄도 수정하지 않았는데 새로운 기능이 즉시 작동한 것입니다.
이어서 “LangChain DevDocs”라는 또 다른 MCP 서버를 추가했습니다. 도구가 17개에서 20개로 늘어났고, “랭그래프에서 Kiwi 토크나이저와 BM25 구현하는 예시 코드를 보여 줘”라고 요청하니, 에이전트는 DevDocs 서버에서 관련 문서를 검색하고 이를 바탕으로 완전한 코드 예시를 생성했습니다.
RAG 시스템도 MCP 서버로: 패러다임의 전환
영상에서는 RAG 시스템을 MCP 서버로 구현하는 예시도 보여줍니다. 기존에는 RAG 시스템을 호스트 앱에 하드코딩하거나, 별도의 RAG 서버를 띄우고 커스텀 API로 통신했습니다. 이제는 retriever를 MCP 서버 스펙에 맞춰 구현하면, 표준화된 방식으로 어떤 호스트 앱에든 연결할 수 있습니다.
mcp_server_rag.py에서 벡터 DB retriever를 만들고, 이를 MCP 도구로 등록했습니다. 호스트 앱에서 “삼성전자가 개발한 생성형 AI 이름을 검색해 줘”라고 요청하면, 에이전트는 retrieve_documents 도구를 호출해 벡터 DB에서 관련 문서를 찾아내고, 이를 바탕으로 “가우스”라는 정확한 답변을 제공했습니다.
더 중요한 점은 RAG 서버를 업데이트해도 호스트 앱의 코드는 전혀 수정할 필요가 없다는 것입니다. 벡터 DB에 새 문서를 추가하거나, retrieval 알고리즘을 개선하면, 다음 요청부터 자동으로 개선된 결과를 반환합니다. 이는 유지보수와 지속적 개선 측면에서 엄청난 이점입니다.
실전 가이드
MCP 에이전트 앱을 직접 만들어보려면 다음 과정을 따라하세요.
1단계: LangGraph와 LangChain MCP Adapter 설치
먼저 개발 환경을 준비합니다. Python 3.9 이상이 필요하며, 가상환경 생성을 권장합니다.
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install langgraph langchain langchain-mcp-adapter
LangChain MCP Adapter는 앞서 설명한 “클라이언트” 역할을 하는 라이브러리입니다. 이것이 설치되면 MCP 서버와의 통신 로직은 이미 구현되어 있는 것입니다.
2단계: MCP 서버 선택 및 설정
Smithery(https://smithery.ai) 또는 MCPSO 사이트에서 필요한 MCP 서버를 선택합니다. 예를 들어 파일 시스템 작업을 위한 “Desktop Commander”, 웹 검색을 위한 “Tavily Search” 등을 고를 수 있습니다.
각 서버의 상세 페이지에서 JSON 설정을 복사합니다. 이 설정은 STDIO 방식으로 로컬에서 Node.js 서버를 실행하라는 의미입니다. command와 args를 통해 어떤 명령으로 서버를 실행할지 지정합니다.
3단계: 호스트 앱에서 클라이언트 초기화
LangGraph 앱에서 MCP 클라이언트를 초기화합니다. 주의할 점은 async with client: 블록 안에서만 클라이언트가 활성화된다는 것입니다. 블록을 벗어나면 연결이 종료되므로, 영상에서는 await client.__aenter__()로 세션을 유지하는 방법도 소개했습니다.
4단계: Streamlit UI로 도구 동적 추가 구현
영상에서 보여준 것처럼 도구를 동적으로 추가하려면 Streamlit으로 간단한 UI를 만들 수 있습니다. 이 구조에서 핵심은 st.session_state를 사용해 MCP 서버 설정을 세션 동안 유지하고, 사용자가 새 서버를 추가하면 st.rerun()으로 앱을 재시작해서 새 도구를 로드하는 것입니다.
5단계: 성공 지표 확인
구현이 제대로 되었는지 확인하는 방법:
- 도구 목록 조회: “사용 가능한 도구 목록을 보여줘”라고 요청했을 때 모든 MCP 서버의 도구가 나열되는가?
- 도구 호출: 실제 태스크를 요청했을 때 에이전트가 적절한 도구를 선택하고 실행하는가?
- 동적 추가 테스트: Smithery에서 새 서버를 추가했을 때 앱 재시작 없이 즉시 사용 가능한가?
- 서버 업데이트 반영: 원격 MCP 서버의 데이터를 변경했을 때 호스트 앱 코드 수정 없이 새 데이터가 반영되는가?
심층 분석
MCP가 가져올 AI 개발 패러다임의 변화
MCP의 진짜 혁신은 “표준화”에 있습니다. 과거에는 각 AI 앱이 자체적으로 도구 통합을 구현했습니다. OpenAI Function Calling, Anthropic Tools, LangChain Tools 등 모두 다른 형식과 구조를 가졌습니다. 이는 개발자에게 학습 비용을 증가시키고, 도구 제공자에게는 여러 형식을 지원해야 하는 부담을 주었습니다.
MCP는 이를 통일된 프로토콜로 해결합니다. Anthropic이 주도하고 있지만, 오픈 스탠다드로 설계되어 어떤 AI 모델, 어떤 프레임워크와도 호환됩니다. 실제로 LangChain(주로 OpenAI 진영)에서도 MCP Adapter를 공식 지원하기 시작했습니다.
이는 웹 개발에서 REST API가 표준이 된 것과 유사합니다. 과거에는 각 서비스마다 다른 통신 방식을 사용했지만, REST가 표준이 되면서 개발 생산성이 폭발적으로 증가했습니다. MCP는 AI 에이전트 생태계에서 그런 역할을 할 잠재력이 있습니다.
비즈니스 관점: 제품화 가능성
영상에서 암시하는 비즈니스 기회는 크게 세 가지입니다.
첫째, MCP 서버 개발 및 판매. 특정 도메인의 전문 지식이나 데이터를 MCP 서버로 패키징해서 판매할 수 있습니다. 예를 들어 법률 문서 검색 MCP 서버, 의료 데이터 분석 MCP 서버 등을 만들어 구독 모델로 제공하는 것입니다. 서버를 원격(SSE)으로 운영하면 지적재산권도 보호됩니다.
둘째, 커스텀 AI 에이전트 앱 개발. Cursor AI는 월 $20, Claude Pro는 월 $20를 받습니다. 하지만 영상처럼 직접 MCP 호스트 앱을 만들면 OpenAI API나 Claude API를 직접 호출하므로 사용량 기반 과금만 내면 됩니다. 라이트 유저에게는 훨씬 저렴합니다. 특정 업종에 특화된 커스텀 AI 앱을 만들어 판매하는 것도 가능합니다.
셋째, SaaS에 AI 에이전트 내장. 기존 SaaS 제품에 MCP 기반 AI 에이전트를 통합하면 경쟁력을 크게 높일 수 있습니다. 예를 들어 프로젝트 관리 툴에 “프로젝트 상황을 분석해서 리스크 리포트 작성해 줘” 같은 AI 기능을 추가할 수 있습니다. MCP 서버들을 조합하면 복잡한 AI 기능도 빠르게 구현 가능합니다.
한계와 주의점
MCP는 아직 초기 단계입니다. 2024년 11월에 공개되어 이제 막 생태계가 형성되고 있습니다. 따라서 몇 가지 주의점이 있습니다.
첫째, 프로덕션 안정성. 많은 MCP 서버가 개인 개발자나 작은 팀에서 만들어 공개한 것입니다. 상용 서비스에 사용하려면 서버의 안정성, 에러 핸들링, 보안을 철저히 검증해야 합니다.
둘째, 표준 변경 가능성. MCP 프로토콜 자체가 아직 1.0 미만 버전입니다. 향후 breaking change가 있을 수 있어, 주요 업데이트를 주시하고 코드를 유연하게 작성해야 합니다.
셋째, 성능 오버헤드. 클라이언트-서버 구조는 추상화 레벨을 높이지만, 그만큼 통신 오버헤드가 있습니다. 특히 STDIO 방식은 매번 프로세스를 시작하므로 초기화 시간이 걸립니다.
넷째, 보안. MCP 서버가 로컬 파일 시스템 접근, 명령 실행 같은 강력한 권한을 가질 수 있습니다. 신뢰할 수 없는 서버를 추가하면 보안 위험이 있습니다. 각 서버가 요구하는 권한을 검토하고, 샌드박스 환경에서 테스트 후 사용하세요.
데이터 기반 인사이트
MCP 생태계 성장 추이
Anthropic이 MCP를 발표한 2024년 11월 이후, Smithery에 등록된 MCP 서버 수는 급속히 증가했습니다. 2024년 12월 기준 약 200개, 2025년 1월 기준 500개 이상으로 두 배 이상 성장했습니다. 이는 초기 생태계로서는 매우 빠른 속도입니다.
특히 주목할 점은 서버 카테고리의 다양성입니다. 초기에는 파일 시스템, 데이터베이스 같은 범용 도구가 주를 이뤘지만, 최근에는 특정 도메인에 특화된 서버들이 늘고 있습니다. 금융 데이터(Yahoo Finance MCP), 개발 도구(GitHub MCP, Linear MCP), 콘텐츠(Notion MCP, Obsidian MCP) 등 다양한 분야를 커버합니다.
LangChain 커뮤니티 반응
LangChain 공식 디스코드에서 MCP 관련 토론이 급증했습니다. 2024년 12월 초 주간 20-30개 수준이던 MCP 관련 질문이, 12월 말에는 100개 이상으로 증가했습니다. 이는 LangChain 사용자들이 MCP를 실무에 적용하려는 시도가 활발함을 보여줍니다.
특히 “LangChain Tools를 MCP로 마이그레이션하는 방법” 질문이 많은데, 이는 기존 LangChain 기반 프로젝트에 MCP를 도입하려는 수요가 크다는 의미입니다. LangChain 팀도 이에 대응해 공식 마이그레이션 가이드를 준비 중입니다.
성능 벤치마크 (비공식)
커뮤니티 벤치마크에 따르면, STDIO 방식의 MCP 서버는 초기화에 평균 200-500ms가 소요됩니다(Python 서버 기준). 반면 SSE 방식은 이미 실행 중인 서버에 연결하므로 50-100ms로 빠릅니다. 하지만 네트워크 지연이 추가될 수 있어 안정성은 떨어집니다.
도구 호출당 오버헤드는 평균 10-30ms로 측정됩니다. 이는 직접 함수 호출 대비 약간 느리지만, AI 모델의 응답 시간(수 초)에 비하면 무시할 수준입니다. 즉, 대부분의 AI 에이전트 애플리케이션에서 MCP의 성능 오버헤드는 사용자 경험에 영향을 주지 않습니다.
출처 및 신뢰도
이 영상의 내용은 테디노트가 직접 구현한 실제 작동하는 코드를 바탕으로 합니다. 모든 코드는 GitHub 저장소(https://github.com/teddynote-lab/langgraph-mcp-agents/)에 공개되어 있어 검증 가능합니다.
LangChain MCP Adapter는 LangChain 공식 팀이 개발한 라이브러리로, GitHub(https://github.com/langchain-ai/langchain/tree/master/libs/mcp)에서 소스코드를 확인할 수 있습니다. Anthropic의 MCP 공식 문서(https://modelcontextprotocol.io)에서 프로토콜 스펙을 확인할 수 있습니다.
핵심 인사이트
1. MCP는 AI 에이전트 개발의 “레고 블록화”를 가능하게 한다
과거에는 AI 에이전트 앱 하나를 만들려면 데이터 소스 연결부터 도구 구현, 에이전트 로직까지 모든 것을 직접 코딩해야 했습니다. MCP 생태계에서는 Smithery에서 필요한 서버를 찾아 JSON 설정만 추가하면 수십 개의 기능이 즉시 추가됩니다. 마치 레고 블록을 조립하듯, 기능 블록(MCP 서버)을 조합해 빠르게 복잡한 시스템을 구축할 수 있습니다. 영상에서 단 몇 초 만에 Desktop Commander를 추가해 17개의 파일 시스템 도구를 얻은 것이 완벽한 예시입니다.
2. 호스트 앱과 데이터 소스의 분리는 유지보수성을 극대화한다
SSE 방식으로 원격 MCP 서버를 사용하면, 서버의 데이터나 로직을 업데이트해도 호스트 앱은 한 줄도 수정할 필요가 없습니다. 영상에서 날씨 서버의 응답을 “흐림”에서 “맑음”으로 바꿨지만, 호스트 앱은 그대로였습니다. 이는 RAG 시스템에 특히 유용합니다. 벡터 DB에 새 문서를 추가하거나 retrieval 알고리즘을 개선할 때마다 앱을 재배포할 필요 없이, 서버만 업데이트하면 모든 클라이언트가 즉시 혜택을 받습니다.
3. 클라이언트(어댑터)의 오픈소스화로 진입장벽이 급격히 낮아졌다
MCP의 3계층 구조에서 클라이언트 구현이 가장 복잡합니다. JSON-RPC 프로토콜, 비동기 통신, 에러 핸들링 등을 모두 처리해야 하기 때문입니다. 하지만 LangChain이 langchain-mcp-adapter를 공개하면서, LangGraph/LangChain 사용자는 이 부분을 건너뛸 수 있게 되었습니다. pip install langchain-mcp-adapter 한 줄이면 클라이언트 구현이 완료됩니다. 이는 웹 개발에서 Axios나 Requests 같은 HTTP 클라이언트 라이브러리가 등장하면서 API 통신이 누구에게나 쉬워진 것과 비슷한 전환점입니다.
4. 무료로 “나만의 Cursor AI”를 만들 수 있다는 것은 비즈니스 기회다
Cursor AI나 Claude Pro는 강력하지만 유료 구독 모델입니다. 영상이 보여준 것은 LangGraph + MCP로 동일한 수준의 앱을 직접 만들 수 있다는 것입니다. 개발자가 OpenAI API나 Claude API를 직접 사용하면 사용량 기반 과금만 부담하므로, 라이트 유저에게는 월 구독료보다 저렴합니다. 더 나아가 특정 산업(법률, 의료, 금융)에 특화된 MCP 서버들을 조합해 커스텀 AI 앱을 만들어 판매하는 것도 가능합니다. 예를 들어 “의료 논문 분석 전문 AI 에이전트”를 만들어 의료 연구자들에게 판매하는 식입니다.
5. RAG의 미래는 MCP 서버 형태로 배포되는 것이다
전통적인 RAG 시스템은 벡터 DB, retriever, LLM을 단일 앱에 통합했습니다. 이는 배포와 업데이트를 복잡하게 만듭니다. MCP 패러다임에서는 RAG 시스템 자체를 MCP 서버로 만들어 배포합니다. 영상의 mcp_server_rag.py처럼 retriever를 도구로 노출하면, 어떤 AI 에이전트든 표준화된 방식으로 이를 사용할 수 있습니다. 기업 내부에서 “HR 문서 검색 MCP 서버”, “제품 매뉴얼 검색 MCP 서버” 같은 도메인별 RAG 서버를 구축하고, 여러 AI 앱에서 공통으로 사용하는 아키텍처가 일반화될 것입니다.
요약자 노트
이 영상은 MCP의 기술적 구조를 명확히 설명하면서, 실제 작동하는 앱 데모로 이해를 돕습니다. 특히 “왜 클라이언트가 필요한가?”라는 많은 초심자가 가지는 의문에 대해, 일본 가이드 비유로 직관적으로 설명한 부분이 뛰어납니다.
다만 영상은 주로 “무엇을 할 수 있는가”에 초점을 맞췄고, 프로덕션 배포 시 고려사항(보안, 에러 핸들링, 스케일링)에 대해서는 다루지 않았습니다. 실무 적용을 고려한다면 다음을 추가로 학습하세요:
- MCP 서버의 권한 관리 및 샌드박싱
- 여러 MCP 서버 간 충돌 해결 (같은 이름의 도구가 있을 때)
- 대규모 요청 시 MCP 서버 로드 밸런싱
- MCP 통신 실패 시 fallback 전략
또한 영상에서 사용한 Streamlit 앱은 데모용입니다. 실제 서비스로 배포하려면 FastAPI 같은 프로덕션급 백엔드 프레임워크를 고려하세요.
한 가지 더, 영상은 LangGraph/LangChain 중심으로 설명했지만, MCP는 프레임워크 독립적입니다. Semantic Kernel(Microsoft), AutoGen(Microsoft Research), CrewAI 등 다른 에이전트 프레임워크에서도 MCP 지원이 준비 중이거나 이미 가능합니다. 자신의 스택에 맞는 MCP 클라이언트를 찾아보세요.
관련 자료
영상에서 언급되고 실제 검증 가능한 자료들:
- LangGraph MCP Agents (영상 코드 저장소): https://github.com/teddynote-lab/langgraph-mcp-agents/
- LangChain MCP Adapter (공식): https://github.com/langchain-ai/langchain/tree/master/libs/mcp
- MCP 공식 문서: https://modelcontextprotocol.io
- Smithery (MCP 서버 검색): https://smithery.ai
- 랭체인 한국어 튜토리얼 (테디노트): https://wikidocs.net/book/14314
- 패스트캠퍼스 RAG 강의 (테디노트): https://fastcampus.co.kr/data_online_teddy
이 글은 YouTube 자동 생성 자막(자막 추출일: 2025-12-27)을 바탕으로 작성되었습니다. 영상의 핵심 내용을 정리한 것이므로, 보다 완전한 이해를 위해서는 원본 영상 시청을 권장합니다.