mcp-interactive-choice
A MCP server for interactive user questions with native UI
claude mcp add --transport stdio oovz-mcp-interactive-choice npx -y mcp-interactive-choice
How to use
The Interactive Choice MCP Server is designed to present AI agents with a native, focused window to collect human input without interrupting the main context. It uses a native UI (built with Tauri) to render markdown-rich descriptions, and supports keyboard navigation so users can select from multiple choices or provide custom input. The server exposes a tool called ask_user that the agent can invoke when a decision from a human is required. The tool returns the chosen option, handles custom text input, and reports when the user skips or closes the window. It’s suitable for decision points where a clean UI and reliable input are important for maintaining context and flow in conversations with AI agents.
When integrated via MCP, you typically run the server through npx or a local build, then reference it in your MCP client configuration. The client can pass a title, body, and a list of choices, and the server will render them in a native window. The most important capability is the interactive prompt: the agent asks the user to choose among options, and the user’s selection is returned to the agent for continued processing. Optional flags allow you to enforce timeouts or silence focus stealing to fit your workflow.
How to install
Prerequisites:
- Node.js and npm installed on your machine
- Access to a shell/terminal
Option A – Run with npx (Recommended):
- Ensure you have npm installed. You can verify with:
node -v
npm -v
- Use the MCP server directly via npx in your client configuration (no local build required):
{
"mcpServers": {
"interactive-choice": {
"command": "npx",
"args": [
"-y",
"mcp-interactive-choice"
]
}
}
}
Option B – Local Build (from project root):
- Install dependencies and build:
npm install
npm run build
- Register with your MCP client by pointing to the built dist/index.js in your configuration, for example:
{
"mcpServers": {
"interactive-choice": {
"command": "node",
"args": [
"/path/to/mcp-interactive-choice/dist/index.js"
]
}
}
}
- Optional: enforce a global timeout for all calls by adding --timeout to the node invocation:
{
"mcpServers": {
"interactive-choice": {
"command": "node",
"args": [
"/path/to/mcp-interactive-choice/dist/index.js",
"--timeout", "120"
]
}
}
}
- Optional: prevent focus stealing with --silent:
{
"mcpServers": {
"interactive-choice": {
"command": "node",
"args": [
"/path/to/mcp-interactive-choice/dist/index.js",
"--silent"
]
}
}
}
Additional notes
Tips and notes:
- The tool exposes ask_user with arguments: title (optional), body (optional Markdown), choices (required), and recommended (optional). The response is the chosen string, or a string indicating a custom input, skip, or cancellation.
- If you integrate with clients that impose timeouts (e.g., Claude Desktop or Cursor), consider using the --timeout flag to set a fallback window for agent responses.
- The --silent flag can prevent the UI from stealing focus if your workflow launches the tool frequently.
- The server supports Markdown rendering in the body, so you can provide rich descriptions for human users.
- For debugging UI development, you can run the UI in tauri dev mode as described in the README under Development & Debugging.
Related MCP Servers
obsidian -tools
Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client.
mcp
Model Context Protocol (MCP) server for the Webflow Data API.
create -app
A CLI tool for quickly scaffolding Model Context Protocol (MCP) server applications with TypeScript support and modern development tooling
mcp -amazon
🛍📦 Unofficial Amazon Model Context Protocol Server (MCP) - Search products and purchase directly from Claude AI! ✨
Agentic -Skill
Agentic-MCP, Progressive MCP client with three-layer lazy loading. Validates AgentSkills.io pattern for efficient token usage. Use MCP without pre-install & wasting full-loading
mcp-turso
MCP server for interacting with Turso-hosted LibSQL databases