Class: Llmemory::MCP::Tools::MemoryTimelineContext

Inherits:
MCP::Tool
  • Object
show all
Defined in:
lib/llmemory/mcp/tools/memory_timeline_context.rb

Class Method Summary collapse

Class Method Details

.call(user_id:, item_id: nil, timestamp: nil, before: nil, after: nil, server_context: nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/llmemory/mcp/tools/memory_timeline_context.rb', line 21

def call(user_id:, item_id: nil, timestamp: nil, before: nil, after: nil, server_context: nil)
  before_count = before || 5
  after_count = after || 5

  reference = item_id || timestamp
  unless reference
    return ::MCP::Tool::Response.new([{
      type: "text",
      text: "Error: Either item_id or timestamp must be provided"
    }], error: true)
  end

  storage = build_storage
  result = storage.get_items_around(user_id, reference, before: before_count, after: after_count)

  ::MCP::Tool::Response.new([{
    type: "text",
    text: format_context(result, reference)
  }])
rescue => e
  ::MCP::Tool::Response.new([{
    type: "text",
    text: "Error getting timeline context: #{e.message}"
  }], error: true)
end