Skip to main content
Glama
GreenFlux

Handsontable MCP Server

by GreenFlux
README.md
# Handsontable MCP Server

Model Context Protocol server providing access to Handsontable documentation for AI-powered code generation.

## Features

- **Three MCP Tools**
  - `get_doc` - Fetch specific documentation pages as Markdown
  - `search_docs` - Search 563 pages by keyword
  - `list_categories` - Browse all documentation categories

- **Multi-Framework Support**
  - JavaScript (vanilla)
  - React
  - Angular
  - Vue 2/3 (via integration guides)

- **Smart Features**
  - Input validation and sanitization
  - Rate limiting (100ms between requests)
  - LRU cache with 1-hour TTL (max 100 items)
  - Structured JSON logging
  - HTML to Markdown conversion

- **Coverage**
  - 61 API endpoints
  - 128 guide topics
  - 20 documentation categories
  - 563 total pages

## Quick Setup

### 1. Clone and Install

```bash
git clone https://github.com/GreenFlux/handsontable-mcp-server.git
cd handsontable-mcp-server
npm install
```

### 2. Add to Claude Desktop

**macOS:** Edit `~/Library/Application Support/Claude/claude_desktop_config.json`

**Windows:** Edit `%APPDATA%\Claude\claude_desktop_config.json`

Replace `/absolute/path/to` with your actual path:

```json
{
  "mcpServers": {
    "handsontable": {
      "command": "node",
      "args": ["/absolute/path/to/handsontable-mcp-server/index.js"]
    }
  }
}
```

### 3. Restart Claude Desktop

The server starts automatically when Claude Desktop launches.

## Using the Server

Once connected, ask Claude about Handsontable:

## Available Tools

### 1. `get_doc`

Fetch specific documentation and return as Markdown.

**Parameters:**
- `topic` (required): Documentation topic (e.g., "column-sorting", "filters")
- `framework` (optional): "javascript", "react", or "angular" (default: "javascript")
- `type` (optional): "guide" or "api" (default: "guide")

**Example:**
```
Get the React column sorting documentation
```

### 2. `search_docs`

Search for topics by keyword.

**Parameters:**
- `keyword` (required): Search term

**Example:**
```
Search Handsontable docs for "filter"
```

### 3. `list_categories`

List all documentation categories and topics.

**Example:**
```
Show me all Handsontable documentation categories
```

See [DOCUMENTATION.md](DOCUMENTATION.md) for a complete reference of all 61 API endpoints, 128 guide topics, and 20 categories.

## Development

**Run with auto-reload:**
```bash
npm run dev
```

**Run tests:**
```bash
npm test
```

**Lint code:**
```bash
npx eslint .
```

**Format code:**
```bash
npx prettier --write .
```

## Architecture

The server:
1. Receives MCP tool requests via stdio
2. Validates and sanitizes all inputs
3. Applies rate limiting (100ms between requests)
4. Fetches HTML from handsontable.com
5. Parses with JSDOM, removes navigation/footer
6. Converts to Markdown with Turndown
7. Caches result with LRU eviction
8. Returns formatted documentation

## Project Structure

```
handsontable-mcp-server/
├── index.js                 # Main MCP server
├── test.js                  # Test suite
├── docs-structure.json      # Pre-analyzed docs
├── .github/
│   └── workflows/
│       └── ci.yml          # GitHub Actions
└── README.md
```

## Contributing

Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) first.

## Security

See [SECURITY.md](SECURITY.md) for security policy and vulnerability reporting.

## License

MIT - See [LICENSE](LICENSE) for details.

## Acknowledgments

- Documentation source: [Handsontable](https://handsontable.com)
- Built with [Model Context Protocol SDK](https://github.com/modelcontextprotocol)

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: fetching a specific doc, listing categories, and searching. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case: get_doc, list_categories, search_docs.

Tool Count5/5

With 3 tools, the set is well-scoped for a documentation server, covering essential operations without being too sparse or excessive.

Completeness5/5

The tool surface covers searching, listing categories, and fetching specific docs, providing a complete workflow for documentation access.

Maintenance

ActivityInactive
ResponsivenessNo issues