Model Context Protocol (MCP)은 LLM(거대 언어 모델)이 개발 환경 및 외부 도구와 상호 작용할 수 있도록 설계된 프로토콜입니다. rails-mcp-server 젬은 이 MCP의 Ruby 구현으로, LLM이 Rails 프로젝트와 직접 상호 작용하도록 지원합니다. 이 젬을 Claude Code 또는 Copilot과 같은 AI 에이전트와 함께 설정하면, 모델은 애플리케이션의 아키텍처에 대한 훨씬 더 많은 컨텍스트를 확보하게 되어 AI 기반 개발과 관련된 불필요한 추측과 비효율성을 크게 줄일 수 있습니다.
설치
rails-mcp-server 젬은 다른 Ruby 젬과 마찬가지로 간단하게 설치됩니다. 터미널을 열고 다음 명령어를 실행합니다.
bash
gem install rails-mcp-server
주의: 이 젬은 프로젝트 디렉토리에 설치하거나 Rails Gemfile에 추가하지 않아야 합니다. 여러 프로젝트에서 전역적으로 설치 및 구성하여 사용하도록 설계되었습니다.
설정
서버를 처음 실행하면 젬이 Rails 프로젝트에 접근할 수 있도록 구성할 수 있습니다. 구성 파일의 위치는 운영 체제에 따라 다릅니다.
-
macOS:
$XDG_CONFIG_HOME/rails-mcp또는$XDG_CONFIG_HOME이 설정되지 않은 경우~/.config/rails-mcp -
Windows:
%APPDATA%\rails-mcp
서버가 처음 실행될 때 이 디렉토리들이 생성됩니다.
Rails MCP 서버 실행
서버는 두 가지 모드로 실행될 수 있으나, 본 문서에서는 HTTP 모드에 중점을 둡니다. HTTP 모드는 웹 애플리케이션에 적합한 JSON-RPC 및 Server-Sent Events (SSE) 엔드포인트를 제공하는 HTTP 서버로 작동합니다.
-
기본 포트(6029)로 시작:
bash rails-mcp-server --mode http -
사용자 지정 포트로 시작:
bash rails-mcp-server --mode http -p 8080
HTTP 모드에서 서버는 다음 엔드포인트로 접근할 수 있습니다:
-
JSON-RPC 엔드포인트:
http://localhost:<port>/mcp/messages -
SSE 엔드포인트:
http://localhost:<port>/mcp/sse
서버 실행 시 구성 디렉토리에 projects.yml 파일이 생성됩니다. Rails 프로젝트를 포함하려면 프로젝트 이름과 디렉토리 경로를 제공하면 됩니다.
yaml
# ~/.config/rails-mcp/projects.yml
test_app: "~/projects/test_app"
AI 도구 연동
-
Claude Code 연동:
claude/config.json에 다음을 추가합니다.json { "mcpServers": { "railsMcpServer": { "command": "ruby", "args": ["/full/path/to/rails-mcp-server/exe/rails-mcp-server"] } } }rails-mcp-server실행 파일의 전체 경로는which rails-mcp-server명령어로 찾을 수 있습니다. 설정 적용을 위해 Claude Code 세션을 다시 시작해야 합니다. -
Copilot 연동:
.vscode/mcp.json에 다음을 추가합니다.json { "servers": { "railsMcpServer": { "command": "ruby", "args": ["/full/path/to/rails-mcp-server/exe/rails-mcp-server"] } } }마찬가지로which rails-mcp-server명령어를 사용하여 실행 파일 경로를 확인합니다.
Rails MCP 서버 활용
일단 설정되면, AI 어시스턴트는 제공된 도구를 사용하여 Rails 프로젝트와 상호 작용할 수 있습니다. LLM 채팅에서 도구 이름을 직접 언급할 필요 없이 자연어로 참조할 수 있습니다. 예를 들어, “load the Turbo guides and then show me how to refactor my blog feed with turbo streams”와 같이 요청할 수 있습니다.
MCP 도구를 사용하기 전에, projects.yml에 포함된 프로젝트 이름으로 MCP에 프로젝트 전환을 지시해야 합니다.
다음은 LLM 채팅에서 사용할 수 있는 몇 가지 도구와 프롬프트 예시입니다.
-
project_info:=> break down each of the 3rd party integrations used in the project -
get_routes:=> which routes are being used for the messaging endpoints? -
analyze_models:=> how is the user model associated with the blogpost model?
더 많은 컨텍스트 제공
MCP 서버가 AI 어시스턴트에게 코드 구조에 대한 접근 권한을 제공하지만, 작업 중인 내용에 대한 더 많은 컨텍스트를 제공하면 더 나은 제안을 생성하는 데 도움이 됩니다. 다음 사항을 언급하는 것이 좋습니다.
-
작업하려는 특정 파일
-
구현하려는 기능 또는 해결하려는 버그에 대한 명확한 설명
-
아키텍처 또는 물류 관련 제약 사항