inspector/specification/v2_ux_features.md
olaservo 9d5110f8f4 docs(spec): Restructure UX docs and add visual reference
Break up v2_ux.md (1400+ lines) into smaller, focused documents:
- v2_ux.md - Core UX (overview, server list, modals)
- v2_ux_features.md - Feature screens (Tools, Resources, etc.)
- v2_ux_handlers.md - Client handlers, form generation, errors
- v2_screenshots.md - Visual reference with Shadcn prototype screenshots

Add screenshots from Shadcn prototype to specification/screenshots/.
Update navigation headers across all spec files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 09:06:08 -07:00

22 KiB

Inspector V2 UX - Feature Screens

Brief | V1 Problems | V2 Scope | V2 Tech Stack

UX: Overview | Features | Handlers | Screenshots


Each feature screen uses a resizable panel layout for flexibility.

Table of Contents

Tools Screen

+---------------------+--------------------------------------+------------------------+
| Tools (4)           | Parameters                           | Results                |
| [*] List updated    | (40%)                                | (30%)                  |
| [Refresh Now]       | <-> resize                           |                        |
+---------------------+--------------------------------------+------------------------+
|                     |                                      |                        |
| [Search...]         | Tool: query_database                 | Output:                |
|                     | -------------------                  |                        |
| (*) query_db        | Annotations:                         | +------------------+   |
|   [user]            |   Audience: user                     | |                  |   |
|   [read-only]       |   Read-only: true                    | |   [Image]        |   |
|                     |   Hints: "Useful for data queries"   | |                  |   |
| ( ) echo            |                                      | +------------------+   |
| ( ) add             | table *                              |                        |
| ( ) longOp          | +--------------------------------+   | {                      |
|   [long-run]        | | users                        v |   |   "rows": 42,          |
| ( ) dangerOp        | +--------------------------------+   |   "data": [...]        |
|   [destructive]     |   Suggestions: users, orders, items  | }                      |
|                     |                                      |                        |
|                     | limit                                | [Play Audio]           |
|                     | +--------------------------------+   |                        |
|                     | | 100                            |   | [Copy] [Clear]         |
|                     | +--------------------------------+   |                        |
|                     |                                      |                        |
|                     | ████████████░░░░░░░░ 60%             |                        |
|                     | Processing step 3 of 5...            |                        |
|                     |                                      |                        |
|                     | [Execute Tool]           [Cancel]    |                        |
+---------------------+--------------------------------------+------------------------+

Features:

  • List Changed Indicator - Shows when notifications/tools/list_changed received, with refresh button
  • Searchable/filterable tool list
  • Tool Annotations displayed:
    • Audience badge ([user], [assistant])
    • Read-only indicator ([read-only])
    • Destructive warning ([destructive])
    • Long-running indicator ([long-run])
    • Custom hints from server
  • Autocomplete for arguments via completion/complete:
    • Dropdown suggestions as user types
    • Supports enum and dynamic completion
  • Form generated from tool input schema
  • Per-Tool Metadata - [Edit Metadata] button to set tool-specific _meta fields:
    • Stored per-server, per-tool (not in global localStorage)
    • Merged with server-level metadata on each call
    • Use case: Different progressToken behavior, tool-specific tracking IDs
  • Progress Indicator from notifications/progress:
    • Progress bar with percentage
    • Step description if provided
    • Elapsed time display
  • Execute button with loading state
  • Cancel button sends notifications/cancelled
  • Rich Result Display:
    • JSON/text with syntax highlighting
    • Image preview for image content (base64)
    • Audio player for audio content (base64)
    • Resource links displayed as clickable references

Resources Screen

Uses an accordion layout for the left panel to organize Resources, Templates, and Subscriptions into collapsible sections.

+--------------------------------+--------------------------------------------+
| Resources                      | Content Preview (65%)                      |
| [*] List updated [Refresh Now] |                                            |
+--------------------------------+--------------------------------------------+
|                                |                                            |
| [Search...]                    | URI: file:///config.json                   |
|                                | MIME: application/json                     |
| [v] Resources (12)             | -----------------------------              |
| +-----------------------------+|                                            |
| | (*) config.json             || Annotations:                               |
| |   [application]             ||   Audience: application                    |
| |   [priority: 0.9]           ||   Priority: 0.9 (high)                     |
| |                             ||                                            |
| | ( ) readme.md               || {                                          |
| |   [user]                    ||   "name": "my-app",                        |
| |                             ||   "version": "1.0.0"                       |
| | ( ) data.csv                || }                                          |
| | ( ) schema.json             ||                                            |
| |   ... (8 more)              || [Copy] [Subscribe] [Unsubscribe]           |
| +-----------------------------+|                                            |
|                                | Last updated: 14:32:05                     |
| [>] Templates (2)              |                                            |
|                                |                                            |
| [>] Subscriptions (1)          |                                            |
|                                |                                            |
+--------------------------------+--------------------------------------------+

Expanded Templates Section:

| [v] Templates (2)              |
| +-----------------------------+|
| | ( ) user/{id}               ||
| |   [id: ________ ] [Go]      ||
| |                             ||
| | ( ) file/{path}             ||
| |   [path: _______ ] [Go]     ||
| +-----------------------------+|

Expanded Subscriptions Section:

| [v] Subscriptions (1)          |
| +-----------------------------+|
| | (*) config.json             ||
| |   Last update: 14:32:05     ||
| |                  [Unsub]    ||
| +-----------------------------+|

Accordion Behavior:

  • Sections expand/collapse independently by clicking header
  • [v] indicates expanded section, [>] indicates collapsed
  • Empty sections show "(0)" count and collapse by default
  • If only Resources exist, that section expands by default
  • Search filters across all sections simultaneously

Features:

  • List Changed Indicator - Shows when notifications/resources/list_changed received
  • Accordion Layout - Collapsible sections for Resources, Templates, Subscriptions
  • List resources with pagination within each section
  • Resource Annotations displayed:
    • Audience badge ([user], [application/assistant])
    • Priority indicator ([high], [medium], [low])
  • Resource templates with inline variable input and [Go] button
  • Subscribe/unsubscribe to resource updates
  • Subscriptions Section shows active subscriptions with last update time
  • Content viewer (JSON, text, binary preview)
  • Image preview for image resources
  • Audio player for audio resources

Prompts Screen

+------------------------------+----------------------------------------------+
| Prompts (2)                  | Result (65%)                                 |
| [*] List updated [Refresh]   |                                              |
+------------------------------+----------------------------------------------+
|                              |                                              |
| Select Prompt:               | Messages:                                    |
| +--------------------------+ |                                              |
| | greeting_prompt        v | | [0] role: user                               |
| +--------------------------+ |     Content:                                 |
|                              |     "Hello, my name is John and I            |
| Description:                 |      like cats"                              |
| "Generates a friendly        |                                              |
|  greeting message"           |     [Image: profile.png]                     |
|                              |                                              |
| Arguments:                   | [1] role: assistant                          |
| -------------                |     "Nice to meet you, John! I see           |
|                              |      you're a cat lover..."                  |
| name *                       |                                              |
| +--------------------------+ |                                              |
| | John                   v | |                                              |
| +--------------------------+ |                                              |
|   Suggestions: John, Jane    |                                              |
|                              |                                              |
| interests                    |                                              |
| +--------------------------+ |                                              |
| | cats                     | |                                              |
| +--------------------------+ |                                              |
|                              |                                              |
| [Get Prompt]                 | [Copy JSON] [Copy Messages]                  |
+------------------------------+----------------------------------------------+

Features:

  • List Changed Indicator - Shows when notifications/prompts/list_changed received
  • Dropdown to select from available prompts
  • Prompt description displayed
  • Autocomplete for arguments via completion/complete
  • Form generated from prompt arguments
  • Display prompt messages result with:
    • Role labels
    • Text content
    • Image content preview
    • Audio content player
    • Embedded resource display
  • Copy functionality (JSON or plain messages)

Logging Screen

+-----------------------+-----------------------------------------------------+
| Log Controls (25%)    | Log Stream (75%)                                    |
| <-> resize            |                                                     |
+-----------------------+-----------------------------------------------------+
|                       |                                                     |
| Log Level:            | 14:32:01 [INFO]     Server initialized              |
| +-----------------+   | 14:32:02 [DEBUG]    Loading tool: echo              |
| | debug         v |   | 14:32:02 [DEBUG]    Loading tool: add               |
| +-----------------+   | 14:32:03 [NOTICE]   Configuration loaded            |
|                       | 14:32:05 [WARNING]  Rate limit approaching          |
| [Set Level]           | 14:32:10 [ERROR]    Failed to fetch resource: 404   |
|                       | 14:32:15 [CRITICAL] Database connection lost        |
| Filter:               | 14:32:16 [ALERT]    Service degraded                |
| +-----------------+   | 14:32:20 [EMERGENCY] System failure                 |
| |                 |   |                                                     |
| +-----------------+   | -------------------------------------------------   |
|                       |                                                     |
| Show Levels:          |                                                     |
| [x] DEBUG             |                                                     |
| [x] INFO              |                                                     |
| [x] NOTICE            |                                                     |
| [x] WARNING           |                                                     |
| [x] ERROR             |                                                     |
| [x] CRITICAL          |                                                     |
| [x] ALERT             |                                                     |
| [x] EMERGENCY         |                                                     |
|                       |                                                     |
| [Clear] [Export]      | [Auto-scroll] [Copy All]                            |
+-----------------------+-----------------------------------------------------+

Features:

  • Set Log Level via logging/setLevel request
    • Options: debug, info, notice, warning, error, critical, alert, emergency
  • Real-time Log Stream from notifications/message
  • Filter by text search
  • Filter by log level checkboxes (all 8 RFC 5424 levels)
  • Color-coded by severity (8 distinct visual treatments):
Level Color Style
DEBUG Gray Normal
INFO Blue Normal
NOTICE Cyan Normal
WARNING Yellow Normal
ERROR Red Normal
CRITICAL Red Bold
ALERT Magenta Bold
EMERGENCY White on Red Background highlight
  • Timestamp display
  • Logger name display (if provided)
  • Auto-scroll toggle
  • Export logs to file
  • Copy all logs to clipboard

Tasks Screen

+-------------------------------------------------------------------------+
| Tasks                                                     [Refresh]     |
+-------------------------------------------------------------------------+
|                                                                         |
| Active Tasks (2)                                                        |
| +---------------------------------------------------------------------+ |
| | Task: abc-123              Status: running         ████████░░ 80%   | |
| | Method: tools/call                                                  | |
| | Tool: longRunningOperation                                          | |
| | Started: 14:32:05          Elapsed: 45s                             | |
| | Progress: Processing batch 4 of 5...                                | |
| |                                            [View Details] [Cancel]  | |
| +---------------------------------------------------------------------+ |
|                                                                         |
| +---------------------------------------------------------------------+ |
| | Task: def-456              Status: waiting         ░░░░░░░░░░ 0%    | |
| | Method: resources/read                                              | |
| | Resource: large-dataset                                             | |
| | Started: 14:33:00          Elapsed: 10s                             | |
| |                                            [View Details] [Cancel]  | |
| +---------------------------------------------------------------------+ |
|                                                                         |
| Completed Tasks (3)                                    [Clear History]  |
| +---------------------------------------------------------------------+ |
| | Task: ghi-789              Status: completed       ██████████ 100%  | |
| | Method: tools/call (processData)                                    | |
| | Completed: 14:31:30        Duration: 1m 30s                         | |
| |                                            [View Result] [Dismiss]  | |
| +---------------------------------------------------------------------+ |
|                                                                         |
+-------------------------------------------------------------------------+

Features:

  • Task List via tasks/list request
  • Real-time Status Updates via notifications/task/statusChanged
  • Progress Display from notifications/progress:
    • Progress bar with percentage
    • Current step description
    • Total/current progress numbers
  • Task states: waiting, running, completed, failed, cancelled
  • Cancel Tasks via tasks/cancel
  • View Results via tasks/result
  • View Task Details via tasks/get
  • Task history with dismissal
  • Elapsed time / duration display

History Screen

A unified history of all MCP requests with replay capability.

+-------------------------------------------------------------------------------------+
| History                                           [Search...] [Filter v] [Clear All] |
+-------------------------------------------------------------------------------------+
|                                                                                     |
| +---------------------------------------------------------------------------------+ |
| | * 14:35:22  tools/call         echo                             [Replay] [Pin]  | |
| |    Parameters: { "message": "Hello world" }                                     | |
| |    Result: Success (45ms)                                                       | |
| |    ------------------------------------------------------------------           | |
| |    Response: { "content": [{ "type": "text", "text": "Hello world" }] }         | |
| +---------------------------------------------------------------------------------+ |
|                                                                                     |
| +---------------------------------------------------------------------------------+ |
| |   14:34:15  resources/read     file:///config.json              [Replay] [Pin]  | |
| |    Result: Success (120ms)                                                      | |
| |    ------------------------------------------------------------------           | |
| |    Content: { "name": "my-app", "version": "1.0.0" }  (collapsed)  [Expand]     | |
| +---------------------------------------------------------------------------------+ |
|                                                                                     |
| +---------------------------------------------------------------------------------+ |
| |   14:33:45  prompts/get        greeting_prompt                  [Replay] [Pin]  | |
| |    Arguments: { "name": "John", "interests": "cats" }                           | |
| |    Result: Success (30ms)                                                       | |
| +---------------------------------------------------------------------------------+ |
|                                                                                     |
| +---------------------------------------------------------------------------------+ |
| |   14:32:10  tools/call         query_database                   [Replay] [Pin]  | |
| |    Parameters: { "table": "users", "limit": 10 }                                | |
| |    Result: [X] Error (200ms)                                                    | |
| |    ------------------------------------------------------------------           | |
| |    Error: "Table 'users' not found"                                             | |
| +---------------------------------------------------------------------------------+ |
|                                                                                     |
| Pinned Requests (2)                                                                 |
| +---------------------------------------------------------------------------------+ |
| | * "Test echo"      tools/call    echo             14:35:22       [Replay] [Unpin] |
| | * "Get config"     resources/read file:///config.json 14:34:15   [Replay] [Unpin] |
| +---------------------------------------------------------------------------------+ |
|                                                                                     |
|                                                          Showing 50 of 127 entries |
|                                                               [Load More]          |
+-------------------------------------------------------------------------------------+

Features:

  • Automatic Capture - All MCP requests/responses logged automatically:
    • tools/call - Tool invocations
    • resources/read - Resource reads
    • prompts/get - Prompt retrievals
    • sampling/createMessage - Sampling requests/responses
    • elicitation/create - Elicitation requests/responses
  • Request Details displayed:
    • Timestamp
    • Method name
    • Target (tool name, resource URI, prompt name)
    • Parameters/arguments
    • Result status (success/error)
    • Response time
    • Response data (collapsible)
  • Replay - Re-execute any request with original parameters:
    • Opens relevant screen (Tools, Resources, Prompts) pre-filled
    • Option to modify parameters before replay
  • Pin/Save - Pin important requests for quick access:
    • Pinned requests persist across sessions
    • Optional custom label for pinned items
    • Pinned section at bottom for easy access
  • Filter by:
    • Method type (tools, resources, prompts, sampling, elicitation)
    • Status (success, error)
    • Time range
  • Search across method names, parameters, and responses
  • Pagination - Load more for large histories
  • Clear - Clear history (with confirmation)
  • Export - Export history as JSON for sharing/debugging

Replay Workflow:

  1. Click [Replay] on any history entry
  2. Inspector navigates to the appropriate screen (Tools, Resources, Prompts)
  3. Form is pre-filled with the original parameters
  4. User can modify parameters or execute immediately
  5. New request is added to history