Files
buzz/docs/mcp-threading.md
Thomas Petersen daa639e810 feat: thread replies in desktop, MCP threading docs, and API wiring
- Document MCP threading; update sprout-mcp server
- Tauri: message commands, models, and lib exports
- Desktop: thread summary UI, timeline/channel integration, hooks and types

Made-with: Cursor
2026-04-10 09:09:59 +02:00

30 lines
1.1 KiB
Markdown

# MCP threading (`parent_event_id`) contract
This document describes how Sprout interprets `parent_event_id` for the MCP tools:
- `send_message`
- `send_diff_message`
## Overview
`parent_event_id` is a *threading hint*.
Sprout will attempt to post the new event as a reply in the same thread as the parent. If Sprout
cannot establish a valid NIP-10 thread context from the parent, the hint is ignored and the message
is posted as a top-level channel message.
## Stream messages and diffs (channel timeline)
For `send_message` / `send_diff_message` messages posted to a channel timeline, `parent_event_id` is
only honored if the **parent event already contains NIP-10 `e` tags with a `root` or `reply` marker**.
If the parent event does **not** include NIP-10 `e` tags marked `root`/`reply`, Sprout ignores
`parent_event_id` and posts the message as a new top-level event.
## Forums (kind `45003` comments)
Forum comment behavior is unchanged.
When posting a forum comment (kind `45003`), `parent_event_id` continues to behave as the required
identifier of the post/comment being replied to.