Skip to main content
Glama

Server Details

Human-in-the-loop for AI agents over MCP: durable approvals with a hosted review page & audit trail

Ownership verified
Status
Healthy
Uptime
80.2% over 60 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 12 tools

Disambiguation4/5

The three monitoring tools (elicit_await, elicit_status, elicit_result) and the elicitation variants (approval, form, confirm, proposal, selection) have real overlap risk, but the descriptions explicitly cross-reference each other ('use elicit_form instead', 'prefer this over polling elicit_status') to steer selection. An agent can distinguish them, though the breadth of elicitation flavors makes misselection possible.

Naming Consistency5/5

Every tool follows a strict elicit_<verb/noun> snake_case pattern with no deviations. The prefix cleanly groups the whole surface and the suffixes are descriptive and predictable.

Tool Count4/5

12 tools is well-scoped for an elicitation platform, covering creation, monitoring, cancellation, history, and diagnostics. A couple of conveniences (elicit_confirm as a wrapper over elicit_form, elicit_ping) are slightly redundant but still earn their place.

Completeness4/5

The lifecycle is well covered: multiple request-creation modes, blocking and non-blocking decision retrieval, outcome fetch, cancellation, history, and host-capability diagnostics. Minor gaps exist (e.g. no tool to update or list saved displayTemplates), but core workflows have no dead ends.

Available Tools

13 tools
elicit_approvalRequest human approvalInspect

Request human approval before proceeding. Async: returns immediately with a pending request that a human decides later on the hosted review page (block with elicit_await, fetch the outcome with elicit_result); for a synchronous in-session form answered by the connected host, use elicit_form instead. Two modes, at least one of context / requestedSchema is required: (1) json mode — pass context, a read-only payload the reviewer approves or declines as-is; optionally also pass displayTemplate, a LiquidJS template that customizes how context is rendered on the review page (instead of the default raw JSON view); (2) form mode — pass requestedSchema, a JSON Schema restricted to the MCP elicitation requestedSchema subset (MCP 2025-11-25): a flat object whose properties are strings, numbers/integers, booleans, or single/multi-select enums (no nested objects, arrays of objects, $ref, or allOf) — the reviewer fills in these fields on the review page and submits them back as the submitted data. Both may be passed together: context (optionally rendered via displayTemplate) is then displayed as read-only context above the form (it is NOT merged into or used to pre-fill the form fields, which are seeded only from requestedSchema defaults). Per the MCP elicitation spec, form mode MUST NOT be used to request secrets, credentials, or other sensitive information from the reviewer.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoRelabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed.
contextNojson mode: a read-only JSON payload the reviewer approves or declines as-is. Echoed back verbatim in elicit_result. Rendered as raw JSON unless `displayTemplate` is given.
messageYesThe prompt shown to the reviewer at the top of the review page — say what needs approving and why.
displayTemplateNoOptional LiquidJS template that customizes how `context` is rendered on the review page. `context` is exposed to the template under the `context` key (e.g. {{ context.recordId }}).
requestedSchemaNoform mode: JSON Schema in the MCP elicitation requestedSchema subset (flat object of string / number / integer / boolean / enum properties — no nested objects, arrays of objects, $ref, or allOf). The reviewer fills these fields on the review page; property `default`s seed the form.
expiresInSecondsNoHow long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesAlways `pending` at creation.
expiresAtYesWhen the request stops being decidable (timestamp).
reviewUrlYesURL of the hosted review page where a human decides this request.
elicitationIdYesUnique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.
elicitationDeliveredYesTrue when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.
elicit_awaitWait for a decision
Read-only
Inspect

Long-poll for a decision on a pending elicitation: blocks until the request is submitted, declined, canceled, or expired — or until the server's polling window closes. Returns { status } (pending | submitted | declined | canceled | expired | consumed); a pending return means the window elapsed, so call again to keep waiting. Prefer this over polling elicit_status in a loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
elicitationIdYesThe `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesThe request's state when the wait ended; `pending` means the polling window elapsed undecided — call again to keep waiting.
elicit_cancelCancel a pending elicitation
Destructive
Inspect

Withdraw a pending elicitation you created — the plan changed or the request is superseded. The request resolves canceled: a terminal status distinct from declined (the reviewer's explicit no) and expired (nobody decided in time). The review page stops accepting decisions, pending elicit_await calls wake, and elicit_result has no outcome to fetch. Errors if the request was already decided or has expired; a cancel racing a concurrent decision loses cleanly to whichever landed first.

ParametersJSON Schema
NameRequiredDescriptionDefault
elicitationIdYesThe `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesThe request is now terminally canceled.
elicit_confirmAsk the user to confirm (OK/Cancel)Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoRelabel or localize the OK/Cancel buttons. Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed.
messageYesThe yes/no question shown to the user in the host's elicitation dialog.
timeoutSecondsNoHow long to wait for the answer, in seconds (default 300, clamped 60-3600).

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNoPresent only when confirmed is null: "dismissed" = the elicitation was closed unanswered (including timeout), "error" = it failed.
confirmedYestrue = the user chose OK; false = an explicit no (Cancel choice or declined elicitation); null = no answer was obtained.
elicit_displayShow the user rendered contentA
Read-only
Inspect

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_approval, elicit_selection, or elicit_confirm 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 / tags; the view follows the host's light/dark theme via data-theme. External images, scripts, styles, and fonts load only from https://cdn.jsdelivr.net and from origins your organization's admins allow (the server routes those through its resource proxy; write their normal URLs) — anything else is blocked, and the result's notes list your organization's allowed origins. Use data: URIs for images you already have that are not publicly reachable (generated, read from a local file, or from a private source the user gave you), passed in context rather than the template (64 KB vs 32 KB). Don't download a public image just to work around the allowlist; leave it out. The rendered HTML is not returned to you — the result reports what was shown and any blocked origins.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoHeading shown above the render.
contextNoJSON data exposed to the template as `context`. Max 64 KB serialized.
summaryNoOne or two sentences describing what is shown; returned as the tool's text result.
templateYesLiquidJS template producing an HTML fragment, rendered against {{ context.* }}. Max 32768 characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYesGuidance for you about this render (e.g. present the information in your reply, or which origins were blocked) — the same notes as the text result.
summaryYesWhat was shown (the caller's summary, or a default).
appsAdvertisedYesWhether the host advertised MCP Apps support (true/false), or null when the server couldn't tell. When false, the user may not see the render.
blockedOriginsYesExternal origins the template references that the view's CSP blocks — those resources won't load.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds substantial context beyond them: the CDN allowlist (cdn.jsdelivr.net plus org-allowed origins), that disallowed origins are blocked and listed in the result notes, HTML-escaping of {{ context.* }}, JavaScript-style truthiness, Tailwind/DaisyUI support, data-theme theme following, and the fact that rendered HTML is never returned to the model. This is unusually rich operational disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and the sibling routing are front-loaded in the first sentence, which is the right call. The remainder is a dense single paragraph of em-dash and parenthetical asides; nearly every clause carries usable operational detail, but the block is harder to scan than a short bulleted constraint list would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a rendering tool with an output schema, the description still closes the important gaps: it states the rendered HTML is not returned to the model, what the result does report, how interpolation is escaped, and what resource-loading will silently fail. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the schema documents all four parameters, but the description adds real meaning on top: data: URIs must be passed in context rather than the template and the 64 KB vs 32 KB budget explains why. That's a non-obvious interaction between two parameters that the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (render LiquidJS template + JSON context as HTML in the conversation) and immediately distinguishes itself from the decision-collecting siblings elicit_approval, elicit_selection, and elicit_confirm. An agent can tell this is a display-only tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when ('tables, reports, and summaries the user should scan') and an explicit when-not with named alternatives ('it does not collect a decision — use elicit_approval, elicit_selection, or elicit_confirm'). Routing between this tool and its closest siblings is fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

elicit_doctorDiagnose the host's elicitation supportInspect

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. Pass share: true to contribute the report to Elicitly's public Support Matrix evidence queue — stored: this report plus the optional productName / productVersion / notes (the host product's name and version, which the report cannot see from inside, and any unusual setup); the report itself contains no elicitation payloads or conversation content. The result then carries shared: true|false.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoWith share: anything unusual about the setup worth recording with the evidence.
shareNoContribute this report to Elicitly's public Support Matrix evidence queue. Stored: the report plus productName / productVersion / notes; no elicitation payloads or conversation content.
productNameNoWith share: the host product's name as the user sees it (e.g. "Claude Desktop") — the report cannot detect this from inside.
productVersionNoWith share: the host product's version, if known.
probeElicitationNoAlso 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
probesNoPresent only when probeElicitation was true: the live round-trip's attempted/action/latencyMs/verdict.
sharedNoPresent when share: true was passed — whether the report landed in the evidence queue.
supportYesElicitly's derived support booleans, inferred from the advertised capabilities.
initializeYesThe MCP initialize handshake echoed verbatim: { request: { clientInfo, capabilities }, response: { protocolVersion, capabilities, serverInfo } }.
shareErrorNoPresent when sharing was requested but failed: a one-line error summary.
deprecationsYesSpec-level deprecation advisories (MCP 2026-07-28, SEP-2577) for the client features the report surfaces.
elicit_formAsk the user to fill a formInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe instruction shown to the user above the form fields.
timeoutSecondsNoHow long to wait for the answer, in seconds (default 300, clamped 60-3600) — raise it for forms with several fields.
requestedSchemaYesJSON 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

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYesaccept = the user submitted the form; decline = an explicit no; cancel = dismissed unanswered (including timeout); error = the elicitation failed.
contentYesOn accept, the submitted values keyed by requestedSchema property name; null for every other action.
elicit_historyList past elicitations
Read-only
Inspect

List your past elicitations, newest first, paginated with jump-to-page. scope 'me' = your own requests; 'org' = the whole organization (admins only). Returns { items, page, pageSize, asOf, total, scope } — total lets you compute the last page (ceil(total/pageSize)); pass the returned asOf back on later pages to keep the window stable while new requests arrive.

ParametersJSON Schema
NameRequiredDescriptionDefault
asOfNoSnapshot anchor from a previous page's result — pass it back to keep pagination stable while new requests arrive. Omit on the first page.
pageNo1-based page number to fetch.
scopeNo'me' = your own requests; 'org' = the whole organization (admins only).me
pageSizeNoItems per page (1-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
asOfYesThe snapshot anchor this page was computed at — pass it back on later pages to keep the window stable while new requests arrive.
pageYesThe 1-based page that was served.
itemsYesThe requested page of elicitations, newest first.
scopeYesThe scope that was served.
totalYesTotal matching requests — the last page is ceil(total / pageSize).
pageSizeYesItems per page that was applied.
elicit_pingCheck connectivityA
Read-only
Inspect

Connectivity check for the hosted Elicitly server: echoes message back as pong: <message> over the authenticated session.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoText to echo back (default "ping").

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so no mutation concern. The description adds meaningful context beyond the annotation by specifying that it echoes the message as 'pong: <message>' and that it requires an authenticated session, which helps the agent understand expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the purpose ('Connectivity check'), states the resource, and explains the returned output. Every word earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description is complete: it conveys purpose, behavior, the authenticated-session requirement, and the exact return format. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'message' parameter fully described as 'Text to echo back (default "ping")'. The description reinforces this by showing the output format, but does not add substantial new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Connectivity check') and resource ('hosted Elicitly server'), and explains the exact echo behavior. This clearly distinguishes it from sibling elicit_* tools, which are all task-oriented operations rather than a ping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for verifying connectivity and that it operates over an authenticated session. It does not explicitly list when-not-to-use it, but the dedicated ping nature makes the usage context unambiguous among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

elicit_proposalPropose a record change for reviewInspect

Ask a human to review, edit, and selectively approve a proposed record create-or-update, shown as a diff grid: one or more read-only Source columns, a read-only Current column, and an editable Proposed column. Async like elicit_approval: returns a pending request decided on the hosted review page. Pass requestedSchema (a JSON Schema in the MCP elicitation requestedSchema subset — flat object of strings/numbers/booleans/enums) to define the editable Proposed fields; each property's default is its initial proposed value (you compute it — e.g. take Current if present else Source). Pass columns to name the Source column(s) and the Current column, and fields to supply each property's Source value(s) and Current value. The reviewer edits proposed values, chooses which fields to include, and submits; the result (via elicit_result) carries decision (submitted|declined) and, on submit, formSubmission (included fields only). MUST NOT be used to request secrets or credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoPer-property read-only cell values, keyed by requestedSchema property name: { <property>: { sources: { <sourceKey>: value }, current: value, include?: boolean } }. `include: false` starts the field unchecked.
labelsNoRelabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed.
columnsYesNames the read-only columns of the diff grid.
contextNoOptional identity/context passthrough echoed back verbatim in elicit_result — NOT shown to the reviewer unless `displayTemplate` renders it.
messageYesThe prompt shown to the reviewer above the diff grid — say what change is proposed and why.
displayTemplateNoOptional LiquidJS template rendered above the grid. `context` is exposed under the `context` key (e.g. {{ context.recordId }}). Without it, `context` is not displayed.
requestedSchemaYesJSON Schema (MCP elicitation requestedSchema subset — flat object of string / number / boolean / enum properties) defining the editable Proposed fields; each property's `default` is its initial proposed value.
expiresInSecondsNoHow long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesAlways `pending` at creation.
expiresAtYesWhen the request stops being decidable (timestamp).
reviewUrlYesURL of the hosted review page where a human decides this request.
elicitationIdYesUnique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.
elicitationDeliveredYesTrue when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.
elicit_resultFetch a decided elicitation's outcome
Idempotent
Inspect

Fetch the outcome of a decided request (poll elicit_status or block on elicit_await first — this errors while the request is still pending, after it expires undecided, or if it was canceled via elicit_cancel; repeatable reads are fine afterward). Returns { status: 'consumed', decision, context, formSubmission } for every tool. formSubmission is what the review form submitted, keyed by field name: the form fields for elicit_approval (null in json mode); { selectedIds } for elicit_selection; only the fields the reviewer included for elicit_proposal. Null on decline.

ParametersJSON Schema
NameRequiredDescriptionDefault
elicitationIdYesThe `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesThe outcome has been read at least once.
contextYesThe caller's original `context`, echoed verbatim (null if none was supplied).
decisionYesThe reviewer's choice: submitted = approved/filled in, declined = explicit no.
formSubmissionYesWhat the review form submitted, keyed by field name: elicit_approval's form fields (null in json mode), { selectedIds } for elicit_selection, the included fields for elicit_proposal. Null on decline.
elicit_selectionAsk a human to choose optionsInspect

Ask a human to choose one or more options from a caller-supplied list (disambiguation, record matching, picking work items). Async like elicit_approval: returns a pending request decided on the hosted review page; the chosen option ids come back via elicit_result as selectedIds. Options render as rows of a table the Liquid templates and css can customize. Defaults to single-select — raise maxSelections for multi-select.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoCustom CSS injected on the review page to style the option table.
labelsNoRelabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed.
messageYesThe instruction shown above the option list — say what the reviewer is choosing and why.
optionsYesThe choices (1-500). Each option is an object with a required unique `id` (returned in `selectedIds`) plus any extra keys, which `rowTemplate` / `hoverTemplate` can reference (e.g. {{ option.name }}).
rowTemplateNoLiquidJS template producing the <td> cells of one option row; the option is exposed as `option` (e.g. <td>{{ option.name }}</td><td>{{ option.score }}</td>). Any link must carry target="_blank" — without it the click replaces the option table with the linked page and the reviewer loses the form. Default: a single cell of `option.label`, falling back to `option.id`.
hoverTemplateNoLiquidJS template for a per-option hover/details card; the option is exposed as `option`. Omit for no hover card.
maxSelectionsNoMost options the reviewer may pick (default 1 = single-select; clamped to the option count).
minSelectionsNoFewest options the reviewer must pick to submit (default 1; 0 allows none).
footerTemplateNoLiquidJS template producing the table footer rows (no variables). Omit for no footer.
headingTemplateNoLiquidJS template producing the <th> cells of the table header (no variables). Omit for no header row.
expiresInSecondsNoHow long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesAlways `pending` at creation.
expiresAtYesWhen the request stops being decidable (timestamp).
reviewUrlYesURL of the hosted review page where a human decides this request.
elicitationIdYesUnique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.
elicitationDeliveredYesTrue when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.
elicit_statusCheck an elicitation's status
Read-only
Inspect

Non-blocking status check for an elicitation you created: returns { status } — pending | submitted | declined | canceled | expired | consumed. Read-only and repeatable (never consumes the result); use elicit_await to block on a decision and elicit_result to fetch the outcome.

ParametersJSON Schema
NameRequiredDescriptionDefault
elicitationIdYesThe `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesThe request's current lifecycle state.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updates
    • Changedelicit_approval1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_await1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_cancel1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_confirm1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_display5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / appsAdvertised
        Added value: +{
        +  "description": "Whether the host advertised MCP Apps support (true/false), or null when the server couldn't tell. When false, the user may not see the render.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / blockedOrigins / items / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / notes
        Added value: +{
        +  "description": "Guidance for you about this render (e.g. present the information in your reply, or which origins were blocked) — the same notes as the text result.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "summary",
        -  "blockedOrigins"
        -]New value: +[
        +  "summary",
        +  "blockedOrigins",
        +  "appsAdvertised",
        +  "notes"
        +]
    • Changedelicit_doctor3 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • changedOutput schema / properties / probes / additionalProperties
        Previous value: -falseNew value: +{}
      • changedOutput schema / properties / support / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_form1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_history1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_proposal1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_result1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_selection1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
    • Changedelicit_status1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
  2. 1 tool update
    • Addedelicit_display
  3. 4 tool updates
    • Changedelicit_approval1 field changed
      • changedInput schema / properties / displayTemplate / maxLength
        Previous value: -20000New value: +32768
    • Changedelicit_proposal1 field changed
      • changedInput schema / properties / displayTemplate / maxLength
        Previous value: -20000New value: +32768
    • Changedelicit_result3 fields changed
      • changedOutput schema / properties / formSubmission / description
        Previous value: -"The reviewer-filled field values keyed by requestedSchema property name; null in json mode or on decline."New value: +"What the review form submitted, keyed by field name: elicit_approval's form fields (null in json mode), { selectedIds } for elicit_selection, the included fields for elicit_proposal. Null on decline."
      • removedOutput schema / properties / selectedIds
        Removed value: -{
        -  "description": "elicit_selection only, on submit: the chosen option ids.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / values
        Removed value: -{
        -  "additionalProperties": {},
        -  "description": "elicit_proposal only, on submit: the proposed values for just the fields the reviewer included.",
        -  "propertyNames": {
        -    "type": "string"
        -  },
        -  "type": "object"
        -}
    • Changedelicit_selection5 fields changed
      • changedInput schema / properties / css / maxLength
        Previous value: -20000New value: +32768
      • changedInput schema / properties / footerTemplate / maxLength
        Previous value: -20000New value: +32768
      • changedInput schema / properties / headingTemplate / maxLength
        Previous value: -20000New value: +32768
      • changedInput schema / properties / hoverTemplate / maxLength
        Previous value: -20000New value: +32768
      • changedInput schema / properties / rowTemplate / maxLength
        Previous value: -20000New value: +32768
  4. 1 tool update
    • Changedelicit_selection1 field changed
      • changedInput schema / properties / rowTemplate / description
        Previous value: -"LiquidJS template producing the <td> cells of one option row; the option is exposed as `option` (e.g. <td>{{ option.name }}</td><td>{{ option.score }}</td>). Default: a single cell of `option.label`, falling back to `option.id`."New value: +"LiquidJS template producing the <td> cells of one option row; the option is exposed as `option` (e.g. <td>{{ option.name }}</td><td>{{ option.score }}</td>). Any link must carry target=\"_blank\" — without it the click replaces the option table with the linked page and the reviewer loses the form. Default: a single cell of `option.label`, falling back to `option.id`."
  5. 12 tool updates
    • Changedelicit_approval8 fields changed
      • addedInput schema / properties / context / description
        Added value: +"json mode: a read-only JSON payload the reviewer approves or declines as-is. Echoed back verbatim in elicit_result. Rendered as raw JSON unless `displayTemplate` is given."
      • addedInput schema / properties / expiresInSeconds / description
        Added value: +"How long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days)."
      • addedInput schema / properties / labels / description
        Added value: +"Relabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed."
      • addedInput schema / properties / labels / properties / decline / description
        Added value: +"Replacement label for the decline button."
      • addedInput schema / properties / labels / properties / submit / description
        Added value: +"Replacement label for the submit button."
      • addedInput schema / properties / message / description
        Added value: +"The prompt shown to the reviewer at the top of the review page — say what needs approving and why."
      • addedInput schema / properties / requestedSchema / description
        Added value: +"form mode: JSON Schema in the MCP elicitation requestedSchema subset (flat object of string / number / integer / boolean / enum properties — no nested objects, arrays of objects, $ref, or allOf). The reviewer fills these fields on the review page; property `default`s seed the form."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "elicitationDelivered": {
        +      "description": "True when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.",
        +      "type": "boolean"
        +    },
        +    "elicitationId": {
        +      "description": "Unique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.",
        +      "type": "string"
        +    },
        +    "expiresAt": {
        +      "description": "When the request stops being decidable (timestamp).",
        +      "type": "string"
        +    },
        +    "reviewUrl": {
        +      "description": "URL of the hosted review page where a human decides this request.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "const": "pending",
        +      "description": "Always `pending` at creation.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "elicitationId",
        +    "status",
        +    "reviewUrl",
        +    "expiresAt",
        +    "elicitationDelivered"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_await2 fields changed
      • addedInput schema / properties / elicitationId / description
        Added value: +"The `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "status": {
        +      "description": "The request's state when the wait ended; `pending` means the polling window elapsed undecided — call again to keep waiting.",
        +      "enum": [
        +        "pending",
        +        "submitted",
        +        "declined",
        +        "canceled",
        +        "expired",
        +        "consumed"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_cancel2 fields changed
      • addedInput schema / properties / elicitationId / description
        Added value: +"The `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "status": {
        +      "const": "canceled",
        +      "description": "The request is now terminally canceled.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_confirm6 fields changed
      • addedInput schema / properties / labels / description
        Added value: +"Relabel or localize the OK/Cancel buttons. Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed."
      • addedInput schema / properties / labels / properties / cancel / description
        Added value: +"Replacement label for the Cancel button (e.g. \"Cancelar\")."
      • addedInput schema / properties / labels / properties / ok / description
        Added value: +"Replacement label for the OK button (e.g. \"Aceptar\")."
      • addedInput schema / properties / message / description
        Added value: +"The yes/no question shown to the user in the host's elicitation dialog."
      • addedInput schema / properties / timeoutSeconds / description
        Added value: +"How long to wait for the answer, in seconds (default 300, clamped 60-3600)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "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"
        +}
    • Changedelicit_doctor6 fields changed
      • addedInput schema / properties / notes / description
        Added value: +"With share: anything unusual about the setup worth recording with the evidence."
      • addedInput schema / properties / probeElicitation / description
        Added value: +"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."
      • addedInput schema / properties / productName / description
        Added value: +"With share: the host product's name as the user sees it (e.g. \"Claude Desktop\") — the report cannot detect this from inside."
      • addedInput schema / properties / productVersion / description
        Added value: +"With share: the host product's version, if known."
      • addedInput schema / properties / share / description
        Added value: +"Contribute this report to Elicitly's public Support Matrix evidence queue. Stored: the report plus productName / productVersion / notes; no elicitation payloads or conversation content."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "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": false,
        +      "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"
        +    },
        +    "shareError": {
        +      "description": "Present when sharing was requested but failed: a one-line error summary.",
        +      "type": "string"
        +    },
        +    "shared": {
        +      "description": "Present when share: true was passed — whether the report landed in the evidence queue.",
        +      "type": "boolean"
        +    },
        +    "support": {
        +      "additionalProperties": false,
        +      "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"
        +}
    • Changedelicit_form4 fields changed
      • addedInput schema / properties / message / description
        Added value: +"The instruction shown to the user above the form fields."
      • addedInput schema / properties / requestedSchema / description
        Added value: +"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"
      • addedInput schema / properties / timeoutSeconds / description
        Added value: +"How long to wait for the answer, in seconds (default 300, clamped 60-3600) — raise it for forms with several fields."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "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"
        +}
    • Changedelicit_history5 fields changed
      • addedInput schema / properties / asOf / description
        Added value: +"Snapshot anchor from a previous page's result — pass it back to keep pagination stable while new requests arrive. Omit on the first page."
      • addedInput schema / properties / page / description
        Added value: +"1-based page number to fetch."
      • addedInput schema / properties / pageSize / description
        Added value: +"Items per page (1-100)."
      • addedInput schema / properties / scope / description
        Added value: +"'me' = your own requests; 'org' = the whole organization (admins only)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "asOf": {
        +      "description": "The snapshot anchor this page was computed at — pass it back on later pages to keep the window stable while new requests arrive.",
        +      "type": "string"
        +    },
        +    "items": {
        +      "description": "The requested page of elicitations, newest first.",
        +      "items": {
        +        "additionalProperties": {},
        +        "propertyNames": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "page": {
        +      "description": "The 1-based page that was served.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "pageSize": {
        +      "description": "Items per page that was applied.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "scope": {
        +      "description": "The scope that was served.",
        +      "enum": [
        +        "me",
        +        "org"
        +      ],
        +      "type": "string"
        +    },
        +    "total": {
        +      "description": "Total matching requests — the last page is ceil(total / pageSize).",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "items",
        +    "page",
        +    "pageSize",
        +    "asOf",
        +    "total",
        +    "scope"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_ping1 field changed
      • addedInput schema / properties / message / description
        Added value: +"Text to echo back (default \"ping\")."
    • Changedelicit_proposal14 fields changed
      • addedInput schema / properties / columns / description
        Added value: +"Names the read-only columns of the diff grid."
      • addedInput schema / properties / columns / properties / current / properties / label / description
        Added value: +"Header of the read-only Current column."
      • addedInput schema / properties / columns / properties / sources / description
        Added value: +"The read-only Source column(s), in display order."
      • addedInput schema / properties / columns / properties / sources / items / properties / key / description
        Added value: +"Unique key referenced by `fields.<property>.sources`."
      • addedInput schema / properties / columns / properties / sources / items / properties / label / description
        Added value: +"Column header shown to the reviewer."
      • addedInput schema / properties / context / description
        Added value: +"Optional identity/context passthrough echoed back verbatim in elicit_result — NOT shown to the reviewer unless `displayTemplate` renders it."
      • addedInput schema / properties / expiresInSeconds / description
        Added value: +"How long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days)."
      • addedInput schema / properties / fields / description
        Added value: +"Per-property read-only cell values, keyed by requestedSchema property name: { <property>: { sources: { <sourceKey>: value }, current: value, include?: boolean } }. `include: false` starts the field unchecked."
      • addedInput schema / properties / labels / description
        Added value: +"Relabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed."
      • addedInput schema / properties / labels / properties / decline / description
        Added value: +"Replacement label for the decline button."
      • addedInput schema / properties / labels / properties / submit / description
        Added value: +"Replacement label for the submit button."
      • addedInput schema / properties / message / description
        Added value: +"The prompt shown to the reviewer above the diff grid — say what change is proposed and why."
      • addedInput schema / properties / requestedSchema / description
        Added value: +"JSON Schema (MCP elicitation requestedSchema subset — flat object of string / number / boolean / enum properties) defining the editable Proposed fields; each property's `default` is its initial proposed value."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "elicitationDelivered": {
        +      "description": "True when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.",
        +      "type": "boolean"
        +    },
        +    "elicitationId": {
        +      "description": "Unique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.",
        +      "type": "string"
        +    },
        +    "expiresAt": {
        +      "description": "When the request stops being decidable (timestamp).",
        +      "type": "string"
        +    },
        +    "reviewUrl": {
        +      "description": "URL of the hosted review page where a human decides this request.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "const": "pending",
        +      "description": "Always `pending` at creation.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "elicitationId",
        +    "status",
        +    "reviewUrl",
        +    "expiresAt",
        +    "elicitationDelivered"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_result2 fields changed
      • addedInput schema / properties / elicitationId / description
        Added value: +"The `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "context": {
        +      "description": "The caller's original `context`, echoed verbatim (null if none was supplied)."
        +    },
        +    "decision": {
        +      "description": "The reviewer's choice: submitted = approved/filled in, declined = explicit no.",
        +      "enum": [
        +        "submitted",
        +        "declined"
        +      ],
        +      "type": "string"
        +    },
        +    "formSubmission": {
        +      "description": "The reviewer-filled field values keyed by requestedSchema property name; null in json mode or on decline."
        +    },
        +    "selectedIds": {
        +      "description": "elicit_selection only, on submit: the chosen option ids.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "status": {
        +      "const": "consumed",
        +      "description": "The outcome has been read at least once.",
        +      "type": "string"
        +    },
        +    "values": {
        +      "additionalProperties": {},
        +      "description": "elicit_proposal only, on submit: the proposed values for just the fields the reviewer included.",
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "decision",
        +    "context",
        +    "formSubmission"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_selection14 fields changed
      • addedInput schema / properties / css / description
        Added value: +"Custom CSS injected on the review page to style the option table."
      • addedInput schema / properties / expiresInSeconds / description
        Added value: +"How long the request stays decidable, in seconds (default 3600, clamped 60-604800 — 1 minute to 7 days)."
      • addedInput schema / properties / footerTemplate / description
        Added value: +"LiquidJS template producing the table footer rows (no variables). Omit for no footer."
      • addedInput schema / properties / headingTemplate / description
        Added value: +"LiquidJS template producing the <th> cells of the table header (no variables). Omit for no header row."
      • addedInput schema / properties / hoverTemplate / description
        Added value: +"LiquidJS template for a per-option hover/details card; the option is exposed as `option`. Omit for no hover card."
      • addedInput schema / properties / labels / description
        Added value: +"Relabel or localize the action buttons (submit, decline). Each label is trimmed, 1-40 characters; unknown keys are rejected. Button placement and styling stay fixed."
      • addedInput schema / properties / labels / properties / decline / description
        Added value: +"Replacement label for the decline button."
      • addedInput schema / properties / labels / properties / submit / description
        Added value: +"Replacement label for the submit button."
      • addedInput schema / properties / maxSelections / description
        Added value: +"Most options the reviewer may pick (default 1 = single-select; clamped to the option count)."
      • addedInput schema / properties / message / description
        Added value: +"The instruction shown above the option list — say what the reviewer is choosing and why."
      • addedInput schema / properties / minSelections / description
        Added value: +"Fewest options the reviewer must pick to submit (default 1; 0 allows none)."
      • addedInput schema / properties / options / description
        Added value: +"The choices (1-500). Each option is an object with a required unique `id` (returned in `selectedIds`) plus any extra keys, which `rowTemplate` / `hoverTemplate` can reference (e.g. {{ option.name }})."
      • addedInput schema / properties / rowTemplate / description
        Added value: +"LiquidJS template producing the <td> cells of one option row; the option is exposed as `option` (e.g. <td>{{ option.name }}</td><td>{{ option.score }}</td>). Default: a single cell of `option.label`, falling back to `option.id`."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "elicitationDelivered": {
        +      "description": "True when the request was also pushed to the connected client as a url-mode elicitation; when false, surface `reviewUrl` to the human yourself.",
        +      "type": "boolean"
        +    },
        +    "elicitationId": {
        +      "description": "Unique id of the created request — pass it to elicit_await / elicit_status / elicit_result / elicit_cancel.",
        +      "type": "string"
        +    },
        +    "expiresAt": {
        +      "description": "When the request stops being decidable (timestamp).",
        +      "type": "string"
        +    },
        +    "reviewUrl": {
        +      "description": "URL of the hosted review page where a human decides this request.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "const": "pending",
        +      "description": "Always `pending` at creation.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "elicitationId",
        +    "status",
        +    "reviewUrl",
        +    "expiresAt",
        +    "elicitationDelivered"
        +  ],
        +  "type": "object"
        +}
    • Changedelicit_status2 fields changed
      • addedInput schema / properties / elicitationId / description
        Added value: +"The `elicitationId` returned by the creating tool (elicit_approval, elicit_selection, or elicit_proposal)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "status": {
        +      "description": "The request's current lifecycle state.",
        +      "enum": [
        +        "pending",
        +        "submitted",
        +        "declined",
        +        "canceled",
        +        "expired",
        +        "consumed"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Human-in-the-Loop authorization gateway for AI Agents. Securely pause MCP workflows and route high-risk actions to human approvers via Slack or Email.
    36 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that provides human-in-the-loop approval for risky AI agent actions, with durable state and audit logs.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Runtime permission, approval, and audit governance for AI agent tool execution, enabling human oversight of risky actions via an MCP server.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources