Elicitly Pro
Elicitly puts a human in the loop of any MCP-connected agent.
Что умеет
- Elicit Approval: 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
- Elicit Await: 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
- Elicit Confirm: 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
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Elicitly puts a human in the loop of any MCP-connected agent. The free stdio server (npx -y elicitly) provides elicit_confirm, elicit_form, and elicit_doctor — native host dialogs plus a capability diagnostic. The hosted Pro Edition adds durable approvals: requests that survive disconnects, reach any device via a review page, and leave an audit trail.
Как подключить
Как подключить Elicitly Pro к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://elicitly-pro.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Elicitly Pro к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://elicitly-pro.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Elicitly Pro к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://elicitly-pro.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (12)
Технические названия из tools/list. Нужны только разработчикам.
| elicit_approval | 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. |
| elicit_await | 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. |
| elicit_confirm | 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. |
| elicit_doctor | Report the connected host's elicitation/sampling/roots support. initialize.request/response echo the handshake verbatim; support holds Elicitly's derived booleans; deprecations flags client features (sampling, roots, logging) moved to Deprecated in the MCP 2026-07-28 spec (SEP-2577); probeElicitation adds a live form-elicitation round-trip under probes.elicitationForm. Client-features background: https://modelcontextprotocol.io/docs/learn/client-concepts. 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. |
| elicit_form | 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. |
| elicit_history | 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. |
| elicit_ping | Connectivity check for the hosted Elicitly server: echoes `message` back as `pong: <message>` over the authenticated session. |
| elicit_proposal | 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, `values` (included fields only). MUST NOT be used to request secrets or credentials. |
| elicit_result | 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 }` plus per-tool overlays: `elicit_selection` adds `selectedIds` (the chosen option ids); `elicit_proposal` adds, on submit, `values` (only the fields the reviewer included). |
| elicit_selection | 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. |
| elicit_status | 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. |
| elicit_cancel | 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. |