Read MCP tool metadata and annotations
List tools
Section titled “List tools”mcp-tui --url http://127.0.0.1:8931/mcp tool listsearch_tickets — Search tickets [R][I] Search the Acme support queue. Filters combine: free-text query, status, tags (a ticket must carry every tag) and an optional priority/customer filter. Icon: data:image/png;base64,… (300 bytes) (image/png, sizes 32x32)
Total: 7 tools[R] read-only [D] destructive [I] idempotent [O] open worldEach tool leads with the name you pass to tool call, then its title. The
markers are the annotation hints the server declared (readOnlyHint,
destructiveHint, idempotentHint, openWorldHint). A name that breaks
SEP-986 (1-128 characters of A-Z a-z 0-9 _ - .) is flagged, and tools the
SDK dropped from the list for invalid x-mcp-header annotations are
reported on stderr.
Describe one tool
Section titled “Describe one tool”mcp-tui --url http://127.0.0.1:8931/mcp tool describe search_ticketsTool: search_tickets [R][I]Title: Search ticketsAnnotations: readOnlyHint=true, idempotentHint=true, openWorldHint=false
Description: Search the Acme support queue. …
Input Schema: { … }followed by the output schema when the tool declares one. The SDK hands the client each schema as a map, so properties print sorted by name rather than in the server’s order.
Destructive tools ask first
Section titled “Destructive tools ask first”A tool that declares destructiveHint: true needs a yes before it runs:
mcp-tui --url http://127.0.0.1:8931/mcp tool call delete_ticket ticket_id=T-1047⚠ Tool "Delete ticket" is flagged destructive (destructiveHint=true). Permanently delete a ticket and its history.Proceed? [y/N]:Anything but y cancels. Without a terminal on stdin (a script, CI) the
call is refused unless you pass --no-confirm.
In the TUI the Tools tab shows the same markers with a legend, and the detail pane spells the annotations out.