FastMCP를 사용하여 Rails 앱을 AI 지원 MCP 서버로 전환하는 방법

Turn Your Rails App into an AI-Ready MCP Server with FastMCP | by Andres Alejandro Coronel Rodrigues | Jul, 2025 | Medium

작성자
RoboRuby
발행일
2025년 07월 14일

핵심 요약

  • 1 FastMCP는 Ruby on Rails 애플리케이션을 AI 에이전트와 상호작용할 수 있는 Model Context Protocol(MCP) 서버로 쉽게 전환할 수 있도록 돕는 Ruby gem입니다.
  • 2 MCP는 언어 모델이 애플리케이션의 도구와 구조화된 방식으로 상호작용할 수 있도록 설계된 개방형 표준으로, 복잡한 커스텀 API나 취약한 JSON 스키마 없이도 통합을 가능하게 합니다.
  • 3 이 가이드는 FastMCP의 설정, 도구 정의 및 테스트 방법을 설명하여 Rails 개발자가 AI 통합을 신속하게 시작할 수 있는 실용적인 기반을 제공합니다.

도입

인공지능 에이전트의 발전과 함께, 이들이 애플리케이션과 원활하게 소통할 필요성이 증대되고 있습니다. 이러한 요구에 부응하기 위해 등장한 것이 바로 Model Context Protocol(MCP)입니다. MCP는 언어 모델이 애플리케이션의 도구와 구조화되고 재사용 가능한 방식으로 상호작용할 수 있도록 지원하는 개방형 표준입니다. Ruby on Rails는 신속한 프로토타이핑에 강점을 가지고 있으며, FastMCP는 이러한 Rails 애플리케이션에 MCP 기능을 손쉽게 추가할 수 있도록 설계된 경량화된 Ruby gem입니다. 본 가이드는 FastMCP를 Rails 프로젝트에 설정하고, 첫 번째 도구를 정의하며, AI 통합을 위한 모든 준비를 마치는 과정을 상세히 안내하여 개발자가 즉시 AI 관련 기능을 구축할 수 있도록 돕는 것을 목표로 합니다.

MCP는 2024년 11월 Anthropic에 의해 개발된 비교적 새로운 표준으로, AI 에이전트가 애플리케이션과 구조화된 방식으로 상호작용할 수 있도록 하는 계층 역할을 합니다. 이는 기존 API 엔드포인트를 언어 모델이 쉽게 이해하고 활용할 수 있는 형식으로 감싸는 개념으로 이해할 수 있습니다. FastMCP는 이러한 MCP를 Ruby on Rails 애플리케이션에 도입하여, 개발자가 복잡한 맞춤형 API를 작성하거나 프롬프트 해킹에 의존하는 대신 명확한 인터페이스를 가진 도구를 정의하고 나머지는 에이전트가 처리하도록 합니다. FastMCP는 Ruby 및 Rails와 자연스럽게 연동되도록 설계되었으며, 도구 정의, 리소스 접근, 입력 유효성 검사, 그리고 HTTP 및 stdio와 같은 다양한 전송 계층을 지원합니다. 또한 Rails 컨벤션을 따르므로 프레임워크와의 충돌 없이 쉽게 통합될 수 있습니다. 현재 프로토콜 자체가 초기 단계이므로 gem 역시 완전히 성숙하지는 않았지만, Ruby on Rails 애플리케이션 내에서 MCP의 작동 방식을 탐색하기에는 충분합니다.

FastMCP를 Rails에 설정하는 과정은 매우 간단합니다. 기존 To-Do 애플리케이션을 예시로, bundle add fast-mcpbin/rails generate fast_mcp:install 명령어를 통해 손쉽게 설치할 수 있습니다. 설치가 완료되면 FastMCP는 Rails 프로젝트에 세 가지 주요 구성 요소를 추가합니다. 첫째, config/initializers/fast_mcp.rb 파일은 미들웨어 구성을 담당하며 인증 토큰, CORS 설정, 경로 접두사 등을 설정할 수 있습니다. 둘째, app/tools 디렉토리는 ApplicationTool 기본 클래스와 도구 정의 예시인 SampleTool을 포함합니다. 셋째, app/resources 디렉토리도 유사하게 ApplicationResourceSampleResource를 포함하여 데이터 노출을 돕습니다. 이 설정을 통해 복잡한 과정 없이 즉시 작동하는 MCP 서버를 가질 수 있으며, npx @modelcontextprotocol/inspector를 사용하여 서버의 도구를 확인하고 직접 테스트할 수 있습니다.

FastMCP를 이용한 도구 개발은 직관적입니다. 예시로, To-Do 목록을 가져오는 GetTodosTool과 To-Do를 생성/업데이트하는 CreateTodoTool을 만들 수 있습니다. GetTodosToolApplicationTool을 상속받아 description 블록에 도구의 기능을 LLM이 이해할 수 있도록 설명하고, call 메서드에 실제 To-Do 목록을 반환하는 로직을 구현합니다. 인수를 사용하는 CreateTodoTool의 경우, arguments 블록을 통해 필수 및 선택적 인수를 정의하고, call 메서드에서 이 인수를 받아 To-Do의 생성 또는 업데이트 로직을 처리합니다. 이렇게 정의된 도구들은 MCP Inspector를 통해 그 기능과 작동을 시각적으로 확인하고 테스트할 수 있습니다.

나아가, 개발 환경을 실제 MCP 클라이언트로 전환하여 프로토콜의 모든 이점을 활용할 수 있습니다. VS Code에서 MCP 서버를 구성함으로써 AI 에이전트가 Rails 앱과 상호작용하는 방식을 직접 경험할 수 있습니다. VS Code의 명령 패널에서 MCP 서버 추가 옵션을 선택하고, HTTP 방식을 통해 http://localhost:3000/mcp/sse 주소로 실행 중인 MCP 서버를 연결합니다. 이후 서버에 이름을 부여하고 현재 Workspace에서만 사용하도록 설정하면, Copilot Chat의 Agent 모드를 사용하여 LLM과 함께 도구를 테스트할 수 있습니다. 최종적으로 브라우저에서 To-Do 애플리케이션을 확인하여 LLM을 통한 변경 사항이 올바르게 반영되었는지 검증할 수 있습니다.

결론

Model Context Protocol은 AI 에이전트가 애플리케이션과 상호작용하는 새로운 강력한 방식을 제시하며, FastMCP는 이러한 기능을 Rails 프로젝트에 손쉽게 통합할 수 있도록 지원합니다. 본 가이드를 통해 FastMCP를 설정하고, 간단한 도구를 생성하며, MCP Inspector와 VS Code의 내장 지원을 활용하여 모든 기능을 테스트하는 과정을 살펴보았습니다. 이는 AI 어시스턴트, 자동화 워크플로우 구축 또는 단순한 실험 등 어떠한 목적이든 관계없이 빠르고 표준화된 AI 통합 기반을 제공합니다. MCP 생태계가 지속적으로 발전함에 따라, Rails 애플리케이션을 MCP-ready 상태로 만드는 것은 미래 지향적인 접근 방식입니다. 물론, 여기에 제시된 코드는 데모 목적으로, 실제 프로덕션 환경에서는 보안, 프롬프트 엔지니어링 및 기타 모범 사례를 추가적으로 고려해야 합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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