Rails를 AI 네이티브로 만드는 방법: Model Context Protocol 활용

Paweł Strzałkowski - Make Rails AI-Ready by Design with the Model Context Protocol

작성자
Ruby on Rails Youtube
발행일
2025년 09월 16일

핵심 요약

  • 1 Model Context Protocol(MCP)은 LLM이 실제 웹 애플리케이션의 동적인 맥락과 기능에 접근할 수 있도록 돕는 개방형 표준입니다.
  • 2 Ruby on Rails는 단일 Gem과 템플릿 추가만으로 MCP 서버로 쉽게 전환될 수 있으며, CRUD 및 사용자 정의 도구를 통해 AI와 연동됩니다.
  • 3 Rails의 유연성과 커뮤니티의 기여 덕분에, 최소한의 노력으로 AI 네이티브 웹사이트를 구축하고 Claude Desktop과 같은 LLM 호스트와 연동하는 것이 가능합니다.

도입

본 발표는 2025년의 미래를 상상하며 시작됩니다. 사용자가 LLM 챗봇을 통해 여행 웹사이트에 접속하여 '7월 중순 스페인에서 낭만적인 주말을 보내고 싶고, 5성급 호텔을 예약해 달라. 날씨는 좋아야 한다'고 요청하면, LLM이 이를 처리하고 예약 확인 이메일을 보내는 시나리오를 제시합니다. 이러한 AI 기반 상호작용을 현실화하기 위해 Model Context Protocol(MCP)이 도입되었으며, 특히 Ruby on Rails 애플리케이션을 AI 네이티브로 설계하는 방법을 소개합니다. 발표자는 Visuality의 CTO인 Pavl Strokovski이며, Rails의 유연성을 강조합니다.

LLM과 실제 애플리케이션의 연결 문제

대규모 언어 모델(LLM)은 폭발적인 성장을 이루었지만, 기존 웹 애플리케이션의 실시간 데이터 및 기능에 직접 접근할 수 없는 근본적인 한계를 지닙니다. 이는 LLM이 실제 세계의 맥락 없이 일반적인 응답만 제공하게 하여, ‘유럽 낭만 여행 예약’과 같은 실제 세계 상호작용 프롬프트의 성공 가능성을 낮춥니다. 기존에는 LLM과 API 엔드포인트 간의 번역 계층을 구축하여 이 문제를 해결했지만, 이는 M*N 통합 문제로 이어져 확장성이 떨어지고 AI 네이티브 솔루션과는 거리가 멀었습니다.

Model Context Protocol (MCP) 소개

Model Context Protocol(MCP)은 LLM에 실시간의 동적이고 최신 맥락을 제공하기 위한 개방형 표준입니다. 2023년 Anthropic에 의해 소개된 후 Google, OpenAI 등 주요 기업들의 지지를 받으며 빠르게 확산되었습니다. MCP는 LLM이 실제 애플리케이션의 기능을 호출하고 데이터를 활용할 수 있도록 돕습니다.

MCP의 핵심 구성 요소는 다음과 같습니다: * MCP 호스트 (MCP Host): 사용자 대면 애플리케이션(예: ChatGPT, Claude AI)으로, LLM과 통신하며 MCP 서버로부터 맥락을 가져와 프롬프트를 보강합니다. * MCP 서버 (MCP Server): LLM에 추가 맥락을 제공하는 애플리케이션으로, HTTP 또는 표준 입출력을 통해 통신합니다. * MCP 프리미티브 (MCP Primitives): 맥락을 구성하는 기본 요소들입니다. * 도구 (Tools): 서버가 수행할 수 있는 실행 가능한 기능(예: 날씨 예측, 여행 목록 조회, 게시물 발행). * 리소스 (Resources): LLM에 필요한 데이터(예: 이미지, 로그, 파일). * 프롬프트 (Prompts): MCP 호스트가 서버로부터 받아 사용자에게 보여주는 표준화된 지침.

Rails 애플리케이션에 MCP 적용 및 시연

발표자는 Ruby on Rails 애플리케이션을 MCP 서버로 전환하는 과정을 시연했습니다. 1. Rails 프로젝트 생성 및 템플릿 적용: rails new 명령 후 공식 Ruby SDK와 추가 라우트, 컨트롤러, 설정을 포함하는 템플릿을 적용했습니다. 2. CRUD 도구 스캐폴딩: rails g scaffold Post title:string body:textrails g scaffold Comment post:references content:text 명령을 통해 게시물과 댓글 모델을 생성하고, 각 CRUD 작업에 해당하는 MCP 도구를 자동으로 스캐폴딩했습니다. 3. MCP Inspector를 통한 확인: MCP Inspector 도구를 사용하여 Rails 서버가 MCP 서버로 올바르게 작동하며, 스캐폴딩된 도구들이 정상적으로 노출되는 것을 확인했습니다. 4. Hotwire 통합: 실시간 업데이트를 위해 Hotwire를 추가하여, LLM을 통해 생성되거나 수정된 게시물과 댓글이 즉시 UI에 반영되도록 했습니다. 5. 프로덕션 배포 및 Claude Desktop 연동: Camal을 사용하여 Rails 애플리케이션을 프로덕션 환경에 배포한 후, Claude Desktop과 연결하여 LLM이 실제 Rails 애플리케이션의 MCP 도구를 사용하여 게시물 생성, 댓글 작성, 게시물 삭제, 댓글 업데이트 등의 작업을 수행하는 과정을 실시간으로 시연했습니다. 6. 커스텀 도구 생성: rails g mcp_tool check_weather_tool location:string 명령으로 사용자 정의 check_weather_tool을 생성하고, 외부 날씨 API와 연동하여 두 도시의 날씨를 비교하는 게시물을 작성하는 복합적인 기능을 구현했습니다.

이 시연을 통해 Rails가 AI 네이티브 애플리케이션을 구축하는 데 얼마나 유연하고 강력한지 입증했습니다.

결론

결론적으로, Rails는 본질적으로 AI에 대비되어 있습니다. MCP와 같은 새로운 프로토콜에 적응하기 위해 필요한 것은 단 하나의 Gem과 몇 가지 추가 설정을 포함하는 작은 템플릿뿐입니다. 이는 Rails의 높은 유연성과 확장성 덕분이며, 오픈 소스 커뮤니티의 기여(fast MCP, Action MCP, Ruby MCP client, 공식 Ruby SDK 등)가 이러한 통합을 가능하게 했습니다. 비록 초기에는 CRUD 기반 도구로 시작하지만, 더 복잡한 기능을 담은 도구를 개발함으로써 LLM이 실제 애플리케이션을 제어하는 강력한 시너지를 창출할 수 있습니다. 발표자는 개발자들에게 창의력을 발휘하여 Rails의 잠재력을 최대한 활용할 것을 당부하며, Rails가 AI 시대에도 여전히 강력한 도구임을 강조합니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!