ActionController::MCPServer::RequestContext
Inherits Reference < Object
the MCP request a route is running for, available to the route as mcp_context.
Routes annotated @[AC::MCP(long_running: true)] are streamed to clients that
accept an event stream: they can report progress, and are cancelled when the client
disconnects
@[AC::MCP(long_running: true)]
@[AC::Route::GET("/:id/export")]
def export(id : Int64) : Nil
rows = Row.where(widget_id: id)
rows.each_with_index do |row, index|
break if mcp_context.try &.cancelled?
response << row.to_csv
mcp_context.try &.progress(index + 1, rows.size)
end
end
Constructors
new(progress_token : JSON::Any | Nil = nil)
SourceInstance methods
progress(progress : Number, total : Number | Nil = nil, message : String | Nil = nil) : Nil
reports progress to the client, ignored when the client didn't request progress. Progress must increase, values that don't are ignored