Module: Boxcars::MCP
- Defined in:
- lib/boxcars/mcp.rb,
lib/boxcars/mcp/client.rb,
lib/boxcars/mcp/tool_boxcar.rb,
lib/boxcars/mcp/stdio_client.rb,
lib/boxcars/mcp/tool_registry.rb
Overview
Model Context Protocol integration namespace.
Defined Under Namespace
Classes: Client, StdioClient, ToolBoxcar, ToolRegistry
Class Method Summary collapse
- .boxcars_from_client(client) ⇒ Object
- .stdio(command:, args: []) ⇒ Object
-
.tool_calling_train ⇒ Object
Backwards-compatible helper alias for initial v0.10 naming.
-
.tool_train(engine:, boxcars: [], clients: [], client_name_prefixes: {}, mcp_return_direct: false, **train_kwargs) ⇒ Object
Build a ToolTrain from local Boxcars plus tools discovered from one or more MCP clients.
Class Method Details
.boxcars_from_client(client) ⇒ Object
6 7 8 |
# File 'lib/boxcars/mcp.rb', line 6 def self.boxcars_from_client(client, **) ToolRegistry.boxcars_from_client(client, **) end |
.stdio(command:, args: []) ⇒ Object
10 11 12 |
# File 'lib/boxcars/mcp.rb', line 10 def self.stdio(command:, args: [], **) StdioClient.new(command:, args:, **).connect! end |
.tool_calling_train ⇒ Object
Backwards-compatible helper alias for initial v0.10 naming.
40 41 42 |
# File 'lib/boxcars/mcp.rb', line 40 def self.tool_calling_train(...) tool_train(...) end |
.tool_train(engine:, boxcars: [], clients: [], client_name_prefixes: {}, mcp_return_direct: false, **train_kwargs) ⇒ Object
Build a ToolTrain from local Boxcars plus tools discovered from one or more MCP clients.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/boxcars/mcp.rb', line 23 def self.tool_train(engine:, boxcars: [], clients: [], client_name_prefixes: {}, mcp_return_direct: false, **train_kwargs) unless defined?(Boxcars::ToolTrain) raise Boxcars::Error, "Boxcars::ToolTrain is not loaded. Require 'boxcars' before using MCP helpers." end combined_boxcars = Array(boxcars).dup Array(clients).each_with_index do |client, index| prefix = mcp_client_prefix(client, index, client_name_prefixes) combined_boxcars.concat( boxcars_from_client(client, name_prefix: prefix, return_direct: mcp_return_direct) ) end Boxcars::ToolTrain.new(boxcars: combined_boxcars, engine:, **train_kwargs) end |