by crisnahine (community) Claude Desktop, Claude Code, OpenCode, Cursor, GitHub Copilot, Codex CLI, Ruby 3.1+, Rails 7.0+
45 MCP-инструментов, дающих AI coding-агентам достоверный контекст о вашем Rails-приложении: схема, модели, роуты, контроллеры, вьюхи, jobs, конвенции. Работает с Claude Code, Cursor, GitHub Copilot, OpenCode и Codex CLI.
Компактный MCP-сервер от автора библиотеки Xamarin/.NET MAUI Community Toolkit — набор небольших разработческих утилит для AI-агентов.
Показывает, что coding-агенты уже знают о проекте. Docmancer индексирует память, правила и инструкции, которые Claude Code, …
MCP-сервер: карта репозитория, поиск по коду и token-aware пакеты контекста для AI coding-агентов.
Мультиракурсная система данных для подачи контекста репозитория coding-агентам.
# Установка в Gemfile bundle add rails-ai-context --group development rails generate rails_ai_context:install # Автономная установка (без Gemfile) gem install rails-ai-context cd your-rails-app rails-ai-context init rails-ai-context serve
Предоставьте своему ИИ-помощнику по кодированию достоверную информацию о вашем Rails-приложении
:star: Если этот гем сэкономил вам время на исправлениях, поставьте ему звезду на GitHub!
Зачем • Возможности • Начало работы • Использование • Инструменты • Конфигурация • Документация

rails-ai-context — это Ruby-гем, который превращает ваше Rails-приложение в источник истины для ИИ-помощников по кодированию. Вместо того чтобы угадывать схему, ассоциации, маршруты и соглашения на основе обучающих данных, помощник запрашивает информацию у вашего приложения: 45 инструментов только для чтения, доступных через MCP или запускаемых из командной строки, а также сгенерированные контекстные файлы для Claude Code, Cursor, GitHub Copilot, OpenCode и Codex CLI.
[!TIP] Ничего не нужно добавлять в Gemfile, если не хотите. Просто выполните
gem install rails-ai-context, а затемrails-ai-context initвнутри любого Rails-приложения. Он также работает с приложением, которое не запускается: передайте флаг--no-boot, и каждый инструмент будет отвечать на основе исходных файлов.
Вы наверняка сталкивались с тем, что ваш помощник делает следующее:
user.posts, хотя ассоциация называется user.articles.before_action, унаследованный от родительского контроллера, а затем удивляется, почему не работает аутентификация.Вы замечаете это, исправляете, переформулируете запрос, и что-то другое ломается. Токены стоят дёшево, а вот цикл исправлений отнимает у вас полдня. Этот гем устраняет догадки на корню.
| Вы просите ИИ... | Без гема | С гемом |
|---|---|---|
Добавить столбец subscription_tier в таблицу пользователей |
Пишет миграцию, дублирует существующий столбец | Считывает актуальную схему, видит subscription_status, уточняет перед миграцией |
Вызвать user.posts в контроллере |
Угадывает; ошибка NoMethodError во время выполнения |
Определяет реальную ассоциацию из модели |
| Написать тесты для новой модели | Создаёт шаблон с FactoryBot | Определяет, что у вас фикстурный набор тестов, и подстраивается под него |
| Исправить неработающий экшен создания | Пропускает унаследованный authenticate_user! |
Получает фильтры родительского контроллера вместе с исходным кодом экшена |
| Создать страницу панели управления | Придумывает классы Tailwind из памяти | Получает реальные шаблоны кнопок/карточек/оповещений |
Найти, где используется publishable? |
Последовательно просматривает 6 файлов, всё равно пропускает вызовы | Один запрос: определение + исходный код + все вызовы + тесты |
| --- | ||
![]() |
[VERIFIED] или [INFERRED], чтобы ассистент понимал, что является достоверной информацией, а что требует проверки во время выполнения.rails:// и rails-ai-context://, которые выполняют интроспекцию заново при каждом чтении.config/routes.rb, db/schema.rb, миграций и исходных файлов, и сообщают об этом.MCP::Tool рядом со встроенными и тестируйте их с помощью встроенного TestHelper.brakeman для security_scan, listen для watch, ripgrep для ускорения search_codebundle add rails-ai-context --group development
rails generate rails_ai_context:install
Генератор спросит, какие инструменты ИИ вы используете и хотите ли вы режим MCP или CLI, затем создаст файлы контекста, конфигурацию MCP для каждого инструмента и config/initializers/rails_ai_context.rb. Повторный запуск безопасен — он сохранит то, что у вас уже есть, и добавит недостающее.
gem install rails-ai-context
cd your-rails-app
rails-ai-context init
rails-ai-context serve
Без изменений в Gemfile. Конфигурация хранится в .rails-ai-context.yml. Работает с rbenv, rvm, asdf, mise, chruby и системным Ruby. Подробнее в Standalone.
rails ai:doctor # in-Gemfile: readiness score + diagnostics
rails-ai-context doctor # standalone
rails 'ai:tool[schema]' table=users
rails 'ai:tool[model_details]' model=User
rails 'ai:tool[search_code]' pattern=publishable? match_type=trace
Затем откройте проект в вашем инструменте ИИ. Написанная им конфигурация MCP подхватится при открытии, и ассистент начнёт вызывать rails_get_model_details вместо догадок.
[!NOTE] Команды CLI выше предназначены для вас. Когда MCP подключён, ассистент вызывает те же инструменты самостоятельно — вам никогда не придётся вводить их вручную.
Режим по умолчанию. Каждый инструмент ИИ получает собственный файл конфигурации (.mcp.json, .cursor/mcp.json, .vscode/mcp.json, opencode.json, .codex/config.toml), указывающий на:
rails ai:serve # in-Gemfile
rails-ai-context serve # standalone
Монтируйте сервер внутри вашего приложения. Он наследует вашу маршрутизацию, аутентификацию и middleware и не требует отдельного процесса.
# config/routes.rb
mount RailsAiContext::Engine, at: "/mcp"
Направьте клиент на http://localhost:3000/mcp. Также доступен автономный HTTP-процесс: rails-ai-context serve --transport http --port 6029.
[!WARNING] Каждый подключённый клиент, открывающий канал SSE, занимает один поток сервера на всё время соединения. Это нормально для разработки; увеличьте количество потоков Puma или используйте автономный HTTP-процесс, если несколько клиентов работают с приложением одновременно.
Те же 45 инструментов, без сервера, в любом терминале.
rails 'ai:tool[search_code]' pattern="publishable?" match_type=trace
rails-ai-context tool schema --table users --detail full
Имена инструментов распознаются гибко: schema, get_schema и rails_get_schema — всё работает. Большинство инструментов принимают параметр detail=summary|standard|full.
| В Gemfile | Автономный режим | Что делает |
|---|---|---|
rails ai:serve |
rails-ai-context serve |
Запуск MCP-сервера (stdio) |
rails ai:serve_http |
rails-ai-context serve --transport http |
Запуск MCP-сервера (HTTP) |
rails 'ai:tool[NAME]' |
rails-ai-context tool NAME |
Запуск одного инструмента |
rails ai:tool |
rails-ai-context tool --list |
Список инструментов |
rails ai:context |
rails-ai-context context |
Генерация файлов контекста |
rails ai:doctor |
rails-ai-context doctor |
Диагностика и оценка готовности |
rails ai:watch |
rails-ai-context watch |
Перегенерация при изменении файлов |
rails 'ai:preset[NAME]' |
rails-ai-context preset NAME |
Запуск предустановки из нескольких инструментов (architecture, debugging, migration) |
Общие флаги для команд, читающих приложение: --app-path PATH для указания другого каталога, --environment ENV для установки RAILS_ENV и --no-boot для пропуска попытки запуска и ответа на основе исходных файлов. Полный список в справочнике по CLI.
Каждый инструмент работает только для чтения и отвечает на основе данных вашего приложения.
| Категория | Инструменты |
|---|---|
| Поиск и трассировка | search_code, get_edit_context |
| Понимание | analyze_feature, get_context, onboard |
| Схема и модели | get_schema, get_model_details, get_callbacks, get_concern |
| Контроллеры и маршруты | get_controllers, get_routes |
| Представления и фронтенд | get_view, get_stimulus, get_partial_interface, get_turbo_map, get_frontend_stack |
| Тестирование и качество | get_test_info, generate_test, validate, security_scan, performance_check |
| Конфигурация приложения и сервисы | get_api, get_conventions, get_config, get_gems, get_env, get_helper_methods, get_service_pattern, get_job_pattern, get_component_catalog, get_i18n, get_mailers, get_engines, get_autoload, get_active_support, get_env_config |
| Данные и отладка | dependency_graph, migration_advisor, search_docs, query, read_logs, diagnose, review_changes, runtime_info, session_context |
Несколько важных моментов на первый день:
search_code с параметром match_type=trace возвращает определение, исходный код, всех вызывающих сгруппированных по типу, и тесты за один вызов. Это заменяет 4–5 чтений файлов.get_controllers возвращает исходный код действия с унаследованными фильтрами, строгими параметрами и картой рендеринга.get_model_details возвращает ассоциации, валидации, скоупы, перечисления и макросы из AST, каждый помечен как [VERIFIED] или [INFERRED].query выполняет SQL-запросы только для чтения с тайм-аутом, ограничением по строкам и маскировкой столбцов. read_logs маскирует конфиденциальные данные до их выхода из процесса.Параметры для всех 45 инструментов описаны в справочнике инструментов; рабочие примеры — в рецептах.
Клиенты MCP также могут считывать структурированные данные как ресурсы. Шаблоны интроспектируются заново при каждом запросе:
| URI | Возвращает |
|---|---|
rails://models/{name} |
Ассоциации, валидации, схема для одной модели |
rails-ai-context://controllers/{name} |
Действия, унаследованные фильтры, строгие параметры |
rails-ai-context://controllers/{name}/{action} |
Исходный код действия с применяемыми фильтрами |
rails-ai-context://views/{path} |
Содержимое шаблона представления (переход по пути заблокирован) |
rails-ai-context://routes/{controller} |
Актуальная карта маршрутов для одного контроллера |
Плюс 9 статических ресурсов: rails://schema, routes, conventions, gems, controllers, config, tests, migrations, engines.
Каждый сгенерированный контекстный файл (CLAUDE.md, .cursor/rules/, .github/instructions/, AGENTS.md) содержит шесть правил, которые ассистент читает перед написанием кода:
[ASSUMPTION]. Хороший ответ: «Мне нужно сначала проверить X».Включено по умолчанию. Отключите с помощью config.anti_hallucination_rules = false, если предпочитаете свои правила.
rails-ai-context пытается выполнить полный запуск для живой рефлексии. Если запуск не удался (отсутствуют переменные окружения, недоступный сервис, сломанный инициализатор), команды чтения приложения переключаются на статический уровень вместо падения: маршруты из config/routes.rb, схема из db/schema.rb, db/structure.sql или миграций, модели и контроллеры из их исходных файлов. Каждый ответ содержит баннер с указанием деградации, статические данные помечены как [STATIC], а разделы, требующие запущенного приложения, сообщают [UNAVAILABLE] с причиной.
Флаг --no-boot полностью пропускает попытку запуска, что быстро и защищает от побочных эффектов при запуске. Команда doctor всё равно требует запускаемого приложения — её задача — диагностировать запуск.
Код находится в стандартной структуре, в пакетах packwerk (packs/*/app/*), во встроенных движках (engines/*/app/*) и в любых extra_app_paths из .rails-ai-context.yml. Дампы схем мультибаз данных (db/queue_schema.rb и подобные) отображаются в разделе Вторичные базы данных. Приложения на Mongoid получают сигнал [НЕДОСТУПНО] для схемы и статические данные моделей вместо пустой таблицы, а API-only приложения получают "неприменимо" от инструментов представления и фронтенда вместо тихого пропуска. Подробности в разделе Совместимость.
# config/initializers/rails_ai_context.rb
if defined?(RailsAiContext)
RailsAiContext.configure do |config|
config.ai_tools = %i[claude cursor] # which AI tools to generate for
config.tool_mode = :mcp # :mcp (default) or :cli
config.preset = :full # :full (40 introspectors) or :standard (17)
end
end
Автономные установки используют те же ключи в .rails-ai-context.yml. Все параметры с значениями по умолчанию описаны в разделе Конфигурация.
Зарегистрируйте собственные инструменты рядом со встроенными:
# app/mcp_tools/rails_get_business_metrics.rb
class RailsGetBusinessMetrics < MCP::Tool
tool_name "rails_get_business_metrics"
description "Key business metrics for this app"
def call(period: "week")
MCP::Tool::Response.new([{ type: "text", text: "Users this #{period}: #{User.recent.count}" }])
end
end
# config/initializers/rails_ai_context.rb
config.custom_tools = ["RailsGetBusinessMetrics"]
Протестируйте их с помощью встроенного помощника (RSpec или Minitest):
include RailsAiContext::TestHelper
response = execute_tool("business_metrics", period: "month")
assert_tool_response_includes(response, "Users")
См. раздел Пользовательские инструменты.
Каждый вызов MCP генерирует событие ActiveSupport::Notifications:
ActiveSupport::Notifications.subscribe("rails_ai_context.tools.call") do |event|
ms = (event.payload[:duration].to_f * 1000).round
Rails.logger.info "[MCP] #{event.payload[:tool_name]} #{ms}ms"
end
graph TD
A["Your Rails app\nmodels + schema + routes + controllers + views + jobs"] -->|"40 introspectors"| B
B["rails-ai-context\nPrism AST · cached · confidence-tagged\nstatic tier when the app can't boot"]
B --> C["MCP server\nstdio / HTTP\n45 tools · 5 templates · 9 resources"]
B --> D["CLI\nrake / Thor\nsame 45 tools"]
B --> E["Context files\nCLAUDE.md · .cursor/rules/ · .github/instructions/ · AGENTS.md"]
style A fill:#4a9eff,stroke:#2d7ad4,color:#fff
style B fill:#2d2d2d,stroke:#555,color:#fff
style C fill:#0984e3,stroke:#0770c2,color:#fff
style D fill:#00cec9,stroke:#00b5b0,color:#fff
style E fill:#a29bfe,stroke:#8c83f0,color:#fff
Внутреннее устройство, список интроспекторов и движок AST описаны в разделах Архитектура и Интроспекторы.
| Быстрый старт | Запуск за 5 минут |
| Руководство | Все команды, параметры и опции |
| Справочник по инструментам | Все 45 инструментов с параметрами |
| Рецепты | Реальные рабочие процессы от начала до конца |
| Настройка AI-инструментов | Claude Code, Cursor, Copilot, OpenCode, Codex CLI, HTTP-транспорт |
| Справочник по CLI | Команды, флаги и синтаксис аргументов |
| Автономное использование | Использование без записи в Gemfile |
| Конфигурация | Все параметры с их значениями по умолчанию |
| Пользовательские инструменты | Создание и тестирование собственных инструментов |
| Архитектура | Проектирование системы и внутреннее устройство |
| Интроспекторы | Все 40 интроспекторов и движок AST |
| Безопасность | Уровни безопасности SQL и блокировка файлов |
| Совместимость | Поддерживаемые версии, уровни поддержки, матрица форм приложений |
| Устранение неполадок | Распространённые проблемы и их решения |
| Часто задаваемые вопросы | Часто задаваемые вопросы |
Создано разработчиком Rails с 10+ годами опыта в продакшене. Если инструмент экономит ваше время, рассмотрите возможность поддержки проекта.