1. MCP 서비스 구축 및 기본 구성
Ruby on Rails에서 MCP 서비스 구축은 fast-mcp 젬 설치와 bin/rails generate fast_mcp install 명령으로 시작됩니다. 이 과정에서 config/initializers/mcp.rb 설정 파일과 app/tools, app/resources 디렉터리가 생성되어 애플리케이션의 데이터와 기능을 MCP를 통해 외부에 노출할 준비가 됩니다.
2. 리소스(Resources) 정의 및 데이터 노출 주의사항
리소스는 애플리케이션의 데이터를 외부에 제공하는 역할을 하며, app/resources에 정의됩니다. DSL을 사용하여 엔드포인트와 설명을 명시하고, content 블록 내에서 실제 데이터를 JSON 형태로 반환합니다. 예를 들어, 사용자 정보를 노출할 수 있습니다. 이때 as_json과 같은 메서드를 사용할 경우 사용자 ID, 생성/업데이트 시간 등 민감한 정보가 여과 없이 노출될 수 있으므로, 반드시 노출 범위를 제한하고 필요한 속성만 선택적으로 제공하도록 주의해야 합니다.
3. 도구(Tools) 정의 및 활용의 보안 위험성
도구는 애플리케이션의 특정 기능을 외부에서 실행할 수 있도록 정의됩니다. app/tools에 구현되며, requires로 인자를 지정하고 call 메서드 내에서 실제 로직을 처리합니다. 사용자 생성과 같은 데이터 변경(mutating) 도구는 특히 AI와 연동될 때 매우 위험합니다. AI가 불완전하거나 잘못된 정보를 기반으로 도구를 실행하여 의도치 않은 데이터 생성이나 변경을 초래할 수 있기 때문입니다. 따라서 도구 사용에 대한 철저한 유효성 검사 및 접근 제어가 필수적입니다.
4. MCP 보안 설정 및 활용 시 고려사항
MCP 서비스의 보안은 config/initializers/mcp.rb 파일에서 localhost_only, allowed_origins 설정과 Rails 애플리케이션의 config.hosts 설정을 통해 제어됩니다. fast-mcp는 authentication bearer header token을 통한 인증을 지원하지만, 커스텀 커넥터 사용 시 추가 보안 장치 마련이 필요할 수 있습니다. MCP는 AI 기반의 지능형 애플리케이션 개발에 강력한 도구이지만, 데이터 유출 및 무단 접근과 같은 보안 위험을 항상 염두에 두고 철저한 안전 장치를 마련하는 것이 중요합니다.