Skip to main content
Glama
README.md
# CastleCall MCP

An MCP server that exposes a text-to-speech `announce` tool for [CastleCall](https://github.com/ctf2009/castlecall) — a home PA/announcement system for Raspberry Pi.

Supports **Piper** (local) and **ElevenLabs** (cloud) TTS providers via stdio transport.

## Setup

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

## Configuration

| Variable | Required | Description |
|---|---|---|
| `CASTLECALL_URL` | Yes | URL of your CastleCall instance (e.g. `http://192.168.1.50:3000`) |
| `CASTLECALL_PROVIDER` | No | TTS provider: `piper` (default) or `elevenlabs` |
| `CASTLECALL_VOICE_ID` | When using ElevenLabs | ElevenLabs voice ID |

## Usage

### Claude Desktop / Claude Code

Add to your MCP settings:

```json
{
  "mcpServers": {
    "castlecall": {
      "command": "node",
      "args": ["/path/to/castlecall-mcp/dist/cli.js"],
      "env": {
        "CASTLECALL_URL": "http://192.168.1.50:3000",
        "CASTLECALL_PROVIDER": "piper"
      }
    }
  }
}
```

ElevenLabs example:

```json
{
  "mcpServers": {
    "castlecall": {
      "command": "node",
      "args": ["/path/to/castlecall-mcp/dist/cli.js"],
      "env": {
        "CASTLECALL_URL": "http://192.168.1.50:3000",
        "CASTLECALL_PROVIDER": "elevenlabs",
        "CASTLECALL_VOICE_ID": "your-voice-id"
      }
    }
  }
}
```

## Tool

### `announce`

Play a text-to-speech announcement on CastleCall.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `text` | string | Yes | The text to announce |