
TeamSpeak
STDIOMCP server for controlling TeamSpeak from AI models like Claude.
MCP server for controlling TeamSpeak from AI models like Claude.
A Model Context Protocol (MCP) server for controlling TeamSpeak from AI models like Claude.
TeamSpeak MCP offers multiple integration methods to fit your setup and preferences:
# Installation uvx install teamspeak-mcp # Usage uvx teamspeak-mcp --host your-server.com --user your-user --password your-password # Claude Desktop config (CLI args) { "mcpServers": { "teamspeak": { "command": "uvx", "args": ["teamspeak-mcp", "--host", "your-server.com", "--user", "your-user", "--password", "your-password"] } } }
💡 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.
# Installation docker pull ghcr.io/marlburrow/teamspeak-mcp:latest # Claude Desktop config (env vars in args) { "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" ] } } }
# Installation git clone https://github.com/MarlBurroW/teamspeak-mcp.git cd teamspeak-mcp && pip install -r requirements.txt # Claude Desktop config (Python module) { "mcpServers": { "teamspeak": { "command": "python", "args": ["-m", "teamspeak_mcp.server", "--host", "your-server.com", "--user", "your-user", "--password", "your-password"] } } }
# Installation git clone https://github.com/MarlBurroW/teamspeak-mcp.git cd teamspeak-mcp && docker build -t teamspeak-mcp . # Claude Desktop config (local image) { "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" ] } } }
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 |
Fastest (PyPI):
uvx install teamspeak-mcp # Add to Claude Desktop config with CLI args
Most Reliable (Docker):
docker pull ghcr.io/marlburrow/teamspeak-mcp:latest # Add to Claude Desktop config with env vars in args
Most Flexible (Local):
git clone https://github.com/MarlBurroW/teamspeak-mcp.git cd teamspeak-mcp && pip install -r requirements.txt # Add to Claude Desktop config with Python module
python install.py
python test_mcp.py
# Build image docker build -t teamspeak-mcp . # Test with Docker docker run --rm -it \ -e TEAMSPEAK_HOST=your-server.com \ -e TEAMSPEAK_USER=your-user \ -e TEAMSPEAK_PASSWORD=your-password \ teamspeak-mcp test
Before using TeamSpeak MCP, you need to configure your TeamSpeak server credentials:
Parameter | Description | Example |
---|---|---|
TEAMSPEAK_HOST | Your server IP or domain | ts.example.com or 192.168.1.100 |
TEAMSPEAK_PORT | ServerQuery port (default: 10011) | 10011 |
TEAMSPEAK_USER | ServerQuery username | mcp_user |
TEAMSPEAK_PASSWORD | ServerQuery password | secure_password123 |
TEAMSPEAK_SERVER_ID | Virtual server ID (usually 1) | 1 |
On your TeamSpeak server, ensure ServerQuery is enabled:
ts3server.ini
: query_port=10011
token=AAAA...
Connect to ServerQuery and create a dedicated user:
# Connect via telnet or putty to your-server:10011 telnet your-server.example.com 10011 # Login with admin login serveradmin YOUR_ADMIN_PASSWORD # Create dedicated user for MCP serverqueryadd client_login_name=mcp_user client_login_password=secure_password123 # Grant necessary permissions (optional - adjust as needed) servergroupaddclient sgid=6 cldbid=USER_DB_ID
# Test with our connection script python test_mcp.py # Or with Docker 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
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" ] } } }
⚠️ Security Note: Create a dedicated ServerQuery user with minimal permissions. Never use your admin account for automated tools.
Once configured, you can use these commands with Claude:
set_channel_talk_power
with preset "silent"set_channel_talk_power
with preset "moderated"update_channel
channel_info
client_info_detailed
manage_channel_permissions
with action "list"manage_channel_permissions
with action "add"update_server_settings
update_server_settings
manage_user_permissions
with action "add_group"manage_user_permissions
with action "remove_group"manage_user_permissions
with action "list_groups"manage_user_permissions
with action "add_permission"diagnose_permissions
diagnose_permissions
connect_to_server
: Connect to TeamSpeak serversend_channel_message
: Send message to a channelsend_private_message
: Send private messagepoke_client
: Send poke (alert notification) to a user - more attention-grabbing than private messagelist_clients
: List connected clientslist_channels
: List channelscreate_channel
: Create new channeldelete_channel
: Delete channelmove_client
: Move client to another channelkick_client
: Kick clientban_client
: Ban clientserver_info
: Get server informationupdate_channel
: Update channel properties (name, description, password, talk power, limits, etc.)set_channel_talk_power
: Quick setup for AFK/silent/moderated channels with presetschannel_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 issueslist_server_groups
: List all server groups availableassign_client_to_group
: Add or remove clients from server groupscreate_server_group
: Create new server groups with custom settingsmanage_server_group_permissions
: Manage permissions for server groupslist_bans
: List all active ban rules on the servermanage_ban_rules
: Create, delete or manage ban rules (IP, name, UID-based)list_complaints
: List complaints against userssearch_clients
: Search for clients by name pattern or unique identifierfind_channels
: Search for channels by name patternlist_privilege_tokens
: List all privilege keys/tokens availablecreate_privilege_token
: Create new privilege tokens for server/channel accesslist_files
: List files in a channel's file repositoryget_file_info
: Get detailed information about specific filesmanage_file_permissions
: List and manage active file transfersview_server_logs
: View recent entries from the server logadd_log_entry
: Add custom entries to the server logget_connection_info
: Get detailed connection informationcreate_server_snapshot
: Create snapshots of server configurationdeploy_server_snapshot
: Deploy/restore server configuration from snapshots# Install development dependencies pip install -r requirements.txt # Run tests python test_mcp.py # Start MCP server python -m teamspeak_mcp.server
# Build docker build -t teamspeak-mcp . # Test docker run --rm -it teamspeak-mcp
This project uses fully automated releases via GitHub Actions. No manual PyPI uploads needed!
One Command Release:
# Patch release (1.0.3 -> 1.0.4) make release-patch # Minor release (1.0.3 -> 1.1.0) make release-minor # Major release (1.0.3 -> 2.0.0) make release-major
Automatic Process:
pyproject.toml
Setup (One-time):
# Show setup instructions make setup-pypi
uvx install teamspeak-mcp
gets the new versionghcr.io/marlburrow/teamspeak-mcp:v1.0.4
availableThis project uses automated GitHub Actions for building and publishing Docker images:
make release-patch
(or release-minor
/release-major
)"Connection refused"
"Authentication failed"
"Virtual server not found"
serverlist
"Python version error"
"Docker environment variables not working"
-e
flags in args instead of the "env": {}
field for better compatibility# With Docker docker logs container-name # Without Docker python -m teamspeak_mcp.server --verbose
MIT