Skip to main content
Glama
README.md
##### 1) Install dependencies (if not already)
```
npm install   # or: pnpm install / yarn install
```
##### 2) Build server (production)
```
npx nx build askme-server
```

##### 3) Build UI (production)
```
npx nx build askme-ui
```
MCP config
Your example config is correct for using the built server in stdio mode:

```jsonc
"ask-me-mcp": {
  "command": "node",
  "args": [
    "C:/Temp/_Work/ask-me-mcp/dist/askme-server/main.js"
  ],
  "disabled": false,
  "disabledTools": [
    "choose-next",
    "challenge-hypothesis",
    "ask-multiple-choice"
  ]
}
```
# AskMeMCP - Human-in-the-Loop MCP Server

AskMeMCP is a Model Context Protocol (MCP) server that enables AI assistants to request human input through a web interface. It implements multiple interactive tools (`ask-one-question`, `ask-multiple-choice`, `challenge-hypothesis`, `choose-next`), allowing MCP clients like Claude Code to pause execution and wait for human responses.

## Features

- **stdio Transport**: Direct integration with Claude Code and other MCP clients
- **Self-Contained Server**: Serves Angular UI statically - no separate UI server needed
- **Dynamic Port Allocation**: Automatically finds available port if default is in use
- **Automatic Browser Opening**: Opens UI automatically when requests arrive
- **Real-time Updates**: Server-Sent Events for live communication
- **Multiple Tool Types**: Single questions, multiple choice, hypothesis challenges, and decision workflows

## Installation

### Option 1: Using npx (No Installation Required)

You can run Ask-Me MCP directly using npx without installing it globally:

```bash
npx ask-me-mcp
```

Note: The first time you run this, npx will ask for confirmation to install the package temporarily. To skip this confirmation, use:

```bash
npx --yes ask-me-mcp
```

### Option 2: Global Installation

```bash
npm install -g ask-me-mcp
ask-me-mcp
```

## Configuration for Different Clients

### Claude Desktop App

Add to your Claude configuration file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "npx",
      "args": ["--yes", "ask-me-mcp"]
    }
  }
}
```

### Claude Code

Using the CLI:
```bash
claude mcp add askme -- npx -y ask-me-mcp
```

Or manually add to your Claude Code configuration:
- **macOS**: `~/Library/Application Support/Claude/claude_code_config.json`
- **Windows**: `%APPDATA%\Claude\claude_code_config.json`
- **Linux**: `~/.config/Claude/claude_code_config.json`

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "npx",
      "args": ["--yes", "ask-me-mcp"]
    }
  }
}
```

### Cursor

Add to your Cursor settings (in `.cursor/mcp_settings.json` in your project root):

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "npx",
      "args": ["--yes", "ask-me-mcp"]
    }
  }
}
```

### VS Code with Continue or Similar Extensions

For VS Code extensions that support MCP, add to your extension's configuration:

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "npx",
      "args": ["--yes", "ask-me-mcp"]
    }
  }
}
```

### Port Configuration

The server has two port behaviors:

1. **Auto-discovery (default)**: Finds available port starting from 3000
   ```bash
   npx --yes ask-me-mcp
   ```

2. **Fixed port**: Uses exact port specified with `--port` (fails if port is in use)
   ```bash
   npx --yes ask-me-mcp --port 8080
   ```

For Claude Code configuration with fixed port:

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "npx",
      "args": ["--yes", "ask-me-mcp", "--port", "8080"]
    }
  }
}
```

### Option 3: Build from Source

```bash
# Clone the repository
git clone https://github.com/yourusername/AskMeMCP.git
cd AskMeMCP

# Install dependencies
npm install

# Build all projects
npm run build

# Configure Claude Code with full path
```

Add to your Claude Code configuration:

```json
{
  "mcpServers": {
    "ask-me": {
      "command": "node",
      "args": ["/full/path/to/AskMeMCP/dist/askme-server/main.js"]
    }
  }
}
```

## Usage

Once configured, you can use the available tools in Claude Code:

### ask-one-question Tool
```
Please use the ask-one-question tool to ask me what my favorite color is
```

### ask-multiple-choice Tool
```
Please use the ask-multiple-choice tool with these questions:
{
  "questions": [
    {
      "text": "Which deployment environments should we target?",
      "options": ["Development", "Staging", "Production"]
    },
    {
      "text": "Which features should be included in this release?",
      "options": ["User Authentication", "Dashboard Updates", "API Improvements", "Mobile Support"]
    }
  ]
}
```

All requests will appear in the web UI where you can provide responses. For multiple choice questions, you can select multiple options and add comments to each choice.

## Architecture

- **askme-server**: stdio MCP server with embedded HTTP bridge for browser communication
- **askme-ui**: Angular 20+ frontend with reactive UI using signals
- **askme-shared**: Shared TypeScript types for frontend-backend communication

## Development

```bash
# Run the UI in development mode
npx nx serve askme-ui

# Run the server in development mode
npx nx serve askme-server

# Run tests
npx nx test askme-ui
npx nx test askme-server

# Lint code
npx nx lint askme-ui
npx nx lint askme-server
```

## Troubleshooting

### Connection Issues with Claude Code

If you see "Connection failed" errors:

1. **Enable Debug Mode**: Run with debug logging to see what's happening:
   ```bash
   ASK_ME_MCP_DEBUG=1 claude --debug
   ```

2. **Check the Server**: Test if the server runs correctly:
   ```bash
   npx --yes ask-me-mcp --help
   ```

3. **Port Conflicts**: If port 3000 is in use, specify a different port:
   ```bash
   claude mcp add ask-me npx --yes ask-me-mcp --port 8080
   ```

4. **Manual Test**: Run the server directly to see any errors:
   ```bash
   npx --yes ask-me-mcp
   ```

### Common Issues

- **First Time Confirmation**: The first run of `npx ask-me-mcp` may ask for confirmation. Use `npx --yes` to skip this.
- **Port Already in Use**: The server automatically finds an available port, but you can specify one with `--port`
- **Browser Not Opening**: If the browser doesn't open automatically, manually navigate to the port shown in debug logs

## License

MIT