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.
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.