elicitly
v0.8.4
Published
Local (stdio) MCP server that gives your prompts and Agent Skills MCP elicitation — human-in-the-loop dialogs (elicit_confirm, elicit_form) the elicit_doctor capability report, and elicit_display for rendered HTML as an MCP App, with no server of your own
Maintainers
Readme
elicitly — the Free Edition local MCP server
A local (stdio) MCP server that makes MCP elicitation easy to use from any prompt or Agent Skill — and its cross-host support visible.
Tools
- elicit_confirm — an OK/Cancel confirmation modeled on JavaScript's
confirm(); overridelabels.ok/labels.cancelto relabel or localize (e.g.Aceptar/Cancelar). - elicit_form — fire a form elicitation with your own JSON schema
(
requestedSchemasubset); returns the raw{action, content}. - elicit_doctor — reports the connected host's support for the
client features
(elicitation form vs url mode, sampling, roots), and with
probeElicitation: trueruns one live elicitation round-trip and classifies the result (working,advertised_but_autocanceled,user_declined,advertised_but_unanswered,unsupported). - elicit_display — show the user rendered HTML instead of Markdown: pass a
LiquidJS template plus JSON
context, and hosts that support MCP Apps render it inline. Templates may load Tailwind/DaisyUI from jsDelivr; allow more image/script/style origins withELICITLY_DISPLAY_RESOURCE_DOMAINS(comma-separatedhttps://origins) — in the Claude Desktop extension, that's the elicit_display: extra allowed origins setting.
Run it
npx -y elicitlyRegister it with any MCP host as a stdio server. In Claude Code:
claude mcp add elicitly -- npx -y elicitlyor in a host config file (.mcp.json or client settings):
{
"mcpServers": {
"elicitly": { "command": "npx", "args": ["-y", "elicitly"] }
}
}Claude Desktop (one-click)
Download elicitly.mcpb from the
latest release and
open it in Claude Desktop (or Settings → Extensions → Install extension).
The bundle is self-contained — no Node.js or npm setup of your own; it runs
on Claude Desktop's managed runtime. Build it from source with
pnpm --filter elicitly build:mcpb.
Claude Desktop and dialogs: current Claude Desktop builds don't advertise elicitation to local MCP servers (config-file and extension installs alike — measured, not assumed), so
elicit_confirmandelicit_formreturn their graceful no-answer contract there rather than raising a dialog.elicit_doctorstill reports the host truthfully — that report is the point. See the Elicitation Support Matrix for hosts where dialogs work, and the Pro Edition for approvals that reach a browser-based review page when the host has no native dialog.
Exercise it
- elicit_doctor — passive capability report, no user prompt. Check
support.elicitationForm/support.elicitationUrl. - elicit_doctor with
probeElicitation: true— one real elicitation round-trip; readprobes.elicitationForm.verdict. - elicit_confirm — an OK/Cancel prompt (e.g.
message: "Ship it?"). - elicit_form — your own JSON schema; inspect the raw
{action, content}.
Full docs: elicitly.ai/docs
From source
pnpm install
pnpm --filter elicitly build # produces packages/elicitly/dist/cli.mjs
claude mcp add elicitly -- node /absolute/path/to/packages/elicitly/dist/cli.mjsPrivacy
The server runs entirely on your machine: tool calls and elicitation answers
stay between your MCP host and the local process, and nothing is sent
anywhere. The contribute-fingerprint prompt only prepares a GitHub issue
link — you review and submit it yourself. Project privacy policy:
https://www.elicitly.ai/privacy/
License
Elicitly™ is a trademark of Preneur LLC — see TRADEMARKS.md.
