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