Class: Tools::FindPublicationsTool

Inherits:
ApplicationTool show all
Defined in:
app/mcp/tools/find_publications_tool.rb

Overview

MCP Tool for finding publications (PDFs, manuals, datasheets).
Publications contain installation guides, technical specifications, and product documentation.

Examples:

Find installation manuals

{ query: "TempZone installation guide", limit: 5 }

Class Method Summary collapse

Class Method Details

.call(query:, product_line: nil, limit: 5, server_context: nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/mcp/tools/find_publications_tool.rb', line 37

def call(query:, product_line: nil, limit: 5, server_context: nil)
  limit = [[limit.to_i, 1].max, 20].min

  publications = SemanticSearchService.find_publications(query, limit: limit * 2)

  if product_line.present?
    publications = publications.select do |pub|
      pub.product_lines.any? { |pl| pl.name.downcase.include?(product_line.downcase) }
    end
  end

  publications = publications.first(limit)

  json_response(
    query: query,
    product_line_filter: product_line,
    total_results: publications.size,
    publications: publications.map { |p| format_publication(p) }
  )
end