{"calls": [], "exit_before_cleanup": null, "initialize": {"capabilities": {"prompts": {"listChanged": true}, "resources": {"listChanged": true}, "tools": {"listChanged": true}}, "protocolVersion": "2025-11-25", "serverInfo": {"name": "elicitly", "version": "0.8.4"}}, "list_change_notifications": 0, "monotonic_seconds": 0.4022382519906387, "outcome": "listed tools offline", "started_utc": "2026-10-17T12:23:51.554079Z", "status": "completed", "tools": [{"annotations": {"destructiveHint": false, "openWorldHint": false}, "description": "Ask the user an OK/Cancel confirmation via elicitation (convenience wrapper over elicit_form), modeled on JavaScript's confirm(). Use this for a single yes/no question; use elicit_form to collect arbitrary fields. Returns three-state {confirmed}: true = proceed, false = a human explicitly said no, null = no answer was obtained (reason: \"dismissed\" | \"error\") — ask again later.", "execution": {"taskSupport": "forbidden"}, "inputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {"labels": {"additionalProperties": false, "description": "Relabel or localize the OK/Cancel buttons. Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed.", "properties": {"cancel": {"description": "Replacement label for the Cancel button (e.g. \"Cancelar\").", "maxLength": 40, "minLength": 1, "type": "string"}, "ok": {"description": "Replacement label for the OK button (e.g. \"Aceptar\").", "maxLength": 40, "minLength": 1, "type": "string"}}, "type": "object"}, "message": {"description": "The yes/no question shown to the user in the host's elicitation dialog.", "type": "string"}, "timeoutSeconds": {"description": "How long to wait for the answer, in seconds (default 300, clamped 60-3600).", "type": "number"}}, "required": ["message"], "type": "object"}, "name": "elicit_confirm", "outputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": {"confirmed": {"description": "true = the user chose OK; false = an explicit no (Cancel choice or declined elicitation); null = no answer was obtained.", "type": ["boolean", "null"]}, "reason": {"description": "Present only when confirmed is null: \"dismissed\" = the elicitation was closed unanswered (including timeout), \"error\" = it failed.", "enum": ["dismissed", "error"], "type": "string"}}, "required": ["confirmed"], "type": "object"}, "title": "Ask the user to confirm (OK/Cancel)"}, {"annotations": {"openWorldHint": false, "readOnlyHint": true}, "description": "Check whether the connected MCP host actually supports elicitation (and sampling/roots) before relying on it — advertising a capability is not the same as it working. Use it to decide whether to call elicit_form/elicit_confirm, to explain why a prompt did or didn't appear, or to contribute a host capability fingerprint. Returns a passive report derived from the initialize handshake; set probeElicitation: true to also run one live form round-trip (the user may see a dialog) and classify what really happened. Read-only; safe to call anytime.", "execution": {"taskSupport": "forbidden"}, "inputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {"probeElicitation": {"description": "Also fire one live form-elicitation round-trip (the user may see a dialog) and report the outcome under probes.elicitationForm. Default false: passive capability report only, no prompt.", "type": "boolean"}}, "type": "object"}, "name": "elicit_doctor", "outputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": {"deprecations": {"description": "Spec-level deprecation advisories (MCP 2026-07-28, SEP-2577) for the client features the report surfaces.", "items": {"additionalProperties": {}, "propertyNames": {"type": "string"}, "type": "object"}, "type": "array"}, "initialize": {"additionalProperties": {}, "description": "The MCP initialize handshake echoed verbatim: { request: { clientInfo, capabilities }, response: { protocolVersion, capabilities, serverInfo } }.", "propertyNames": {"type": "string"}, "type": "object"}, "probes": {"additionalProperties": {}, "description": "Present only when probeElicitation was true: the live round-trip's attempted/action/latencyMs/verdict.", "properties": {"elicitationForm": {"additionalProperties": {}, "propertyNames": {"type": "string"}, "type": "object"}}, "required": ["elicitationForm"], "type": "object"}, "support": {"additionalProperties": {}, "description": "Elicitly's derived support booleans, inferred from the advertised capabilities.", "properties": {"elicitation": {"type": "boolean"}, "elicitationForm": {"type": "boolean"}, "elicitationUrl": {"type": "boolean"}, "roots": {"type": "boolean"}, "sampling": {"type": "boolean"}}, "required": ["elicitation", "elicitationForm", "elicitationUrl", "sampling", "roots"], "type": "object"}}, "required": ["initialize", "support", "deprecations"], "type": "object"}, "title": "Diagnose the host's elicitation support"}, {"annotations": {"destructiveHint": false, "openWorldHint": false}, "description": "Trigger a form elicitation with a caller-supplied JSON schema; returns the raw {action, content}. For a plain OK/Cancel question, prefer elicit_confirm. MUST NOT be used to request secrets, credentials, or other sensitive information.", "execution": {"taskSupport": "forbidden"}, "inputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {"message": {"description": "The instruction shown to the user above the form fields.", "type": "string"}, "requestedSchema": {"additionalProperties": {}, "description": "JSON Schema for the form, restricted to the MCP elicitation requestedSchema subset: a flat object whose properties are strings, numbers/integers, booleans, or enums — no nested objects, arrays of objects, $ref, or allOf. See https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation#requested-schema", "propertyNames": {"type": "string"}, "type": "object"}, "timeoutSeconds": {"description": "How long to wait for the answer, in seconds (default 300, clamped 60-3600) — raise it for forms with several fields.", "type": "number"}}, "required": ["message", "requestedSchema"], "type": "object"}, "name": "elicit_form", "outputSchema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": {"action": {"description": "accept = the user submitted the form; decline = an explicit no; cancel = dismissed unanswered (including timeout); error = the elicitation failed.", "enum": ["accept", "decline", "cancel", "error"], "type": "string"}, "content": {"anyOf": [{"additionalProperties": {}, "propertyNames": {"type": "string"}, "type": "object"}, {"type": "null"}], "description": "On accept, the submitted values keyed by requestedSchema property name; null for every other action."}}, "required": ["action", "content"], "type": "object"}, "title": "Ask the user to fill a form"}, {"_meta": {"ui": {"resourceUri": "ui://elicitly/display"}}, "annotations": {"openWorldHint": false, "readOnlyHint": true}, "description": "Show information to the user as rendered HTML instead of Markdown: pass a LiquidJS template and a JSON context, and hosts that support MCP Apps render it inline in the conversation. Use it for tables, reports, and summaries the user should scan; it does not collect a decision (use elicit_confirm or elicit_form for that). Values interpolated with {{ context.* }} are HTML-escaped; truthiness is JavaScript-style. Templates may load Tailwind (https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4) and DaisyUI (https://cdn.jsdelivr.net/npm/daisyui@5) with their own