Class: Llmemory::MCP::Tools::MemorySave

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

Class Method Summary collapse

Class Method Details

.call(user_id:, content:, category: nil, server_context: nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/llmemory/mcp/tools/memory_save.rb', line 24

def call(user_id:, content:, category: nil, server_context: nil)
  cat = category || "observations"

  if StoreHelpers.graph_based?
    memory = StoreHelpers.long_term_memory(user_id: user_id)
    memory.remember_fact(content: content, category: cat)
  else
    storage = StoreHelpers.long_term_storage
    resource_id = "mcp_#{Time.now.to_i}_#{rand(1000)}"
    storage.save_item(
      user_id,
      category: cat,
      content: content,
      source_resource_id: resource_id
    )
  end

  ::MCP::Tool::Response.new([{
    type: "text",
    text: "Memory saved successfully.\nCategory: #{cat}\nContent: #{content}"
  }])
rescue => e
  ::MCP::Tool::Response.new([{
    type: "text",
    text: "Error saving memory: #{e.message}"
  }], error: true)
end