Class: OmnifocusMcp::Tools::Definitions::QueryOmnifocusTool

Inherits:
FastMcp::Tool
  • Object
show all
Extended by:
OperationFactory
Defined in:
lib/omnifocus_mcp/tools/definitions/query_omnifocus_tool.rb

Overview

‘FastMcp::Tool` for `query_omnifocus`.

Constant Summary collapse

DATE_FILTER_FIELDS =
%i[due_within deferred_until planned_within due_on defer_on planned_on].freeze

Instance Method Summary collapse

Methods included from OperationFactory

default_operation_factory, extended, operation_factory, operation_factory=

Instance Method Details

#call(**args) ⇒ Object



155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/omnifocus_mcp/tools/definitions/query_omnifocus_tool.rb', line 155

def call(**args)
  McpEnvelope.safely("executing query") do
    params = resolve_date_filters(Params::QueryOmnifocusParams.from_mcp(args))

    operation.call(params).fold(
      on_ok: lambda { |match|
        McpEnvelope::ToolReply.success(Presenters::QueryReply.format(args:, params:, match:))
      },
      on_error: ->(err) { McpEnvelope::ToolReply.failure(Presenters::QueryReply.failure(err)) }
    )
  end
end