Module: Riffer::Mcp::ToolFactory

Defined in:
lib/riffer/mcp/tool_factory.rb

Overview

Generates anonymous Riffer::Tool subclasses from MCP tool definitions.

Each generated class:

  • Has .name, .description, and .parameters_schema derived from the MCP tool definition.

  • Delegates #call to the MCP client’s tools_call method.

  • Skips Riffer’s param validation — the MCP server validates inputs.

Class Method Summary collapse

Class Method Details

.build(manifest_name, client, tool_defs) ⇒ Object

Builds one Riffer::Tool subclass per tool definition.

Tool names are prefixed with the manifest name to avoid collisions across MCP servers (e.g. “jira__search”). The original server-side name is available via .mcp_server_tool_name.

– : (String, Riffer::Mcp::Client, Array[Hash[Symbol, untyped]]) -> Array



20
21
22
# File 'lib/riffer/mcp/tool_factory.rb', line 20

def self.build(manifest_name, client, tool_defs)
  tool_defs.map { |td| build_tool_class(manifest_name, client, td) }
end