Skip to main content
Glama
aaronckj

nightbot-mcp

by aaronckj
README.md
# nightbot-mcp

An MCP (Model Context Protocol) server for [Nightbot](https://nightbot.tv):
manage custom chat commands, timers, regulars, and spam-protection filters —
including the **blacklist** (banned words/phrases for live chat) — through
the official [Nightbot API](https://api-docs.nightbot.tv).

- Every mutating tool accepts `dry_run=true` and returns a preview.
- `add_banned_phrases` appends to the blacklist without clobbering it
  (fetch → merge → update).
- No secrets in this repo or logged at runtime.

## Quick start

1. Create an app at [nightbot.tv/account/applications](https://nightbot.tv/account/applications)
   and generate an access token (scopes: `channel commands timers regulars
   spam_protection channel_send`).
2. Provide the token:

```bash
export NIGHTBOT_ACCESS_TOKEN=...     # or NIGHTBOT_MCP_SECRETS=vaultproxy
```

3. Add to your MCP client:

```bash
# Claude Code
claude mcp add nightbot -s user -- uvx nightbot-mcp
```

## Tools

| Area | Tools |
|---|---|
| Channel | `channel_info`, `join_channel`, `part_channel`, `send_chat_message` |
| Commands | `list_commands`, `add_command`, `update_command`, `delete_command` |
| Timers | `list_timers`, `add_timer`, `toggle_timer`, `delete_timer` |
| Regulars | `list_regulars`, `add_regular`, `remove_regular` |
| Spam protection | `get_spam_filter`, `update_spam_filter`, `add_banned_phrases` |
| Meta | `health_check` |

Filters: `blacklist`, `links`, `caps`, `symbols`, `repetitions`, `emotes`.
Blacklist entries support Nightbot's `*` wildcards.

## Development

```bash
pip install -e '.[dev]'
ruff check src tests && pytest
```

Tests are fully offline (fake HTTP opener).

## License

MIT

TDQS

B3.3/5.0

Scored across 25 tools

Disambiguation5/5

Each tool targets a distinct feature: channel management, commands, song requests, timers, regulars, spam filters, and chat. No two tools appear to overlap in purpose.

Naming Consistency4/5

Most tools follow verb_noun pattern (e.g., add_command, delete_timer), but 'song_requests_settings' uses plural while others use singular, and 'channel_info' breaks the pattern.

Tool Count4/5

25 tools is slightly above the typical range, but the breadth of features (commands, timers, spam, song requests, regulars) justifies the count. Could be slightly condensed.

Completeness5/5

The tool set covers full lifecycle management for commands, timers, regulars, and spam filters, plus song request controls and channel operations. No obvious gaps for the intended domain.

Maintenance

ActivityStale
ResponsivenessNo issues