- Explore MCP Servers
- mcp-rb
Mcp Rb
What is Mcp Rb
mcp-rb is a lightweight Ruby framework designed for building MCP (Model Context Protocol) servers using a Sinatra-like Domain Specific Language (DSL).
Use cases
mcp-rb can be used to create various types of MCP servers for applications that require context-aware interactions, such as chatbots, interactive tools, and user-specific greetings.
How to use
To use mcp-rb, include it in your application’s Gemfile and define resources and tools in a Ruby script. You can create an MCP server by specifying resources and tools with their respective functionalities.
Key features
Key features of mcp-rb include easy resource and tool definitions, support for nested arguments, array arguments, and a simple syntax inspired by Sinatra. It also supports basic MCP specifications such as ping and stdio transport.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Mcp Rb
mcp-rb is a lightweight Ruby framework designed for building MCP (Model Context Protocol) servers using a Sinatra-like Domain Specific Language (DSL).
Use cases
mcp-rb can be used to create various types of MCP servers for applications that require context-aware interactions, such as chatbots, interactive tools, and user-specific greetings.
How to use
To use mcp-rb, include it in your application’s Gemfile and define resources and tools in a Ruby script. You can create an MCP server by specifying resources and tools with their respective functionalities.
Key features
Key features of mcp-rb include easy resource and tool definitions, support for nested arguments, array arguments, and a simple syntax inspired by Sinatra. It also supports basic MCP specifications such as ping and stdio transport.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
MCP-RB
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:
require 'mcp'
name "hello-world"
version "1.0.0"
# Define a resource
resource "hello://world" do
name "Hello World"
description "A simple hello world message"
call { "Hello, World!" }
end
# Define a resource template
resource_template "hello://{user_name}" do
name "Hello User"
description "A simple hello user message"
call { |args| "Hello, #{args[:user_name]}!" }
end
# Define a tool
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
# Define a tool with nested arguments
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
# Define a tool with an Array argument
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
Supported specifications
Reference: MCP 2024-11-05
- Base Protocol
- ping
- stdio transport
- Server features
- Resources
- resources/read
- resources/list
- resources/templates/list
- Tools
- tools/list
- tools/call
- Resources
Any capabilities are not supported yet.
Testing
rake test
rake test:unit # run only the unit tests, skipping tests that test a running server
Test with MCP Inspector
bunx @modelcontextprotocol/inspector $(pwd)/examples/hello_world.rb
Formatting
bundle exec standardrb --fix
You can also use rake tasks:
rake lint # Run standardrb to check code style
rake lint:fix # Auto-fix standardrb issues
Release
To release a new version:
- Update version in
lib/mcp/version.rb
- Update
CHANGELOG.md
- Create a git tag
git add .
git commit -m "Release vx.y.z"
git tag vx.y.z
git push --tags
- Build and push to RubyGems
gem build mcp-rb.gemspec gem push mcp-rb-*.gem
Changelog
See CHANGELOG.md
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.