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
61
62
//! MCP server implementation for `axterminator`.
//!
//! ## Phase 1 (tools)
//!
//! - `initialize` / `initialized` handshake
//! - `tools/list` — 12 Phase 1 tools with annotations and output schemas
//! - `tools/call` — dispatches to Rust core functions
//! - `ping`
//!
//! ## Phase 2 (resources + prompts)
//!
//! - `resources/list` — 2 static resources
//! - `resources/templates/list` — 3 URI templates
//! - `resources/read` — reads system status, running apps, app tree,
//! app screenshot, and app UI state
//! - `prompts/list` — 4 guided workflow prompts
//! - `prompts/get` — resolves a prompt with caller-supplied arguments
//!
//! ## Phase 3 (extended tools + observability)
//!
//! - `tools/list` — 7 additional tools (`ax_scroll`, `ax_key_press`,
//! `ax_get_attributes`, `ax_get_tree`, `ax_list_apps`, `ax_drag`, `ax_assert`)
//! - `notifications/message` — structured per-tool-call log notifications
//! - `notifications/progress` — incremental progress for long-running tools
//!
//! ## Phase 4 (HTTP transport + auth + elicitation)
//!
//! - [`transport`] — stdio and Streamable HTTP/SSE transports
//! - [`auth`] — bearer token and localhost-only authentication for HTTP
//! - [`elicitation`] — server-initiated user questions (4 key scenarios)
//!
//! Entry points: [`server::run_stdio`] (stdio), [`transport::serve`] (any).
pub
pub
pub
pub
pub