Conversation Receive¶
Receive the oldest unacknowledged user turn for a generation-leased conversation consumer.
MCP name: conversation_receive
Category: conversations
Mutates state (retry policy: replay)
Parameters¶
| Name | Type | Required | Description |
|---|---|---|---|
consumer |
string |
Yes | Stable consumer name supplied by the owning workflow |
conversation_id |
string |
Yes | Conversation ID |
generation |
string |
Yes | Current lease generation supplied by the owning workflow |
timeout_seconds |
integer |
No | Block and wait for a user turn (max 110s) |
Details¶
Returns the oldest user turn that this consumer has not acknowledged. Delivery
does not advance the cursor, so a process restart receives the same turn again.
Only the current generation lease can receive; a replaced driver gets
lease_lost and must stop. A user turn may carry typed context. For
context.kind="action_snapshot", the returned action_snapshot_id names the
exact frozen document version and focus. The driver passes that ID and this
turn's message_id to cowork_action_snapshot_get, then uses the returned
consumer/generation/message-bound receipt for its reply and
conversation_ack. A discussion.kind="cothink_item" context remains an exact
non-evidential perspective, not a Verify finding.