A Ruby gem that provides AI assistants with ruby code execution capabilities within the context of existing running application server. Think of it giving AI assistant lighting-speed access to ruby console without the need to write script, reload or restart.
Works with Rails, Sinatra, Hanami, Roda, and any other Rack-based framework. The code is executed in your application's context for debugging and investigation.
- Learn a new codebase or code areas quickly. With your AI client and a running server, you can ask it to research while executing snippets from your actual application code. It effectively acts as an in-loop code-verification block.
- Perform quick, preliminary investigations of customer escalations using a read-only copy of the production environment. It can execute your application code, locate models, and run relevant class methods or code paths from the codebase to do preliminary root-cause analysis (RCA). Even better if your application uses an event-sourcing framework (i.e., change logs). The AI client, together with the code-execution capabilities via rack-mcp, can deliver fast preliminary RCAs.
- Use it for quick data analytics and export reports as CSV.
Add this line to your application's Gemfile:
gem "rack_mcp", git: "https://github.com/raja-jamwal/rack-mcp.git"Or install locally for development:
bundle installRails (config/routes.rb):
require "rack_mcp/mcp/server"
Rails.application.routes.draw do
mount RackMcp::MCP::Server.new => "/mcp"
endRack (config.ru):
require "rack_mcp"
require "rack_mcp/mcp/server"
map "/mcp" do
run RackMcp::MCP::Server.new
endSinatra:
require "rack_mcp/mcp/server"
mount RackMcp::MCP::Server.new, at: "/mcp"# Standalone with Rackup
bundle exec rackup -p 9292
# With Rails
bundle exec rails serverThe MCP server exposes a single JSON-RPC endpoint:
- POST /mcp/rpc - JSON-RPC request and response
evaluate_ruby_code
- Description: Evaluates Ruby code and returns the result with captured stdout/stderr
- Parameters:
code(string, required): Ruby code to execute
Add to your MCP client (cusor, claude etc).
{
"mcpServers": {
"rails-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3001/mcp/rpc"
]
}
}
}Any MCP-compatible client can connect to the server by making JSON-RPC requests to the /mcp/rpc endpoint.
Run the test suite:
bundle exec rspecImportant security considerations:
- Only use in development environments
- Never expose this endpoint to the public internet without authentication
- Implement proper authentication and authorization in production
- Consider running in a sandboxed or containerized environment
- Use network-level restrictions to limit access
This gem uses global $stdout/$stderr redirection during evaluation, which can clash in multi-threaded servers. For production use with concurrency, consider:
- Running in a single worker/thread mode
- Isolating evaluation per request (e.g., via
fork) - Using a dedicated job worker for code execution
MIT License - see LICENSE file for details.

