Skip to main content
Glama
README.md
# Educational MCP server to learn BST & AVL trees

A Model Context Protocol (MCP) server designed to help you learn and visualize Binary Search Trees (BST) and AVL Trees. This project implements these data structures in TypeScript, demonstrating core algorithms like insertion, deletion, and AVL rotations.

## Features

- **Binary Search Tree (BST)**: Standard implementation.
- **AVL Tree**: Self-balancing binary search tree with automatic rotations (Left, Right, Left-Right, Right-Left).
- **Visualization**: Tools to print the tree structure to the console/client to see how it changes after operations.
- **Educational Tools**: Explicitly designed to help users "hand trace" or visualize specific tree states.

## Installation

1. Clone the repository.
2. Install dependencies:
   ```bash
   npm install
   ```

## Usage

### Building the Server
Compile the TypeScript code:
```bash
npm run build
```

### Running the Server
Start the MCP server (stdio transport):
```bash
npm start
```

### Running Verification Tests
Run the included test script which demonstrates a sequence of insertions and rotations (based on a classic hand-tracing example):
```bash
npm test
```

### Using with Claude Desktop
To use this server with the Claude Desktop app, add the following configuration to your `claude_desktop_config.json` file:

```json
{
  "mcpServers": {
    "bst-avl": {
      "command": "node",
      "args": [
        "/YourDirectory/bst-avl-mcp/build/index.js"
      ]
    }
  }
}
```

*Note: Update the path to match your project location.*

## Available Tools

- `reset_tree`: Resets the specified tree (`bst` or `avl`) to be empty.
- `insert_node`: Inserts a number into the tree and returns the new visual structure.
- `delete_node`: Deletes a number from the tree and maintains balance (for AVL).
- `search_node`: Checks if a number exists in the tree.
- `print_tree`: Returns a string representation of the current tree hierarchy.

## Project Structure

- `src/bst.ts`: Basic BST implementation.
- `src/avl.ts`: AVL Tree implementation with rotation logic.
- `src/index.ts`: MCP Server entry point.
- `src/types.ts`: Shared TypeScript interfaces.

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool performs a distinct operation on the tree: reset, insert, delete, search, and print. No two tools overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (reset_tree, insert_node, delete_node, search_node, print_tree). The convention is predictable and easy to read.

Tool Count5/5

Five tools are well-scoped for a BST/AVL tree server, covering the essential operations without bloat. Each tool clearly earns its place.

Completeness4/5

The surface covers the core lifecycle: reset, insert, delete, search, and visualize. Minor gaps exist for auxiliary queries like tree height, size, or traversal order, but these are not essential for basic tree manipulation.

Maintenance

ActivityInactive
ResponsivenessNo issues