MCProto logo

MCProto

by wassson

MCProto is a Ruby gem for chaining MCP servers and Ruby code to create custom solutions. It allows you to define servers that can access and modify a shared context object.

View on GitHub

Last updated: N/A

MCProto

Installation

TODO: Launch - Gem hasn't been made public

Usage

MCProto is a Ruby gem that allows you to chain MCP servers and auxiliary ruby code together for custom solutions.

After installing the gem, create an initializer, config/initializers/mcproto.rb and create your servers:

# Create any number of servers by passing in server classes, host, and port.
beta_invite_server = MCProto::Server.new(
  InviteUserToBeta,
  host: 'localhost',
  port: 3000
)

# Perform logic you may need before starting the servers.
beta_invite_server.start!

Ex: An MCP server can be run on its own

# servers/tag_user.rb
class TriggerByEmail
  include MCProto 
  
  delegate :email, to: :context
  
  resource do
    # TODO
    # define your resource (ex: db table)
    { name: 'email', description: 'Trigger by email' }
  end
  
  tool do
    # TODO
    description "Run when use email is mentioned."
  end
  
  call do
    run unless email_exists?(email)
  end
  
  private
  
  def email_exists?(email)
    #...
  end
end

Or, chain them together:

# servers/invite_user_to_beta.rb
class InviteUserToBeta
  include MCProto::Chain
  
  chain [ TriggerByEmail, SendEmailInvite ]
end

Each server can access the context object and read data from previous servers, or add their own data to the context.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Mcproto project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.