mcpField
M
MCP-RB

MCP-RB

ローカル
rubygems.org開発ツール20482 週間前に更新

MCP-RB について

MCP-RB は、Sinatra に似た DSL で MCP サーバーを構築する軽量な Ruby フレームワークです。Ruby で MCP サーバーを手早く実装したい開発者に向いています。READMEでは仕様バージョン 2024-11-05 を対象とし、サポートする機能は一部に限られると記載されています。

主な機能

  1. 01Sinatra に似た DSL でサーバーを定義
  2. 02リソースとツールの機能に対応
  3. 03stdio トランスポートに対応
  4. 04MCP Inspector での動作確認が可能

活用シーン

  1. 01MCP クライアントにリソースを提供する Ruby サーバーを作成する
  2. 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

機能はまだサポートされていません。

テスト

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

リリース

新しいバージョンをリリースするには、次の手順に従います。

  1. lib/mcp/version.rb のバージョンを更新します。
  2. CHANGELOG.md を更新します。
  3. git タグを作成します。
git add .
git commit -m "Release vx.y.z"
git tag vx.y.z
git push --tags
  1. RubyGems にビルドしてプッシュします。
gem build mcp-rb.gemspec
gem push mcp-rb-*.gem

変更履歴

CHANGELOG.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。