Rails MCP Server

Rails MCP Server

site icon
2025.04.14 82
RubyRails 开发代码分析项目探索开发效率
Rails MCP Server 是一个基于 Ruby 实现的 Model Context Protocol (MCP) 服务器,专为 Rails 项目设计。它允许大型语言模型 (LLMs) 通过 Model Context Protocol 与 Rails 项目进行交互,提供代码分析、项目探索和开发辅助功能。
View on GitHub

Overview

基本能力

产品定位

Rails MCP Server 是一个专为 Rails 项目设计的 MCP 服务器,旨在为 AI 模型提供与 Rails 项目交互的能力,支持代码分析、项目探索和开发辅助。

核心功能

  • 管理多个 Rails 项目
  • 浏览项目文件和结构
  • 查看 Rails 路由
  • 检查模型信息
  • 获取数据库架构信息
  • 遵循 Model Context Protocol 标准

适用场景

  • AI 辅助 Rails 项目开发
  • 代码分析和探索
  • 项目结构理解
  • 数据库架构查看
  • 路由信息获取

工具列表

  1. switch_project: 切换当前活动的 Rails 项目。
  2. get_project_info: 获取当前 Rails 项目的信息,包括版本、目录结构和配置。
  3. list_files: 列出 Rails 项目中的文件,支持目录路径和模式过滤。
  4. get_file: 获取项目中指定文件的内容,支持语法高亮。
  5. get_routes: 获取 Rails 项目中定义的所有路由。
  6. get_models: 获取 Rails 项目中模型的信息,包括架构、关联和定义。
  7. get_schema: 获取 Rails 项目的数据库架构或特定表的架构。

常见问题解答

  • Ruby 版本问题: 如果使用 Ruby 版本管理器(如 rbenv 或 RVM),可能需要创建符号链接以确保使用正确的 Ruby 版本。
  • 配置问题: 确保 projects.yml 文件正确配置了项目路径。
  • Claude Desktop 集成: 使用 rails-mcp-setup-claude 脚本可以自动完成配置。

使用教程

使用依赖

  • 确保已安装 Ruby 环境。

安装教程

  1. 安装 gem:
gem install rails-mcp-server
  1. 安装完成后,rails-mcp-serverrails-mcp-setup-claude 可执行文件将可用。

配置

  1. 编辑 projects.yml 文件以包含你的 Rails 项目:
store: "~/projects/store"
blog: "~/projects/rails-blog"

Claude Desktop 集成

  1. 运行设置脚本:
rails-mcp-setup-claude
  1. 重启 Claude Desktop 以应用更改。

启动服务器

rails-mcp-server

调试方式

  1. 设置日志级别:
rails-mcp-server --log-level debug
  1. 手动测试服务器:
echo '0 {"jsonrpc":"2.0","id":"test-123","method":"ping"}' | rails-mcp-server

集成与测试

集成

  1. 启动 Rails MCP Server。
  2. 连接支持 MCP 的客户端(如 Claude Desktop)。
  3. 客户端可以使用提供的工具与 Rails 项目交互。

测试

(echo '0 {"jsonrpc":"2.0","id":"test-123","method":"tools/list"}'; sleep 1; echo '1 {"jsonrpc":"2.0","id":"test-456","method":"tools/call","params":{"name":"switch_project","arguments":{"project_name":"blog"}}}') | rails-mcp-server

使用 jq 解析输出:

echo '0 {"jsonrpc":"2.0","id":"list-tools","method":"tools/list"}' | rails-mcp-server | sed 's/^[0-9]* //' | jq '.result.tools'

许可证

该项目遵循 MIT 开源许可条款。