Rails控制台执行服务

一个允许Claude Code在你的Rails控制台中执行Ruby的MCP服务器,支持本地Docker和远程Kubernetes环境。

  • by arushs
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 arushs/rails-console-mcp

使用说明

Rails控制台MCP

一个MCP服务器,允许Claude Code在Rails控制台中执行Ruby。

支持两者 本地Docker 和 远程Kubernetes 环境。

快速开始

git clone <repo>
cd rails-console-mcp
./setup.sh

安装脚本将构建项目并打印配置说明。

配置

本地开发(Docker)

对于在Docker Compose中运行的Rails:

claude mcp add rails-console -s user \
  -e RAILS_MCP_CONTAINER=your-container-name \
  -- node /path/to/rails-console-mcp/dist/index.js

使用查找您的容器名称 docker ps --format '{{.Names}}'.

Kubernetes

对于在Kubernetes中运行的Rails,运行 ./setup.sh --staging 详细说明。

用法

配置后,Claude Code可以使用 rails_console_exec 工具:

# Count users
User.count

# Find a record
User.find_by(email: "test@example.com")

# Run queries
User.where(active: true).limit(10).pluck(:email)

# Check environment
Rails.env

# Reset session state
reload!

环境变量

共同

变量 默认值 描述
RAILS_MCP_MODE docker docker 或 kubectl
RAILS_MCP_COMMAND_TIMEOUT 60000 每个命令超时(ms)
RAILS_MCP_INACTIVITY_TIMEOUT 7200000 会话超时(2小时)
RAILS_MCP_MAX_OUTPUT 1048576 最大输出大小(1MB)

Docker模式

变量 默认值 描述
RAILS_MCP_CONTAINER web Docker容器名称

Kubectl模式

变量 默认值 描述
RAILS_MCP_KUBE_CONTEXT (必填) Kubectl上下文名称
RAILS_MCP_KUBE_NAMESPACE default Kubernetes 命名空间
RAILS_MCP_KUBE_SELECTOR (必填) Pod选择器(例如。, app=my-rails-console)
RAILS_MCP_KUBE_CONTAINER web pod中的容器名称

运作原理

  1. 在第一个命令下,生成一个持久的Rails控制台会话
  2. Docker模式: docker exec -i <container> bundle exec rails console
  3. Kubectl模式:通过选择器发现pod,然后 kubectl exec -i <pod> ...
  4. 维护持久会话-保留变量和状态
  5. 通过IRB/Pry提示符检测命令完成(处理ANSI颜色)
  6. 使用互斥体序列化并发命令
  7. 如果会话崩溃,自动重新启动一次
  8. 2小时不活动后关闭

安全

此工具提供完整的Rails控制台访问权限。

仅在具有适当访问控制的开发/暂存环境中使用。

  • 可以读/写数据库
  • 可以访问环境变量
  • 可以执行任意Ruby代码

故障排除

Docker未运行

确保Docker守护进程正在运行并且容器存在:

docker ps | grep web

超时错误

增加 RAILS_MCP_COMMAND_TIMEOUT 对于慢速查询:

claude mcp add ... -e RAILS_MCP_COMMAND_TIMEOUT=120000 ...

会议议题

跑 reload! 重置会话状态而不重新启动。

快速检测问题

如果命令超时,但控制台正在工作,则可能无法检测到提示。服务器处理IRB、Pry和自定义颜色提示。检查调试日志中的提示匹配问题。

发展

npm install      # Install dependencies
npm run dev      # Run in dev mode
npm run build    # Build
npm test         # Run tests

许可证

麻省理工学院