π A Ruby implementation of the Model Context Protocol
A Ruby implementation of the Model Context Protocol (MCP) specification, enabling standardized AI application interactions with external tools and data sources.
Documentation | Examples | Contributing
</div>Add to your Gemfile
:
gem 'mcp_on_ruby'
Then run:
bundle install
Or install directly:
gem install mcp_on_ruby
Create a basic MCP server with tools:
require 'mcp_on_ruby'
server = MCP::Server.new do |s|
# Define a tool
s.tool "weather.get_forecast" do |params|
location = params[:location]
{ forecast: "Sunny", temperature: 72, location: location }
end
# Add a resource
s.resource "user.profile" do
{ name: "John", email: "john@example.com" }
end
end
server.start
Connect to an MCP server:
require 'mcp_on_ruby'
client = MCP::Client.new(url: "http://localhost:3000")
client.connect
# List available tools
tools = client.tools.list
# Call a tool
result = client.tools.call("weather.get_forecast",
{ location: "San Francisco" }
)
Model-controlled functions with JSON Schema-defined parameters:
server.tools.define('example') do
parameter :name, :string
execute do |params|
"Hello, #{params[:name]}!"
end
end
Application-controlled data sources:
server.resource "user.profile" do
{ name: "John", email: "john@example.com" }
end
Secure your server with OAuth 2.1:
oauth_provider = MCP::Server::Auth::OAuth.new(
client_id: 'your-client-id',
client_secret: 'your-client-secret',
token_expiry: 3600,
jwt_secret: 'your-jwt-secret',
issuer: 'your-server'
)
Check out our examples directory for complete implementations:
For more advanced topics, visit our Wiki.
# Clone the repository
git clone https://github.com/nagstler/mcp_on_ruby.git
# Install dependencies
bundle install
# Run tests
bundle exec rspec
# Start console
bundle exec bin/console
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
nagstler/mcp_on_ruby
April 14, 2025
June 30, 2025
Ruby