1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use IndexMap;
use JsonSchema;
use ;
/// One reverse-attach request the API has shipped to the calling
/// client. The proxy's HTTP method (`POST` for the five JSON-RPC
/// methods, `DELETE` for session terminate) is implicit in the
/// [`super::Payload`] variant; the JSON-RPC `{jsonrpc, id, method,
/// params}` envelope is unwrapped into the typed variant payload.
///
/// Which CLI-hosted MCP server the request targets rides as
/// `mcp_kind` on the envelope. The API parses this off the inbound
/// URL path (`/objectiveai` → [`super::super::McpKind::ObjectiveAi`];
/// `/{owner}/{name}/{version}/{mcp}` → [`super::super::McpKind::Other`])
/// before forwarding.
///
/// Wire shape (envelope is `{id, mcp_kind, headers?, type, …variant
/// fields…}` after the `#[serde(flatten)]` on `payload`):
///
/// ```json
/// {
/// "id":"…",
/// "mcp_kind":{"type":"objective_ai"},
/// "headers":{"Mcp-Session-Id":"…"},
/// "type":"tools_list",
/// "cursor":"…"
/// }
/// ```