MCP-RB
About
A lightweight Ruby framework for building MCP servers with a Sinatra-like DSL
Details
- License
- MIT
Explore
- Sinatra-like DSL for defining server capabilities
- Supports resources, resource templates, and tools
- Tools can accept nested and array arguments
- Implements base protocol (ping), resource endpoints (list, read, templates/list), and tool endpoints (list, call)
- Uses stdio transport only
- Lightweight, Ruby-native implementation
Install the gem by adding gem 'mcp-rb' to your Gemfile. In your server script, use the DSL to set the server name and version, then define resources, resource templates, and tools with their callbacks. Run the script directly via a Ruby interpreter; MCP-RB uses stdio transport out of the box.
tool "greet" do
description "Greet someone by name"
argument :name, String, required: true, description: "Name to greet"
call do |args|
"Hello, #{args[:name]}!"
end
end
tool "greet_full_name" do
description "Greet someone by their full name"
argument :person, required: true, description: "Person to greet" do
argument :first_name, String, required: false, description: "First name"
argument :last_name, String, required: false, description: "Last name"
end
call do |args|
"Hello, First: #{args[:person][:first_name]} Last: #{args[:person][:last_name]}!"
end
end
tool "group_greeting" do
description "Greet multiple people at once"
argument :people, Array, required: true, items: String, description: "People to greet"
call do |args|
args[:people].map { |person| "Hello, #{person}!" }.join(", ")
end
end
```
A lightweight Ruby framework for implementing MCP (Model Context Protocol) servers with a Sinatra-like DSL.
Installation
Add this line to your application's Gemfile:
gem 'mcp-rb'
Usage
Here's a simple example of how to create an MCP server:
```ruby
require 'mcp'
name "hello-world"
version "1.0.0"
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



