Skip to main content
Glama
teamspeak3-mcp

teamspeak3-mcp

by fl0w1nd

TeamSpeak 3 MCP Server

Let AI models manage your TeamSpeak 3 server through the Model Context Protocol.

npm version License: MIT TypeScript Node.js MCP SDK zread MCP Badge

English · 中文


A Model Context Protocol (MCP) server that exposes TeamSpeak 3 ServerQuery operations as AI-callable tools. Connect Claude, Cursor, or any MCP-compatible client to manage your TeamSpeak server with natural language.

Features

  • 35 purpose-built tools covering server management, channels, clients, groups, permissions, moderation, and more

  • Lazy connection — connects to TeamSpeak only when the first tool is invoked

  • Exponential backoff retry — automatic reconnection with up to 3 attempts

  • Graceful shutdown — cleans up the ServerQuery session on process exit

  • Centralized error handling — every tool returns structured MCP error responses

  • Zero-config transport — runs over stdio, works out-of-the-box with any MCP client

Related MCP server: CS2 RCON MCP Server

Requirements

  • Node.js >= 18

  • A TeamSpeak 3 server with ServerQuery access (port 10011 by default)

Getting Started

Add the following to your MCP client configuration. This works with most clients:

{
  "mcpServers": {
    "teamspeak": {
      "command": "npx",
      "args": ["teamspeak3-mcp"],
      "env": {
        "TEAMSPEAK_HOST": "your-server.com",
        "TEAMSPEAK_PASSWORD": "your-password"
      }
    }
  }
}

No installation needed — npx downloads and runs the package automatically.

Claude Desktop

Add to your Claude Desktop config file (claude_desktop_config.json):

{
  "mcpServers": {
    "teamspeak": {
      "command": "npx",
      "args": ["teamspeak3-mcp"],
      "env": {
        "TEAMSPEAK_HOST": "your-server.com",
        "TEAMSPEAK_PASSWORD": "your-password"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json):

{
  "mcpServers": {
    "teamspeak": {
      "command": "npx",
      "args": ["teamspeak3-mcp"],
      "env": {
        "TEAMSPEAK_HOST": "your-server.com",
        "TEAMSPEAK_PASSWORD": "your-password"
      }
    }
  }
}

Configuration

Configuration is resolved from CLI arguments first, then environment variables, with sensible defaults as fallback.

Parameter

CLI Flag

Env Variable

Default

Host

--host

TEAMSPEAK_HOST

localhost

Query Port

--port

TEAMSPEAK_PORT

10011

Username

--user

TEAMSPEAK_USER

serveradmin

Password

--password

TEAMSPEAK_PASSWORD

(required)

Virtual Server ID

--server-id

TEAMSPEAK_SERVER_ID

1

Enabled Tools

--tools

TEAMSPEAK_TOOLS

(all)

Note: TEAMSPEAK_PASSWORD refers to the ServerQuery login password, not the TeamSpeak server connection password. You can find it in the server console output on first start, or create one via Tools → ServerQuery Login in the TeamSpeak client.

Selective Tool Loading

By default all 35 tools are registered. Use TEAMSPEAK_TOOLS (or --tools) with a comma-separated list of module names to load only what you need — useful for reducing the tool list exposed to the AI model:

{
  "mcpServers": {
    "teamspeak": {
      "command": "npx",
      "args": ["teamspeak3-mcp"],
      "env": {
        "TEAMSPEAK_HOST": "your-server.com",
        "TEAMSPEAK_PASSWORD": "your-password",
        "TEAMSPEAK_TOOLS": "server,channel,client"
      }
    }
  }
}

Available modules: server, channel, client, sgroup, cgroup, permission, messaging, moderation, token, file

Tools Reference

Server (server_*)

Tool

Description

server_info

Get server details (scope: overview or connection statistics)

server_list

List resources (resource: clients, channels, server_groups, channel_groups)

server_search

Search for clients or channels by pattern

server_log

View recent virtual server or instance log entries

server_diagnose

Run a diagnostic check on the current connection's permissions

Channel (channel_*)

Tool

Description

channel_create

Create a new channel (permanent or temporary)

channel_delete

Delete a channel (with optional force flag)

channel_update

Update channel properties (name, password, codec, talk power, etc.)

channel_info

Get detailed channel information

channel_perm

Add, remove, or list permissions on a channel

Client (client_*)

Tool

Description

client_info

Get detailed info: platform, version, country, IP, idle time, etc.

client_move

Move a client to another channel

client_kick

Kick a client from the server or channel

client_ban

Ban a client (timed or permanent)

client_perm

Manage server group membership and individual permissions

client_db_list

List historical clients from the server database (includes offline clients)

client_poke

Send a poke alert notification to a client

Server Group (sgroup_*)

Tool

Description

sgroup_create

Create a new server group

sgroup_delete

Delete a server group

sgroup_perm

Add, remove, or list permissions on a server group

sgroup_clients

List all clients assigned to a server group

Channel Group (cgroup_*)

Tool

Description

cgroup_create

Create a new channel group

cgroup_perm

Add, remove, or list permissions on a channel group

cgroup_assign

Assign a client to a channel group in a specific channel

Permission (perm_*)

Tool

Description

perm_list

List all available permission definitions (name, ID, description)

perm_find

Find all assignments of a permission across the server

perm_overview

Get effective permission overview for a client in a channel

Messaging (msg_*)

Tool

Description

msg_send

Send a text message (mode: channel or private)

Moderation (ban_* / complaint_*)

Tool

Description

ban_list

List all active ban rules

ban_manage

Create, delete, or clear ban rules by IP/name/UID

complaint_list

List complaints (optionally filtered by target client)

Tokens (token_*)

Tool

Description

token_list

List all available privilege keys/tokens

token_create

Create a server group or channel group token

Files (file_*)

Tool

Description

file_list

List files in a channel's file repository

file_info

Get detailed info about a specific file

Development

git clone https://github.com/fl0w1nd/teamspeak3-mcp.git
cd teamspeak3-mcp
pnpm install

pnpm build          # Build the project
pnpm dev            # Watch mode (auto-rebuild on changes)
pnpm inspect        # Debug with MCP Inspector (web UI)

MCP Inspector

The project includes a pre-configured script for the MCP Inspector, a web-based debugging tool:

pnpm inspect

This launches a local web UI where you can browse available tools, invoke them interactively, and inspect request/response payloads — useful for development and troubleshooting.

Project Structure

src/
├── index.ts             # Entry point, stdio transport, graceful shutdown
├── config.ts            # CLI + env configuration parsing
├── connection.ts        # TeamSpeak connection with retry & lazy init
├── server.ts            # MCP server setup & tool registration
├── utils/
│   └── tool-handler.ts  # Error handling & response utilities
└── tools/
    ├── server.ts        # Server info, resource listing, search, logs, diagnostics
    ├── channel.ts       # Channel CRUD & permissions
    ├── client.ts        # Client management, permissions & poke
    ├── server-group.ts  # Server group CRUD, permissions & members
    ├── channel-group.ts # Channel group CRUD, permissions & assignment
    ├── permission.ts    # Global permission queries & overview
    ├── messaging.ts     # Channel & private messaging
    ├── moderation.ts    # Bans & complaints
    ├── token.ts         # Privilege token management
    └── file.ts          # Channel file browser

License

MIT

Available Tools

35 tools
ban_listB

List all active ban rules on the virtual server

Inputs: no named parameters.

ban_manageC

Create, delete, or clear ban rules on the server

Inputs: action (required), ip, uid, name, +3 more.

cgroup_assignC

Assign a client to a channel group in a specific channel

Inputs: group_id (required), channel_id (required), client_db_id (required).

cgroup_createC

Create a new channel group

Inputs: name (required), type.

cgroup_permC

Manage permissions for a channel group: add, remove, or list

Inputs: action (required), group_id (required), value, permission.

channel_createC

Create a new channel on the server

Inputs: name (required), parent_id, permanent.

channel_deleteB

Delete a channel from the server

Inputs: channel_id (required), force.

channel_infoC

Get detailed information about a specific channel

Inputs: channel_id (required).

channel_permB

Manage permissions on a specific channel: add, remove, or list

Inputs: action (required), channel_id (required), value, permission.

channel_updateC

Update channel properties. Talk power presets: 0=normal, 50=moderated, 999=silent

Inputs: channel_id (required), name, password, permanent, +4 more.

client_banC

Ban a client from the server

Inputs: client_id (required), reason, duration.

client_db_listA

List historical clients from the server database (includes offline clients). Supports pagination for large databases

Inputs: limit, start.

client_infoC

Get detailed information about a specific online client

Inputs: client_id (required).

client_kickB

Kick a client from the server or current channel

Inputs: client_id (required), reason, from_server.

client_moveC

Move a client to another channel

Inputs: client_id (required), channel_id (required).

client_permC

Manage a client's server group membership and individual permissions

Inputs: action (required), client_id (required), skip, value, +3 more.

client_pokeA

Send a poke (alert popup) to a client — more attention-grabbing than a private message

Inputs: message (required), client_id (required).

complaint_listB

List complaints on the virtual server, optionally filtered by target client

Inputs: target_client_db_id.

file_infoB

Get detailed information about a specific file in a channel's file repository

Inputs: file_path (required), channel_id (required), channel_password.

file_listB

List files in a channel's file repository

Inputs: channel_id (required), path, channel_password.

msg_sendB

Send a text message to a channel or a private message to a client

Inputs: mode (required), message (required), target_id (required).

perm_findA

Find all assignments of a specific permission across server groups, channel groups, channels, and clients

Inputs: permission (required).

perm_listA

List available permission definitions. Use 'filter' to search by keyword (e.g. 'kick') or 'category' to narrow by domain. Returns only names by default; set verbose=true for descriptions

Inputs: filter, verbose, category.

perm_overviewB

Get the effective permission overview for a client in a specific channel. Shows all permissions and their sources

Inputs: channel_id (required), client_db_id (required).

server_diagnoseB

Diagnose current ServerQuery connection permissions and provide troubleshooting info

Inputs: no named parameters.

server_infoB

Get TeamSpeak server information. Use scope 'overview' for general server details, 'connection' for network/bandwidth statistics

Inputs: scope.

server_listC

List server resources: online clients, channels, server groups, or channel groups

Inputs: resource (required).

server_logC

View recent entries from the virtual server log

Inputs: lines, reverse, begin_pos, instance_log.

sgroup_clientsC

List all clients assigned to a server group

Inputs: group_id (required).

sgroup_createB

Create a new server group

Inputs: name (required), type.

sgroup_deleteA

Delete a server group. Use force=true to remove even if clients are assigned

Inputs: group_id (required), force.

sgroup_permC

Manage permissions for a server group: add, remove, or list

Inputs: action (required), group_id (required), skip, value, +2 more.

token_createC

Create a new privilege key/token for server or channel group access

Inputs: group_id (required), token_type (required), channel_id, custom_set, +1 more.

token_listA

List all privilege keys/tokens available on the server

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 35 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes, but the perm_* family (perm_overview, perm_list, perm_find, channel_perm, client_perm, sgroup_perm, cgroup_perm) has overlapping 'manage permissions' functions that could confuse without careful reading. Similarly, ban_* tools (ban_list, ban_manage, client_ban) have some overlap. Descriptions help distinguish them, but boundaries aren't always crisp.

    Naming Consistency4/5

    Tool names mostly use a consistent verb_noun or noun_verb pattern (e.g., channel_create, client_kick, sgroup_perm), but there are minor deviations like server_list (noun_verb) and sgroup_create (abbreviated noun). The abbreviations (sgroup, cgroup, perm) are consistent within categories, making the naming predictable overall.

    Tool Count3/5

    With 35 tools, the count is heavy for a TeamSpeak server management MCP. While many are distinct operations, the number could overwhelm an agent, and some tools (e.g., perm_overview vs perm_list) might be consolidated. The scope is broad, but the count feels borderline excessive.

    Completeness4/5

    The tool set covers most CRUD operations for channels, clients, server groups, channel groups, permissions, bans, messages, files, tokens, and complaints. However, some gaps exist: no tools for banning by IP/range, no detailed server group info beyond permissions, and no file upload/download operations. These are minor but noticeable for a complete management surface.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI models to interact with VoIPBin's VoIP services, supporting features like call management, agent management, campaigns, conferences, and chat functionality.
      4
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI models like Claude to control TeamSpeak servers, allowing users to manage channels, send messages, configure permissions, and perform server administration through natural language commands.
      40
      10
      MIT