Skip to main content
Glama
imranbarbhuiya

Ask Question MCP App

README.md
# Ask Question MCP App

An MCP App that provides an interactive UI for asking questions with various input types.

## Features

- **Text Input**: Free-form text area for open-ended questions
- **Single Select**: Choose one option from a list
- **Multi-Select**: Choose multiple options with checkboxes
- **Confirm**: Simple Yes/No confirmation dialog

## Installation

```bash
npm install
npm run build
```

## Usage

The MCP server exposes a single tool `ask_question` with the following parameters:

| Parameter     | Type   | Required | Description                                                                         |
| ------------- | ------ | -------- | ----------------------------------------------------------------------------------- |
| `question`    | string | Yes      | The question to display                                                             |
| `inputType`   | enum   | Yes      | `text`, `select`, `multiselect`, or `confirm`                                       |
| `options`     | array  | No       | Options for select/multiselect (each with `value`, `label`, optional `description`) |
| `placeholder` | string | No       | Placeholder text for text input                                                     |

### Examples

**Text Input:**

```json
{
	"question": "What feature would you like to implement?",
	"inputType": "text",
	"placeholder": "Describe the feature..."
}
```

**Single Select:**

```json
{
	"question": "Which framework do you prefer?",
	"inputType": "select",
	"options": [
		{
			"value": "react",
			"label": "React",
			"description": "A JavaScript library for building user interfaces"
		},
		{
			"value": "vue",
			"label": "Vue",
			"description": "The progressive JavaScript framework"
		},
		{
			"value": "svelte",
			"label": "Svelte",
			"description": "Cybernetically enhanced web apps"
		}
	]
}
```

**Multi-Select:**

```json
{
	"question": "Select the features to include:",
	"inputType": "multiselect",
	"options": [
		{ "value": "auth", "label": "Authentication" },
		{ "value": "db", "label": "Database" },
		{ "value": "api", "label": "REST API" },
		{ "value": "tests", "label": "Unit Tests" }
	]
}
```

**Confirmation:**

```json
{
	"question": "Do you want to proceed with the deployment?",
	"inputType": "confirm"
}
```

## VS Code Configuration

Add to your `.vscode/mcp.json`:

```json
{
	"servers": {
		"ask-question-mcp": {
			"type": "stdio",
			"command": "node",
			"args": ["/path/to/ask-question-mcp/dist/index.js"]
		}
	}
}
```

## Development

```bash
npm run watch
```

## License

MIT

TDQS

B3.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: ask_question initiates a question to the user with UI support, while submit_answer handles the response submission. There is no overlap or ambiguity between them, as one is for asking and the other for answering.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (ask_question and submit_answer), using snake_case throughout. The naming is predictable and aligns well with their functions, with no deviations or mixed conventions.

Tool Count2/5

With only 2 tools, the set feels thin for a server named 'Ask Question MCP App', which suggests a broader interactive questioning domain. This minimal count may limit functionality, as agents might expect more features like managing questions or handling different dialog types beyond the basic ask-answer cycle.

Completeness2/5

The tool surface is significantly incomplete for an interactive questioning domain. While ask_question and submit_answer cover a basic ask-answer flow, there are notable gaps such as tools for listing pending questions, canceling questions, or handling different UI modes beyond the described ones. This could lead to agent failures in more complex scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues