Pular para o conteúdo
Skillpedia
APIs e servidores (backend)40 mil · #5352

ruby-mcp-server-generator

Faz seu agente gerar um projeto de servidor completo em Ruby. Ele usa o protocolo MCP para criar a estrutura básica do servidor, facilitando o desenvolvimento.

O que ela faz

Este recurso cria um servidor básico em Ruby para comunicação entre programas. Ele já vem com algumas funções prontas, como cumprimentar alguém ou fazer cálculos simples.

Quando usar

  • ✓Quando você precisa de um ponto de partida para um servidor de comunicação em Ruby.
  • ✓Para testar a interação entre diferentes partes de um sistema.
  • ✓Ao aprender sobre como criar servidores com a biblioteca MCP em Ruby.

Exemplo do que pedir para a IA

“Crie um servidor MCP em Ruby para mim.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/ruby-mcp-server-generator/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/ruby-mcp-server-generator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele usa a biblioteca oficial MCP para Ruby para montar a estrutura do projeto. Isso inclui arquivos para definir o servidor, ferramentas de exemplo e testes.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill ruby-mcp-server-generator

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/ruby-mcp-server-generator/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Gerador de Servidor MCP em Ruby

Gere um servidor MCP completo e pronto para produção em Ruby usando o SDK oficial do Ruby.

Geração de Projeto

Ao ser solicitado a criar um servidor MCP em Ruby, gere um projeto completo com esta estrutura:

my-mcp-server/
├── Gemfile
├── Rakefile
├── lib/
│   ├── my_mcp_server.rb
│   ├── my_mcp_server/
│   │   ├── server.rb
│   │   ├── tools/
│   │   │   ├── greet_tool.rb
│   │   │   └── calculate_tool.rb
│   │   ├── prompts/
│   │   │   └── code_review_prompt.rb
│   │   └── resources/
│   │       └── example_resource.rb
├── bin/
│   └── mcp-server
├── test/
│   ├── test_helper.rb
│   └── tools/
│       ├── greet_tool_test.rb
│       └── calculate_tool_test.rb
└── README.md

Modelo do Gemfile

source 'https://rubygems.org'

gem 'mcp', '~> 0.4.0'

group :development, :test do
  gem 'minitest', '~> 5.0'
  gem 'rake', '~> 13.0'
  gem 'rubocop', '~> 1.50'
end

Modelo do Rakefile

require 'rake/testtask'
require 'rubocop/rake_task'

Rake::TestTask.new(:test) do |t|
  t.libs << 'test'
  t.libs << 'lib'
  t.test_files = FileList['test/**/*_test.rb']
end

RuboCop::RakeTask.new

task default: %i[test rubocop]

Modelo de lib/my_mcp_server.rb

# frozen_string_literal: true

require 'mcp'
require_relative 'my_mcp_server/server'
require_relative 'my_mcp_server/tools/greet_tool'
require_relative 'my_mcp_server/tools/calculate_tool'
require_relative 'my_mcp_server/prompts/code_review_prompt'
require_relative 'my_mcp_server/resources/example_resource'

module MyMcpServer
  VERSION = '1.0.0'
end

Modelo de lib/my_mcp_server/server.rb

# frozen_string_literal: true

module MyMcpServer
  class Server
    attr_reader :mcp_server
    
    def initialize(server_context: {})
      @mcp_server = MCP::Server.new(
        name: 'my_mcp_server',
        version: MyMcpServer::VERSION,
        tools: [
          Tools::GreetTool,
          Tools::CalculateTool
        ],
        prompts: [
          Prompts::CodeReviewPrompt
        ],
        resources: [
          Resources::ExampleResource.resource
        ],
        server_context: server_context
      )
      
      setup_resource_handler
    end
    
    def handle_json(json_string)
      mcp_server.handle_json(json_string)
    end
    
    def start_stdio
      transport = MCP::Server::Transports::StdioTransport.new(mcp_server)
      transport.open
    end
    
    private
    
    def setup_resource_handler
      mcp_server.resources_read_handler do |params|
        Resources::ExampleResource.read(params[:uri])
      end
    end
  end
end

Modelo de lib/my_mcp_server/tools/greet_tool.rb

# frozen_string_literal: true

module MyMcpServer
  module Tools
    class GreetTool < MCP::Tool
      tool_name 'greet'
      description 'Generate a greeting message'
      
      input_schema(
        properties: {
          name: {
            type: 'string',
            description: 'Name to greet'
          }
        },
        required: ['name']
      )
      
      output_schema(
        properties: {
          message: { type: 'string' },
          timestamp: { type: 'string', format: 'date-time' }
        },
        required: ['message', 'timestamp']
      )
      
      annotations(
        read_only_hint: true,
        idempotent_hint: true
      )
      
      def self.call(name:, server_context:)
        timestamp = Time.now.iso8601
        message = "Hello, #{name}! Welcome to MCP."
        
        structured_data = {
          message: message,
          timestamp: timestamp
        }
        
        MCP::Tool::Response.new(
          [{ type: 'text', text: message }],
          structured_content: structured_data
        )
      end
    end
  end
end

Modelo de lib/my_mcp_server/tools/calculate_tool.rb

# frozen_string_literal: true

module MyMcpServer
  module Tools
    class CalculateTool < MCP::Tool
      tool_name 'calculate'
      description 'Realiza cálculos matemáticos'
      
      input_schema(
        properties: {
          operation: {
            type: 'string',
            description: 'Operação a ser realizada',
            enum: ['add', 'subtract', 'multiply', 'divide']
          },
          a: {
            type: 'number',
            description: 'Primeiro operando'
          },
          b: {
            type: 'number',
            description: 'Segundo operando'
          }
        },
        required: ['operation', 'a', 'b']
      )
      

…
Perguntas frequentes

O que é MCP?

MCP é uma forma de organizar a comunicação entre diferentes partes de um programa ou sistemas, definindo como eles devem 'conversar' entre si.

O que são 'tools' (ferramentas)?

São funções pré-definidas que o servidor pode usar, como a ferramenta 'greet' para saudar ou 'calculate' para fazer contas.

O que é um 'prompt'?

Um prompt é uma instrução ou pergunta que o servidor pode usar para guiar a conversa ou a tarefa, como um prompt para revisar código.

Detalhes

Descrição original do autor

Generate a complete Model Context Protocol server project in Ruby using the official MCP Ruby SDK gem.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5352
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas