Class: Pgbus::MCP::Tools::JobsTool

Inherits:
BaseTool
  • Object
show all
Defined in:
lib/pgbus/mcp/tools/jobs_tool.rb

Overview

Paginated list of enqueued jobs/messages for a queue (or across all non-DLQ queues). Returns metadata — msg_id, read_ct, vt, enqueued_at, queue_name — with message bodies and headers redacted unless payloads are explicitly allowed. Maps to DataSource#jobs.

Constant Summary collapse

MAX_PER_PAGE =
100
MAX_PAGE =
1_000

Class Method Summary collapse

Methods inherited from BaseTool

annotations_value, data_source_from, error_response, json_response, payloads_allowed?

Class Method Details

.call(queue: nil, page: 1, per_page: 25, include_payloads: false, server_context: nil) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/pgbus/mcp/tools/jobs_tool.rb', line 41

def self.call(queue: nil, page: 1, per_page: 25, include_payloads: false, server_context: nil)
  data_source = data_source_from(server_context)
  per_page = per_page.to_i.clamp(1, MAX_PER_PAGE)
  page = page.to_i.clamp(1, MAX_PAGE)
  rows = data_source.jobs(queue_name: queue, page: page, per_page: per_page)

  json_response(
    { queue: queue, page: page, per_page: per_page, jobs: rows },
    server_context: server_context,
    include_payloads: include_payloads
  )
end