Class: RubyEventStore::MCP::Tools::StreamEvents
- Inherits:
-
Object
- Object
- RubyEventStore::MCP::Tools::StreamEvents
- Defined in:
- lib/ruby_event_store/mcp/tools/stream_events.rb
Instance Method Summary collapse
Instance Method Details
#call(event_store, args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ruby_event_store/mcp/tools/stream_events.rb', line 32 def call(event_store, args) events = ReadEvents.of( event_store.read.stream(args.fetch("stream_name")), type: args["type"], after: args["after"], before: args["before"], from: args["from"], limit: args.fetch("limit", 20) ) return "(no events)" if events.empty? format_events(events) end |
#name ⇒ Object
9 10 11 |
# File 'lib/ruby_event_store/mcp/tools/stream_events.rb', line 9 def name "stream_events" end |
#schema ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ruby_event_store/mcp/tools/stream_events.rb', line 13 def schema { name: name, description: "List events in a stream with optional filters", inputSchema: { type: "object", properties: { stream_name: { type: "string", description: "Stream name" }, limit: { type: "integer", description: "Max number of events (default: 20)" }, type: { type: "string", description: "Filter by event type class name" }, after: { type: "string", description: "Filter events newer than timestamp (ISO8601)" }, before: { type: "string", description: "Filter events older than timestamp (ISO8601)" }, from: { type: "string", description: "Start reading from event ID (exclusive)" } }, required: ["stream_name"] } } end |