项目简介

Rails MCP Server 是一个实现了 Model Context Protocol (MCP) 的 Ruby 服务器,专为 Rails 项目设计。它允许大型语言模型 (LLMs) 通过标准化的 MCP 协议与 Rails 项目进行交互,从而实现代码分析、项目结构探索和辅助开发等功能。

主要功能点

  • 项目管理: 支持管理多个 Rails 项目,允许 LLM 在不同项目之间切换。
  • 代码浏览: 提供浏览项目文件和目录结构的功能。
  • 路由查看: 能够获取 Rails 项目定义的路由信息。
  • 模型信息: 可以查看 Rails 模型 (Model) 的定义、关联关系和数据库结构。
  • 数据库结构: 支持获取数据库 Schema 信息。
  • 环境配置分析: 提供环境配置分析工具,帮助识别潜在问题。
  • 控制器视图分析: 提供控制器和视图的关联分析,帮助理解应用流程。
  • 文件内容获取: 能够获取项目文件的内容,并支持语法高亮。

安装步骤

  1. 安装 Gem: 使用 gem 命令安装 'rails-mcp-server' gem。
    gem install rails-mcp-server
    安装完成后,'rails-mcp-server' 和 'rails-mcp-setup-claude' 两个可执行文件将被添加到您的 PATH 环境变量中。

服务器配置

要将 Rails MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到该服务器。以下是 Claude Desktop 的配置示例,您需要将此配置添加到 Claude Desktop 的配置文件中。

Claude Desktop 配置示例 (JSON):

{
  "mcpServers": {
    "railsMcpServer": {
      "command": "rails-mcp-server",
      "args": []
    }
  }
}

配置参数说明:

  • 'server name': 'railsMcpServer' (服务器名称,可以自定义)
  • 'command': 'rails-mcp-server' (启动 Rails MCP Server 的命令,确保 'rails-mcp-server' 可执行文件在系统的 PATH 环境变量中,或者使用可执行文件的完整路径)
  • 'args': '[]' (启动参数,这里为空数组,可以使用 '--log-level' 参数设置日志级别,例如 '["--log-level", "debug"]')

注意: 如果您的 Ruby 环境不是系统默认环境,或者使用了版本管理器(如 rbenv, RVM),您可能需要确保 Claude Desktop 使用与 Rails MCP Server 安装时相同的 Ruby 版本。具体方法请参考仓库 README 中的 "Ruby Version Manager Users" 部分。

基本使用方法

  1. 启动服务器: 在终端中运行 'rails-mcp-server' 命令来启动 Rails MCP Server。

    rails-mcp-server

    服务器默认会监听标准输入和标准输出,并通过 JSON-RPC 协议与 MCP 客户端通信。

  2. 配置项目: 首次运行服务器后,它会在用户配置目录下创建 'projects.yml' 文件(路径取决于操作系统,例如 macOS 下为 '~/.config/rails-mcp/projects.yml')。编辑此文件,添加您希望 LLM 访问的 Rails 项目路径。例如:

    my_blog: "~/projects/my_blog"
    ecommerce_app: "~/projects/ecommerce_app"

    其中,键 ('my_blog', 'ecommerce_app') 是项目名称,将在 'switch_project' 工具中使用,值是 Rails 项目的绝对路径。

  3. 连接客户端: 配置您的 MCP 客户端(如 Claude Desktop)连接到 Rails MCP Server。客户端将通过 JSON-RPC 协议与服务器进行通信,并可以使用服务器提供的工具来操作和查询 Rails 项目的信息。

  4. 使用工具: 通过 MCP 客户端,您可以调用 Rails MCP Server 提供的各种工具,例如 'switch_project' 切换项目, 'get_project_info' 获取项目信息,'list_files' 列出文件,'get_file' 获取文件内容, 'get_routes' 获取路由信息, 'get_models' 获取模型信息, 'get_schema' 获取数据库结构等,从而实现与 Rails 项目的交互。

信息

分类

开发者工具