MCP-RB について
MCP-RB は、Sinatra に似た DSL で MCP サーバーを構築する軽量な Ruby フレームワークです。Ruby で MCP サーバーを手早く実装したい開発者に向いています。READMEでは仕様バージョン 2024-11-05 を対象とし、サポートする機能は一部に限られると記載されています。
主な機能
- 01Sinatra に似た DSL でサーバーを定義
- 02リソースとツールの機能に対応
- 03stdio トランスポートに対応
- 04MCP Inspector での動作確認が可能
活用シーン
- 01MCP クライアントにリソースを提供する Ruby サーバーを作成する
- 02LLM から呼び出せるツールを Ruby で実装する
MCP 対応
MCP サーバーを構築するためのフレームワークで、resources と tools の機能を stdio 経由で MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-RB
Sinatra のような DSL を使って MCP(Model Context Protocol)サーバーを実装するための、軽量な Ruby フレームワークです。
インストール
アプリケーションの Gemfile に次の行を追加します。
gem 'mcp-rb'
使い方
MCP サーバーを作成する簡単な例を紹介します。
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
サポート対象の仕様
参照先:MCP 2024-11-05
- 基本プロトコル
- ping
- stdio トランスポート
- サーバー機能
- リソース
- resources/read
- resources/list
- resources/templates/list
- ツール
- tools/list
- tools/call
- リソース
機能はまだサポートされていません。
テスト
rake test
rake test:unit # run only the unit tests, skipping tests that test a running server
MCP Inspector でテストします。
bunx @modelcontextprotocol/inspector $(pwd)/examples/hello_world.rb
フォーマット
bundle exec standardrb --fix
rake タスクも使用できます。
rake lint # Run standardrb to check code style
rake lint:fix # Auto-fix standardrb issues
リリース
新しいバージョンをリリースするには、次の手順に従います。
lib/mcp/version.rbのバージョンを更新します。CHANGELOG.mdを更新します。- git タグを作成します。
git add .
git commit -m "Release vx.y.z"
git tag vx.y.z
git push --tags
- RubyGems にビルドしてプッシュします。
gem build mcp-rb.gemspec
gem push mcp-rb-*.gem
変更履歴
CHANGELOG.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。