My AI Smarteasy 사용자 정의 AI 에이전트 – 일타 강사 저스틴 – Integrating Model Context Protocol Tools with Semantic Kernel: A Step-by-Step Guide
오늘 우리가 함께 파헤쳐 볼 자료는 바로 Microsoft Dev Blogs에 Mark Wallace라는 분이 2025년 3월 5일에 작성한 “Integrating Model Context Protocol Tools with Semantic Kernel: A Step-by-Step Guide”라는 웹페이지 글입니다. 이 글은 AI 모델과 다양한 도구, 데이터 소스를 연결하는 아주 중요한 기술인 ‘MCP(Model Context Protocol)’를 ‘시맨틱 커널(Semantic Kernel)’이라는 개발 프레임워크와 어떻게 연동하는지에 대한 상세한 가이드입니다. 자, 그럼 집중!
일타 강사 저스틴의 특강: LLM의 ‘손발’을 확장하는 마법, MCP + 시맨틱 커널 통합!
여러분, AI, 특히 거대 언어 모델(LLM)이 아무리 똑똑해도 결국은 ‘언어’를 다루는 친구들이죠. 실제 세상의 데이터를 직접 만지거나, 특정 도구를 실행하는 건 다른 이야기였습니다. 그런데 오늘 이 글은 바로 그 한계를 뛰어넘는 방법을 알려주고 있어요. 바로 ‘모델 컨텍스트 프로토콜(MCP)’ 도구를 ‘시맨틱 커널’과 통합하는 방법입니다. 이거 정말 별표 세 개! 돼지꼬리 땡땡! 할 중요한 내용입니다. 왜 중요하냐고요?
1. MCP(Model Context Protocol), LLM의 ‘눈과 손’을 만들어주다!
이 글의 저자 Mark Wallace는 MCP를 “애플리케이션이 LLM에 컨텍스트를 제공하는 방식을 표준화하는 오픈 프로토콜”이라고 설명합니다. 쉽게 말해, AI 모델이 다양한 데이터 소스나 외부 도구와 ‘대화’하고 ‘작동’하는 방식을 표준화하는 약속이라고 생각하시면 됩니다.
MCP는 AI 모델이 데이터 및 도구와 상호작용하는 방식을 향상시켜 상호 운용성, 유연성, 그리고 향상된 맥락 이해를 촉진합니다. 데이터 통합, 지식 관리 등 다양한 영역에 적용될 수 있는, 아주 중요한 AI 솔루션의 구성 요소라고 저자는 강조합니다. LLM이 텍스트만 처리하는 게 아니라, 실제로 외부 시스템과 연동하여 특정 작업을 수행할 수 있도록 돕는 ‘다리’ 역할을 하는 거죠.
2. 시맨틱 커널과의 통합, 그 핵심 원리!
이 글에서 설명하는 예제는 AI 모델을 MCP 도구에 ‘함수 호출(function calling)’을 통해 연결하는 데 중점을 둡니다. MCP는 클라이언트-서버 아키텍처를 따르는데, 여기서 호스트 애플리케이션(예: IDE 또는 AI 도구)이 MCP 클라이언트를 사용하여 MCP 서버에 연결됩니다.
- MCP 호스트: MCP를 통해 데이터에 접근하려는 프로그램 (예: IDE, AI 도구).
- MCP 클라이언트: 서버와 1:1 연결을 유지하는 프로토콜 클라이언트.
- MCP 서버: 표준화된 MCP를 통해 특정 기능을 노출하는 가벼운 프로그램.
자, 이 글의 저자는 시맨틱 커널 애플리케이션에서 MCP 도구를 사용하는 과정을 단계별로 보여줍니다.
단계 1: OpenAI 챗 완성 기능으로 커널 구축하기 예제에서는 OpenAI를 사용하며, 유효한 API 키가 필요합니다. 시맨틱 커널 인스턴스를 만들고 OpenAI 챗 완성 서비스를 추가하는 기본적인 설정 과정입니다. gpt-4o
모델을 사용한다고 명시하고 있죠.
단계 2: MCP 클라이언트 생성하기 (GitHub 서버와 연결!) 저자는 GitHub 서버에 연결하도록 구성된 MCP 클라이언트를 생성하는 코드를 보여줍니다. 여기서 재미있는 점은 npx
명령어를 사용하여 GitHub 서버를 시작한다는 겁니다. npx
는 Node.js와 함께 제공되는 명령줄 도구인데, 전역으로 설치할 필요 없이 Node.js 패키지를 직접 실행할 때 사용됩니다. 즉, 여러분의 시스템에 GitHub 서버를 따로 설치하지 않고도, 필요한 순간에 띄워서 MCP를 통해 연결할 수 있다는 거죠.
단계 3: MCP 도구 목록 가져오기 (GitHub가 뭘 할 수 있나?) MCP 서버는 클라이언트에게 실행 가능한 기능을 ‘도구(tools)’ 형태로 노출합니다. LLM은 이 도구들을 호출하여 외부 시스템과 상호작용하고, 계산을 수행하며, 실제 세상에서 어떤 ‘행동’을 취할 수 있게 됩니다.
저자가 예시로 보여주는 GitHub MCP 서버는 다음과 같은 다양한 도구들을 노출합니다.
create_or_update_file
: GitHub 저장소에 파일 생성/업데이트.search_repositories
: GitHub 저장소 검색.create_repository
: 새 저장소 생성.get_file_contents
: 파일/디렉토리 내용 가져오기.push_files
: 여러 파일을 단일 커밋으로 푸시.create_issue
: 이슈 생성.create_pull_request
: 풀 리퀘스트 생성.- … 그리고 검색, 커밋 목록 가져오기, 이슈 업데이트 등 수많은 실제 GitHub 작업들을 수행할 수 있는 도구들이 나열되어 있습니다.
여러분, LLM이 단순히 GitHub에 대한 정보를 ‘말’하는 것을 넘어, 실제로 GitHub에 파일을 생성하고, 이슈를 만들고, 커밋을 요약하는 등의 ‘행동’을 할 수 있게 된다는 의미입니다. 이게 바로 MCP의 힘이에요!
단계 4: MCP 도구를 커널 함수로 변환하기 시맨틱 커널은 LLM이 호출할 수 있는 도구를 나타내기 위해 KernelFunction
이라는 추상화 개념을 제공합니다. MCP 서버의 도구들을 시맨틱 커널과 함께 사용하려면, 각 MCP 도구를 KernelFunction
으로 변환하는 과정이 필요합니다. 저자는 aiFunction.AsKernelFunction()
이라는 메서드를 사용하여 MCP 도구를 시맨틱 커널 함수로 변환하고 커널에 추가하는 코드를 보여줍니다. 이 기능은 Microsoft.SemanticKernel.Core
패키지에 추가되었다고 하네요.
단계 5: 함수 호출(Function Calling)을 통해 MCP 도구 호출하기 MCP 도구들이 시맨틱 커널 함수로 변환되어 커널에 추가되면, 이제 이들은 함수 호출 메커니즘을 통해 LLM에 의해 사용될 수 있습니다. 저자는 OpenAIPromptExecutionSettings
에서 FunctionChoiceBehavior.Auto
를 사용하여 자동 함수 호출을 활성화합니다.
예시를 볼까요? “microsoft/semantic-kernel 저장소의 마지막 네 커밋을 요약해 줘?”라는 프롬프트를 입력하면, 시맨틱 커널은 GitHub MCP 서버의 list_commits
도구를 자동으로 호출하고, 그 결과를 바탕으로 사용자에게 깔끔하게 요약된 커밋 정보를 제공합니다. 각 커밋의 제목, 설명, 심지어 GitHub 링크까지 포함해서 말이죠. 자, 이 부분은 별표 세 개! 코딩 없이 자연어 질문만으로 실제 시스템과 연동하는 마법이 일어나는 순간입니다!
단계 6: 에이전트를 통해 MCP 도구 호출하기 MCP 도구들은 에이전트(Agent)에 의해서도 호출될 수 있습니다. 저자는 MCP 도구가 이미 추가된 동일한 커널 인스턴스를 재사용하여 ‘GitHubAgent’라는 에이전트를 정의합니다. 이 에이전트에게 “GitHub 저장소에 대한 질문에 답하라”는 지시를 내린 후, 동일한 “microsoft/semantic-kernel 저장소의 마지막 네 커밋을 요약해 줘?”라는 메시지를 보내면, 에이전트가 MCP 도구를 활용하여 응답을 제공합니다. 이는 LLM이 단순히 챗봇으로서 정보를 제공하는 것을 넘어, 특정 목적을 가진 ‘에이전트’로서 외부 도구를 활용해 능동적으로 작업을 수행할 수 있음을 보여줍니다.
3. MCP, 플러그인 개념을 대체하는가? (저스틴의 심화 분석!)
흥미로운 점은, 이 글의 댓글 섹션에서 “MCP가 플러그인 개념을 대체하는가?”라는 질문이 나옵니다. 저자인 Mark Wallace는 “MCP는 플러그인 개념을 대체하는 것이 아니라, MCP 도구들이 플러그인으로 소비될 수 있다”고 명확히 답합니다. 오히려 MCP 도구들은 LLM이 소비하도록 특별히 설계되었기 때문에 함수 호출 시나리오에서 향상된 신뢰성을 제공한다고 덧붙입니다. 또한, GitHub MCP 서버의 도구들은 REST 엔드포인트로 제공되는 기능의 일부만을 나타낸다고 언급하며, LLM이 추론하기에 적합하도록 설계된 도구의 장점을 강조하고 있습니다.
4. 앞으로의 계획은? (미래를 엿보다!)
저자는 앞으로 시맨틱 커널 기반 애플리케이션에서 MCP 프롬프트와 리소스를 사용하는 방법, 그리고 시맨틱 커널을 사용하여 MCP 서버를 구축하고 커널 함수, 프롬프트, 메모리를 MCP를 통해 노출하는 방법에 대한 예제를 구축할 계획이라고 밝힙니다. 이는 MCP의 활용 가능성이 무궁무진하며, 시맨틱 커널과 함께 더욱 발전할 것임을 시사합니다.
자, 오늘 강의 어떠셨나요? Mark Wallace의 이 글이 말하고자 하는 핵심은 명확합니다. ‘모델 컨텍스트 프로토콜(MCP)’은 AI 모델, 특히 LLM이 단순한 언어 처리 기계를 넘어 실제 세상의 도구와 데이터를 능동적으로 활용하는 ‘행동하는 AI’가 될 수 있도록 돕는 핵심 기술이라는 겁니다. 그리고 ‘시맨틱 커널’은 개발자들이 이러한 MCP 도구를 쉽고 유연하게 통합하여, LLM의 능력을 극대화할 수 있는 강력한 프레임워크를 제공한다는 것이죠.