🚀 TeamSpeak MCP
A Model Context Protocol (MCP) server for controlling TeamSpeak from AI models like Claude. This project simplifies the interaction between AI models and TeamSpeak servers, offering a wide range of features for server management and user control.
🚀 Quick Start
Automatic installation script
python install.py
Connection test
python test_mcp.py
With Docker
docker build -t teamspeak-mcp .
docker run --rm -it \
-e TEAMSPEAK_HOST=your-server.com \
-e TEAMSPEAK_USER=your-user \
-e TEAMSPEAK_PASSWORD=your-password \
teamspeak-mcp test
✨ Features
- 🎯 Connect to TeamSpeak servers
- 💬 Send messages to channels, private messages, and pokes (alert notifications)
- 📋 List connected users and detailed client information
- 🔧 Advanced channel management (create, delete, update properties, permissions)
- 🔇 AFK/Silent channel setup with talk power presets
- 🎵 Voice control (mute, unmute, kick, ban)
- 🛡️ Fine-grained permission management per channel
- 🖥️ Virtual server configuration (name, description, limits, welcome messages)
- 👥 User permission management (server groups, individual permissions)
- 📊 Comprehensive server and channel diagnostics
- 📝 Enhanced logging system with:
- Automatic log configuration
- Log diagnostics
- Instance-level logs
- Advanced filtering
- Real-time notifications
- ⚙️ 39 powerful tools for complete TeamSpeak automation
📦 Installation
Requirements
- Python 3.10 - 3.12
- Docker (optional, for containerized deployment)
- TeamSpeak 3 Server with ServerQuery enabled
🎯 Integration Methods Overview
TeamSpeak MCP offers multiple integration methods to fit your setup and preferences:
📦 Method 1: PyPI Package (Recommended for most users)
- ✅ Easiest setup - One command installation
- ✅ Automatic updates via standard package managers
- ✅ Standard MCP pattern - Compatible with Claude Desktop examples
- ✅ No Docker required - Pure Python implementation
uvx install teamspeak-mcp
uvx teamspeak-mcp --host your-server.com --user your-user --password your-password
{
"mcpServers": {
"teamspeak": {
"command": "uvx",
"args": ["teamspeak-mcp", "--host", "your-server.com", "--user", "your-user", "--password", "your-password"]
}
}
}
🐳 Method 2: Pre-built Docker Images (Recommended for containers)
- ✅ No dependencies - Everything included
- ✅ Version consistency - Immutable deployments
- ✅ Easy scaling - Works with orchestration
- ✅ Cross-platform - Works anywhere Docker runs
⚠️ Important Note
We use -e
flags in args instead of the "env": {}
field because Claude Desktop's environment variable handling can be unreliable. The args method ensures consistent variable passing.
docker pull ghcr.io/marlburrow/teamspeak-mcp:latest
{
"mcpServers": {
"teamspeak": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TEAMSPEAK_HOST=your-server.com",
"-e", "TEAMSPEAK_USER=your-user",
"-e", "TEAMSPEAK_PASSWORD=your-password",
"ghcr.io/marlburrow/teamspeak-mcp:latest"
]
}
}
}
🐍 Method 3: Local Python Installation (For developers)
- ✅ Full control - Access to source code
- ✅ Customizable - Modify for specific needs
- ✅ Development - Contribute to the project
- ⚠️ More setup - Requires Python environment management
git clone https://github.com/MarlBurroW/teamspeak-mcp.git
cd teamspeak-mcp && pip install -r requirements.txt
{
"mcpServers": {
"teamspeak": {
"command": "python",
"args": ["-m", "teamspeak_mcp.server", "--host", "your-server.com", "--user", "your-user", "--password", "your-password"]
}
}
}
🏗️ Method 4: Local Docker Build (For customization)
- ✅ Custom builds - Modify Dockerfile as needed
- ✅ Offline capability - No external dependencies
- ✅ Version control - Pin to specific commits
- ⚠️ Build time - Requires local Docker build
git clone https://github.com/MarlBurroW/teamspeak-mcp.git
cd teamspeak-mcp && docker build -t teamspeak-mcp .
{
"mcpServers": {
"teamspeak": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TEAMSPEAK_HOST=your-server.com",
"-e", "TEAMSPEAK_USER=your-user",
"-e", "TEAMSPEAK_PASSWORD=your-password",
"teamspeak-mcp"
]
}
}
}
🎯 Which Method Should You Choose?
Use Case |
Recommended Method |
Why |
First time user |
PyPI Package (uvx ) |
Easiest setup, standard MCP pattern |
Production deployment |
Pre-built Docker |
Reliable, versioned, no dependencies |
CI/CD environments |
Pre-built Docker |
Consistent, fast deployment |
Development/Contributing |
Local Python |
Full access to source code |
Custom modifications |
Local Docker Build |
Controlled build process |
Corporate environments |
Local Docker Build |
No external dependencies |
💡 Quick Start Examples
Fastest (PyPI):
uvx install teamspeak-mcp
Most Reliable (Docker):
docker pull ghcr.io/marlburrow/teamspeak-mcp:latest
Most Flexible (Local):
git clone https://github.com/MarlBurroW/teamspeak-mcp.git
cd teamspeak-mcp && pip install -r requirements.txt
🔑 TeamSpeak Server Setup
Before using TeamSpeak MCP, you need to configure your TeamSpeak server credentials:
📋 Required Information
Property |
Details |
TEAMSPEAK_HOST |
Your server IP or domain |
TEAMSPEAK_PORT |
ServerQuery port (default: 10011) |
TEAMSPEAK_USER |
ServerQuery username |
TEAMSPEAK_PASSWORD |
ServerQuery password |
TEAMSPEAK_SERVER_ID |
Virtual server ID (usually 1) |
🔧 How to Get Your Credentials
Step 1: Enable ServerQuery
On your TeamSpeak server, ensure ServerQuery is enabled:
- Check
ts3server.ini
: query_port=10011
- Default enabled on most installations
Step 2: Get Admin Access
- First installation: Check server logs for admin token:
token=AAAA...
- Existing server: Use your admin credentials
Step 3: Create MCP User
Connect to ServerQuery and create a dedicated user:
telnet your-server.example.com 10011
login serveradmin YOUR_ADMIN_PASSWORD
serverqueryadd client_login_name=mcp_user client_login_password=secure_password123
servergroupaddclient sgid=6 cldbid=USER_DB_ID
Step 4: Test Connection
python test_mcp.py
docker run --rm -it \
-e TEAMSPEAK_HOST=your-server.example.com \
-e TEAMSPEAK_USER=mcp_user \
-e TEAMSPEAK_PASSWORD=secure_password123 \
ghcr.io/marlburrow/teamspeak-mcp:latest test
💡 Quick Configuration Examples
For PyPI installation:
{
"mcpServers": {
"teamspeak": {
"command": "uvx",
"args": ["teamspeak-mcp", "--host", "your-server.example.com", "--user", "mcp_user", "--password", "secure_password123"]
}
}
}
For Docker installation:
{
"mcpServers": {
"teamspeak": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TEAMSPEAK_HOST=your-server.example.com",
"-e", "TEAMSPEAK_USER=mcp_user",
"-e", "TEAMSPEAK_PASSWORD=secure_password123",
"ghcr.io/marlburrow/teamspeak-mcp:latest"
]
}
}
}
⚠️ Important Note
Create a dedicated ServerQuery user with minimal permissions. Never use your admin account for automated tools.
💻 Usage Examples
Basic Usage
Once configured, you can use these commands with Claude:
- "Connect to TeamSpeak server"
- "Send message 'Hello everyone!' to general channel"
- "Send private message 'Can you join me?' to user 5"
- "Poke user 12 with message 'Urgent: Please check the announcement!'"
- "List connected users"
- "Create temporary channel called 'Meeting'"
- "Move user John to private channel"
- "Show me server info"
Advanced Usage
- "Make channel 5 silent so nobody can talk" → Uses
set_channel_talk_power
with preset "silent"
- "Set up a moderated welcome channel" → Uses
set_channel_talk_power
with preset "moderated"
- "Update channel 3 to set max clients to 10 and add password 'secret'" → Uses
update_channel
- "Show me detailed information about channel 7" → Uses
channel_info
- "Get comprehensive details about client 12" → Uses
client_info_detailed
- "List all permissions for channel 4" → Uses
manage_channel_permissions
with action "list"
- "Add talk power permission to channel 6" → Uses
manage_channel_permissions
with action "add"
- "Change server name to 'My Gaming Server' and set max clients to 100" → Uses
update_server_settings
- "Set welcome message to 'Welcome to our server!'" → Uses
update_server_settings
- "Add user 15 to admin group 6" → Uses
manage_user_permissions
with action "add_group"
- "Remove user 8 from moderator group" → Uses
manage_user_permissions
with action "remove_group"
- "Show all server groups for user 12" → Uses
manage_user_permissions
with action "list_groups"
- "Give user 20 the 'b_client_kick' permission with value 75" → Uses
manage_user_permissions
with action "add_permission"
- "Diagnose my current permissions and connection" → Uses
diagnose_permissions
- "Check why I can't list clients" → Uses
diagnose_permissions
🎯 Available Tools (39 total)
Core Tools (12 total)
connect_to_server
: Connect to TeamSpeak server
send_channel_message
: Send message to a channel
send_private_message
: Send private message
poke_client
: Send poke (alert notification) to a user - more attention-grabbing than private message
list_clients
: List connected clients
list_channels
: List channels
create_channel
: Create new channel
delete_channel
: Delete channel
move_client
: Move client to another channel
kick_client
: Kick client
ban_client
: Ban client
server_info
: Get server information
🆕 Advanced Management Tools (8 total)
update_channel
: Update channel properties (name, description, password, talk power, limits, etc.)
set_channel_talk_power
: Quick setup for AFK/silent/moderated channels with presets
channel_info
: Get detailed channel information (permissions, codec, type, etc.)
manage_channel_permissions
: Fine-grained permission control (add/remove/list)
client_info_detailed
: Comprehensive client details (platform, version, status, etc.)
update_server_settings
: Update virtual server settings (name, welcome message, max clients, password, host message, default groups)
manage_user_permissions
: Complete user permission management (add/remove server groups, set individual permissions, list assignments)
diagnose_permissions
: Diagnose current connection permissions and troubleshoot issues
🆕 Server Groups Management (4 total)
list_server_groups
: List all server groups available
assign_client_to_group
: Add or remove clients from server groups
create_server_group
: Create new server groups with custom settings
manage_server_group_permissions
: Manage permissions for server groups
🆕 Moderation & Bans (3 total)
list_bans
: List all active ban rules on the server
manage_ban_rules
: Create, delete or manage ban rules (IP, name, UID-based)
list_complaints
: List complaints against users
🆕 Search & Discovery (2 total)
search_clients
: Search for clients by name pattern or unique identifier
find_channels
: Search for channels by name pattern
🆕 Privilege Tokens (2 total)
list_privilege_tokens
: List all privilege keys/tokens available
create_privilege_token
: Create new privilege tokens for server/channel access
🆕 File Management (3 total)
list_files
: List files in a channel's file repository
get_file_info
: Get detailed information about specific files
manage_file_permissions
: List and manage active file transfers
🆕 Logs & Monitoring (3 total)
view_server_logs
: View recent entries from the server log
add_log_entry
: Add custom entries to the server log
get_connection_info
: Get detailed connection information
🆕 Snapshots & Backup (2 total)
create_server_snapshot
: Create snapshots of server configuration
deploy_server_snapshot
: Deploy/restore server configuration from snapshots
🔧 Technical Details
Local testing
pip install -r requirements.txt
python test_mcp.py
python -m teamspeak_mcp.server
Docker build
docker build -t teamspeak-mcp .
docker run --rm -it teamspeak-mcp
📄 License
This project is licensed under the MIT License.