Skip to main content
Glama
NewJerseyStyle

ELIZA MCP Server

README.md
# ELIZA MCP Server

A Model Context Protocol (MCP) server that provides access to the classic ELIZA chatbot. ELIZA is a famous early natural language processing program that simulates a Rogerian psychotherapist.

## Overview

This MCP server exposes ELIZA's conversational capabilities through a standardized interface, allowing LLMs to interact with this historic chatbot for demonstrations, examples, or entertainment purposes.

## Features

- **Stateful Conversations**: Maintains conversation context across multiple interactions
- **Classic ELIZA Responses**: Uses the original ELIZA algorithm from the elizabot npm package
- **Simple API**: Four tools for complete control over ELIZA interactions

## Installation

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

## Usage

### With Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "eliza": {
      "command": "npx",
      "args": ["elisa-mcp"]
    }
  }
}
```

### Standalone

```bash
npm start
```

## Available Tools

### eliza_chat

Send a message to ELIZA and receive a response.

**Parameters:**
- `message` (string, required): The message to send to ELIZA

**Returns:**
- `response` (string): ELIZA's response
- `quit` (boolean): Whether the user said a quit phrase

**Example:**
```json
{
  "message": "I'm feeling sad today"
}
```

### eliza_reset

Reset the ELIZA conversation, clearing all memory and starting fresh.

**Parameters:** None

**Returns:** Confirmation message

### eliza_get_initial

Get ELIZA's initial greeting message to start a new conversation.

**Parameters:** None

**Returns:** ELIZA's greeting

### eliza_get_final

Get ELIZA's farewell message when ending the conversation.

**Parameters:** None

**Returns:** ELIZA's farewell

## Example Interaction

1. Get initial greeting:
```
Tool: eliza_get_initial
Response: "Hello. How are you feeling today?"
```

2. Chat with ELIZA:
```
Tool: eliza_chat
Input: { "message": "I'm worried about my future" }
Response: { "response": "Why are you worried about your future?", "quit": false }
```

3. Continue conversation:
```
Tool: eliza_chat
Input: { "message": "I don't know what I want to do" }
Response: { "response": "Do you often feel uncertain about what you want?", "quit": false }
```

4. Reset if needed:
```
Tool: eliza_reset
Response: "ELIZA conversation has been reset..."
```

## How ELIZA Works

ELIZA uses pattern matching and substitution to simulate conversation. It:
- Recognizes keywords and patterns in user input
- Applies transformation rules to generate responses
- Maintains a small memory of previous statements
- Occasionally reflects earlier topics back to the user

The chatbot gives the illusion of understanding while using simple text manipulation techniques.

## Technical Details

- Built with the official MCP TypeScript SDK
- Uses the `elizabot` npm package (v0.0.3)
- Maintains conversation state in memory
- Communicates via stdio transport

## References

- [Model Context Protocol](https://modelcontextprotocol.io/)
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- [elizabot on npm](https://www.npmjs.com/package/elizabot)
- [Original ELIZA by Joseph Weizenbaum (1966)](https://en.wikipedia.org/wiki/ELIZA)

## License

MIT

## Sources

This project was built using information from:
- [MCP TypeScript SDK Documentation](https://github.com/modelcontextprotocol/typescript-sdk)
- [elizabot npm package](https://www.npmjs.com/package/elizabot)
- [MCP Server Examples](https://modelcontextprotocol.io/examples)

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: chat, reset, get initial greeting, and get final farewell. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with the 'eliza_' prefix, making them predictable and easy to distinguish.

Tool Count5/5

Four tools provide a well-scoped set that covers the essential operations for interacting with a simple chatbot without redundancy.

Completeness5/5

The toolset covers the full conversation lifecycle: starting (initial greeting), interacting (chat), resetting, and ending (final farewell). No obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues