About Elicitation MCP Server
Elicitation MCP Server lets agents request information from users during a task. It supports free text and several structured input types, returning an answer or a cancellation notice.
Key features
- 01Collect free-form text
- 02Offer selectable options
- 03Ask for booleans and numbers
- 04Collect dates, email, and URIs
Use cases
- 01Fill in information needed for a task
- 02Let users choose from alternatives
- 03Collect numbers within defined limits
MCP support
It exposes elicitation tools to MCP clients for requesting text, options, booleans, numbers, dates or times, email addresses, and URIs. Cancellations are also reported.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
7Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| requestedInformationTitle | string | Yes | A concise title for the requested information. |
| requestedInformationDescription | string | No | An optional concise description for the requested information. |
Details
From the project READMEElicitation MCP Server
This MCP server allows agents to request information directly from the user, such as text, numbers, etc.
Tools
-
elicit_information- A tool to request information directly from the user, as a free-form text input
- Inputs:
requestedInformationTitle(string): A concise title for the requested informationrequestedInformationDescription(string, optional): An optional concise description for the requested information
- Returns: Text content with user's response ("User answered with: {answer}"), or notification if user declined/canceled
-
elicit_options- A tool to prompt the user to select from a list of options
- Inputs:
requestedInformationTitle(string): A concise title for the requested informationrequestedInformationDescription(string, optional): An optional concise description for the requested informationoptions(array of strings): An array of option values to choose fromoptionNames(array of strings, optional): An optional array of human-readable names for the options. Must match the length and order of options if provided
- Returns: Text content with user's selected option ("User answered with: {selection}"), or notification if user declined/canceled
-
elicit_boolean- A tool to prompt the user for a Boolean response (yes/no, true/false, on/off etc.)
- Inputs:
question(string): A concise question that can be answered with a Boolean responsequestionDescription(string, optional): An optional concise description for the requested information
- Returns: Text content with user's boolean response ("User answered with: true/false"), or notification if user declined/canceled
-
elicit_number- A tool to prompt the user for a number input
- Inputs:
requestedNumberTitle(string): A concise title for the requested numberrequestedNumberDescription(string, optional): An optional concise description for the requested informationminimum(number, optional): An optional minimum value constraintmaximum(number, optional): An optional maximum value constraint
- Returns: Text content with user's number input ("User answered with: {number}"), or notification if user declined/canceled
-
elicit_date_time- A tool to prompt the user for a date or date-time input
- Inputs:
requestedDateTimeTitle(string): A concise title for the requested date/timerequestedDateTimeDescription(string, optional): An optional concise description for the requested informationformat(enum: "date" | "date-time", default: "date"): The format for the date/time input. 'date' for date only, 'date-time' for date and time
- Returns: Text content with user's date/time input ("User answered with: {date}"), or notification if user declined/canceled
-
elicit_email- A tool to prompt the user for an email address input
- Inputs:
requestedEmailTitle(string): A concise title for the requested emailrequestedEmailDescription(string, optional): An optional concise description for the requested information
- Returns: Text content with user's email input ("User answered with: {email}"), or notification if user declined/canceled
-
elicit_uri- A tool to prompt the user for a URI input
- Inputs:
requestedUriTitle(string): A concise title for the requested URIrequestedUriDescription(string, optional): An optional concise description for the requested information
- Returns: Text content with user's URI input ("User answered with: {uri}"), or notification if user declined/canceled
Usage with Claude Desktop (uses stdio Transport)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"elicit": {
"command": "npx",
"args": [
"-y",
"@blizzy/mcp-elicit"
]
}
}
}
Usage with VS Code
For quick installation, use of of the one-click install buttons below.
For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).
Optionally, you can add it to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.
Note that the
mcpkey is not needed in the.vscode/mcp.jsonfile.
NPX
{
"mcp": {
"servers": {
"elicit": {
"command": "npx",
"args": ["-y", "@blizzy/mcp-elicit"]
}
}
}
}
Running from source with HTTP+SSE Transport (deprecated as of 2025-03-26)
pnpm install
pnpm run start:sse
Run from source with Streamable HTTP Transport
pnpm install
pnpm run start:streamableHttp
Running as an installed package
Install
npm install -g @blizzy/mcp-elicit@latest
Run the default (stdio) server
npx @blizzy/mcp-elicit
Or specify stdio explicitly
npx @blizzy/mcp-elicit stdio
Run the SSE server
npx @blizzy/mcp-elicit sse
Run the streamable HTTP server
npx @blizzy/mcp-elicit streamableHttp
License
This package is licensed under the MIT license.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.