PR

patvice/ruby_llm-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

269 stars 44 forks Качество 62 Тренд 32MIT

patvice/ruby_llm-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/patvice/ruby_llm-mcp.

Обзор

patvice/ruby_llm-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/patvice/ruby_llm-mcp.

Обзор (машинный перевод)

MCP для Ruby и RubyLLM — максимально просто.

RubyLLM::MCP — это клиент Ruby для протокола Model Context Protocol (MCP), созданный для чистой работы с RubyLLM. Цель — полностью соответствовать спецификациям.

Используйте инструменты, ресурсы и запросы MCP из ваших чатов RubyLLM через stdio, потоковый HTTP или SSE.

Поддержка протокола: Полностью поддерживает спецификацию MCP 2025-06-18 (стабильный), доступна черновая спецификация 2026-01-26.

RubyLLM::MCP Из коробки

Наша цель — максимально легко подключать MCP к приложениям Ruby/RubyLLM.

RubyLLM::MCP даёт вам следующее:

  • API Ruby-first для использования инструментов, ресурсов и запросов MCP непосредственно в рабочих процессах чата RubyLLM
  • Стабильный протокольный трек по умолчанию (2025-06-18), с опционным черновым треком (2026-01-26)
  • Встроенные обработчики уведомлений и ответов для рабочих процессов в реальном времени и интерактивных процессов
  • Поддержка аутентификации MCP OAuth 2.1 (PKCE, динамическая регистрация, обнаружение и автоматическое обновление токенов)
  • Маршруты настройки OAuth для приложений Rails (подключения для каждого пользователя) и браузерных потоков CLI
  • Простая интеграция с любым приложением Ruby, фоновым проектом или проектом Rails с использованием RubyLLM

Покажи код

Особенности

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

RubyLLM::MCP is a Ruby client for the Model Context Protocol (MCP), built to work cleanly with RubyLLM. Aiming to be completely spec compliant.

Use MCP tools, resources, and prompts from your RubyLLM chats over stdio, streamable HTTP, or SSE.

Protocol support: Fully supports MCP spec 2025-06-18 (stable), with draft spec 2026-01-26 available.

RubyLLM::MCP Out of the Box

Our goal is to be able to plug MCP into Ruby/RubyLLM apps as easily as possible.

RubyLLM::MCP gives you that:

  • Ruby-first API for using MCP tools, resources, and prompts directly in RubyLLM chat workflows
  • Stable protocol track by default (2025-06-18), with opt-in draft track (2026-01-26)
  • Built-in notification and response handlers for real-time and interactive workflows
  • MCP OAuth 2.1 authentication support (PKCE, dynamic registration, discovery, and automatic token refresh)
  • OAuth setup paths for Rails apps (per-user connections) and browser-based CLI flows
  • Straightforward integration for any Ruby app, background job, or Rails project using RubyLLM

Show me the code

# Basic setup
require "ruby_llm/mcp"

RubyLLM.configure do |config|
  config.openai_api_key = ENV.fetch("OPENAI_API_KEY")
end

client = RubyLLM::MCP.client(
  name: "filesystem",
  transport_type: :stdio,
  config: {
    command: "bunx",
    args: ["@modelcontextprotocol/server-filesystem", Dir.pwd]
  }
)

chat = RubyLLM.chat(model: "gpt-4.1-mini")
chat.with_tools(*client.tools)

puts chat.ask("Find Ruby files modified today and summarize what changed.")
# Resources
resource = client.resource("release_notes")
chat = RubyLLM.chat(model: "gpt-4.1-mini")
chat.with_resource(resource)

puts chat.ask("Summarize release notes for the team in 5 bullet points.")
# Prompts
prompt = client.prompt("code_review")
chat = RubyLLM.chat(model: "gpt-4.1-mini")

response = chat.ask_prompt(
  prompt,
  arguments: {
    language: "ruby",
    focus: "security"
  }
)

puts response
# Handlers (response + notifications)
client.on_progress do |progress|
  puts "Progress: #{progress.progress}% - #{progress.message}"
end

client.on_logging do |logging|
  puts "[#{logging.level}] #{logging.message}"
end

chat = RubyLLM.chat(model: "gpt-4.1-mini")
chat.with_tools(*client.tools)

chat.ask("Run a repository scan and summarize risks.") do |chunk|
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →