Manage your chatbot with your AI assistant
An assistant connected to npoq’s MCP server does the panel work for you: it writes commands, sets up periodic messages and edits chat alerts. The skill file teaches the assistant what it can do in npoq and how.
One-step setup
Paste the sentence below into Claude Code, Codex or Antigravity. The assistant reads the instruction file, downloads the skill and adds the MCP server to its own settings.
Install the npoq skill and MCP server by following the instructions at https://npoq.net/skills/npoq/INSTALL.mdRestart the assistant after setup; on first connection an npoq consent page opens in your browser where you sign in with Kick and choose the areas you allow.
What can it do?
Commands
Creates, edits and deletes custom commands and changes built-in command settings. It can also write JavaScript commands that use counters and variables.
Periodic messages
Sets up and edits messages posted at intervals while you are live.
Chat alerts
Turns on, off and rewrites the bot’s messages for follows, subs, raids, level-ups and more.
On-stream alerts
Turns OBS alerts on or off. Use the panel’s live preview for images, sounds and colors.
Counters and variables
Reads, creates and deletes channel counters and global variables.
What it can’t do
- It can’t post in chat, time out or ban anyone.
- It can’t change alert or widget visuals.
- It can’t touch billing, plans, moderators or account settings.
- It can’t see viewers’ points, levels or watch time.
Manual setup
If your assistant can’t read the instruction file, add the server yourself. It connects with OAuth; no extra key is needed.
https://api.npoq.net/mcpClaude Code
Run in your terminal, then type /mcp in Claude Code and pick npoq to sign in.
claude mcp add --transport http npoq https://api.npoq.net/mcpCodex
Add the server, then open the npoq consent page with the login command.
codex mcp add npoq --url https://api.npoq.net/mcp
codex mcp login npoqAntigravity
Open the raw config in the MCP server settings and add this entry under mcpServers.
{ "mcpServers": { "npoq": { "serverUrl": "https://api.npoq.net/mcp" } } }Claude (web / desktop)
Settings → Connectors → Add custom connector; enter this as the URL.
https://api.npoq.net/mcpSkill file
The skill is a short instruction file that tells the assistant what it can do in npoq, its limits and a good workflow. Copy it into your assistant’s skills folder as SKILL.md, or download it.
~/.claude/skills/npoq/SKILL.md~/.codex/skills/npoq/SKILL.md.agents/skills/npoq/SKILL.md---
name: npoq
description: Manage a Kick streamer's npoq chatbot through the npoq MCP server — custom chat commands (including JavaScript-scripted commands), timed/periodic messages, chat alert texts, on-stream (OBS) alert on/off toggles, counters and global variables. Use when the user asks to create, edit, list or delete npoq/Kick chat commands, timers, alerts or variables.
---
# npoq — Kick chatbot via MCP
npoq (https://npoq.net) is a chatbot, overlay and widget platform for Kick streamers. Its MCP server lets you manage the streamer's bot settings directly. Everything you change applies to the live channel right away, exactly as if the streamer had done it in the npoq panel.
## Connection
- MCP server: `https://api.npoq.net/mcp` (Streamable HTTP, OAuth 2.1). The first connection opens an npoq consent page in the browser; the streamer signs in with Kick and chooses which areas you may read or change.
- If no npoq tools are available, the server is not connected. Tell the user how to add it (see https://npoq.net/skills/npoq/INSTALL.md) instead of guessing.
- Areas (OAuth scopes, each `:read` or `:write`): `commands`, `periodic-messages`, `chat-alerts`, `alerts`, `variables`. Tools outside the granted scopes are not visible to you.
## What you can do
| Area | Tools |
| --- | --- |
| Commands | `list_commands`, `create_command`, `update_command`, `delete_command`, `get_script_reference` |
| Periodic messages | `list_periodic_messages`, `create_periodic_message`, `update_periodic_message`, `delete_periodic_message` |
| Chat alerts (bot messages on follow, sub, raid, level-up…) | `get_chat_alerts`, `update_chat_alert` |
| On-stream (OBS) alerts | `get_overlay_alerts`, `set_overlay_alert_active` (on/off only) |
| Variables | `list_variables`, `set_counter`, `set_variable`, `delete_counter`, `delete_variable` |
## What you cannot do (say so instead of trying)
- Send messages to Kick chat, ban/timeout viewers, or act as the bot in chat.
- Change overlay visuals (images, sounds, colors, widget layouts) — those need the panel's live preview: https://npoq.net/profile
- Billing, plans, moderators, account settings, giveaways, channel point rewards, widgets.
- Read or change per-viewer data (watch time, points, levels, viewer variables).
## How to work
1. **Read before you write.** Call the matching `list_*` / `get_*` tool first so you know the current state and the exact ids.
2. **Commands**
- `trigger` is the name without `!`. Names must be unique across custom commands, built-in commands and widget commands — a clash returns an error; pick another name.
- Built-in commands (`!points`, `!uptime`, `!followage`, `!clip` …) cannot be deleted or renamed. Edit them with `update_command` + `defaultTrigger`.
- `role`: who may use it. `availability`: `always` · `live` · `offline` (`!clip` is always live-only). `globalTimeout` / `userTimeout` are cooldowns.
- Plain-text responses may use `{sender}`.
3. **Scripted commands.** ALWAYS call `get_script_reference` first and follow it exactly. The response must contain a `<script>` block that defines `Main` and returns the text to post. Writing a script needs BOTH `commands:write` and `variables:write`; if the tool answers `insufficient-scope` with `variables:write`, ask the user to reconnect and grant it. Use the `npoq.*` helpers for counters and variables, await every call, keep scripts short and fast.
4. **Periodic messages** post only while the stream is live: `period` = minutes between posts, `messageCount` = chat messages required in between.
5. **Plan limits.** Free / Pro / Ultimate plans limit how many commands, aliases and periodic messages exist. If a create call fails with a limit error, tell the user (deleting or disabling something, or upgrading at https://npoq.net/pricing) — do not retry in a loop.
6. **Errors** come back as keys such as `Errors.command-name-taken`; explain them in plain words.
7. **Confirm destructive actions** (delete, bulk changes) with the user before running them, and summarize what changed afterwards.
8. Reply in the user's language. Command texts the viewers see should be in the channel's chat language (ask if unsure).
## Examples
- "Make a !discord command that posts my server link, mods only, 30 s cooldown" → `create_command` with `role: "moderator"`, `globalTimeout: 30`.
- "Count deaths with !death" → `get_script_reference`, then a script command that increments the `deaths` counter and returns the new total.
- "Post my Instagram every 20 minutes" → `create_periodic_message` with `period: 20`.
- "Turn off the raid message in chat" → `get_chat_alerts`, then `update_chat_alert` with `isActive: false`.
Docs: https://npoq.net/docs · MCP page: https://npoq.net/mcp · Support: support@npoq.net
The assistant only reaches the areas you pick on the consent screen; every change goes through the same rules and plan limits as the panel.
To see connected apps and revoke access: Profile → AI apps (MCP)