Class: KairosMcp::SkillToolAdapter
Overview
Adapter that wraps a Skill with tool_config as an MCP Tool This allows skills defined in kairos.rb to be exposed as MCP tools
Instance Method Summary
collapse
#category, #examples, #invoke_tool, #related_tools, #to_full_schema, #to_schema, #usecase_tags
Constructor Details
#initialize(skill, safety = nil, registry: nil) ⇒ SkillToolAdapter
Returns a new instance of SkillToolAdapter.
8
9
10
11
12
|
# File 'lib/kairos_mcp/skill_tool_adapter.rb', line 8
def initialize(skill, safety = nil, registry: nil)
super(safety, registry: registry)
@skill = skill
@tool_config = skill.tool_config
end
|
Instance Method Details
#call(arguments) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/kairos_mcp/skill_tool_adapter.rb', line 26
def call(arguments)
record_tool_execution(arguments)
result = @tool_config.executor&.call(arguments)
format_result(result)
rescue StandardError => e
text_content("Error executing skill tool '#{name}': #{e.message}")
end
|
#description ⇒ Object
18
19
20
|
# File 'lib/kairos_mcp/skill_tool_adapter.rb', line 18
def description
@tool_config.tool_description || @skill.title || "Skill-based tool: #{@skill.id}"
end
|
22
23
24
|
# File 'lib/kairos_mcp/skill_tool_adapter.rb', line 22
def input_schema
@tool_config.input_schema
end
|
#name ⇒ Object
14
15
16
|
# File 'lib/kairos_mcp/skill_tool_adapter.rb', line 14
def name
@tool_config.tool_name || "skill_#{@skill.id}"
end
|