get_desk_feed
A newsletter DESK's machine feed at one predictable, slug-addressable location: up to 14 days of the desk's observed items (title, url, source), newest-first, from the same panel the human edition reads. Unlike watch topics, the desk roster is PUBLIC PRODUCT — the desks are: cognitive-investor, tax-nexus, crc-kras, crc-digest, space-economy, paradise-valley, lyt-intel, aztc-aasd, newspace-asu, lq-listening, jedi-knowledge, ud-articles, ecomm-news — so an unknown-desk reply lists them freely. Delivery is keyed (your self-issued key, x-api-key): identified delivery is the standard shape for standing feeds. A desk of your own, built around your question: ask us (send_feedback, or lead@evfm.co). Each feed's payload declares its own coverage state. Limits, stated: each day serves at most the projection's servedPerDay items and states held/served/tailStored/tailOmitted (held = served + tailStored + tailOmitted). The ranked tail below the cut is read with tail:true and walked with the returned cursor, pageSize 1-100 (default 50) — a page limit is a cursor, never an edge. Refusals name their code: bad_cursor, cursor_stale (the projection rebuilt; restart the walk), page_size_limit, tail_unavailable (cannot-measure: this build stores no tail, which is not a statement that the desk held nothing more).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"desk": "<desk>"
},
"name": "get_desk_feed"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many recent days to return (1-14, default 14) | |
| desk | Yes | The desk slug (e.g. 'space-economy') | |
| tail | No | Optional. true reads the ranked TAIL instead of the served list: the items this desk held below the served cut, in curation-score order, each keeping its corroboration tier. Ranked, not curated. Omit it and the payload is unchanged. | |
| cursor | No | Optional. The `tail.cursor` a previous tail page returned (implies tail). Opaque and interchangeable with /api/desk-feed?cursor=. Pinned to desk, window and projection build: a cursor from an older build is refused (cursor_stale) — start again with tail:true. | |
| pageSize | No | Optional, tail only. Items per tail page, an integer 1-100 (default 50). Out of range is refused (page_size_limit), never clamped. |