Provides tools for controlling TeamSpeak servers, including sending messages to channels, managing users, creating and modifying channels with permissions, configuring talk power settings, and managing virtual server settings.
TeamSpeak MCP
A Model Context Protocol (MCP) server for controlling TeamSpeak from AI models like Claude.
Requirements
Python 3.10-3.12
Docker (optional, for containerized deployment)
TeamSpeak 3 Server with ServerQuery enabled
Related MCP server: MCP Python Toolbox
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
๐ฏ 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
๐ณ 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
๐ก Note: We use
-eflags in args instead of the"env": {}field because Claude Desktop's environment variable handling can be unreliable. The args method ensures consistent variable passing.
๐ 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
๐๏ธ 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
๐ฏ Which Method Should You Choose?
Use Case | Recommended Method | Why |
First time user | PyPI Package (
) | 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):
Most Reliable (Docker):
Most Flexible (Local):
๐ Quick Start
Automatic installation script
Connection test
With Docker
๐ TeamSpeak Server Setup
Before using TeamSpeak MCP, you need to configure your TeamSpeak server credentials:
๐ Required Information
Parameter | Description | Example |
TEAMSPEAK_HOST | Your server IP or domain |
or
|
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=10011Default 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:
Step 4: Test Connection
๐ก Quick Configuration Examples
For PyPI installation:
For Docker installation:
โ ๏ธ Security Note: Create a dedicated ServerQuery user with minimal permissions. Never use your admin account for automated tools.
Usage
Once configured, you can use these commands with Claude:
Basic Commands
"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 Commands
"Make channel 5 silent so nobody can talk" โ Uses
set_channel_talk_powerwith preset "silent""Set up a moderated welcome channel" โ Uses
set_channel_talk_powerwith 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_permissionswith action "list""Add talk power permission to channel 6" โ Uses
manage_channel_permissionswith 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_permissionswith action "add_group""Remove user 8 from moderator group" โ Uses
manage_user_permissionswith action "remove_group""Show all server groups for user 12" โ Uses
manage_user_permissionswith action "list_groups""Give user 20 the 'b_client_kick' permission with value 75" โ Uses
manage_user_permissionswith 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 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 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 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 issues
๐ Server Groups Management (4 total)
list_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 groups
๐ Moderation & Bans (3 total)
list_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 users
๐ Search & Discovery (2 total)
search_clients: Search for clients by name pattern or unique identifierfind_channels: Search for channels by name pattern
๐ Privilege Tokens (2 total)
list_privilege_tokens: List all privilege keys/tokens availablecreate_privilege_token: Create new privilege tokens for server/channel access
๐ File Management (3 total)
list_files: List files in a channel's file repositoryget_file_info: Get detailed information about specific filesmanage_file_permissions: List and manage active file transfers
๐ Logs & Monitoring (3 total)
view_server_logs: View recent entries from the server logadd_log_entry: Add custom entries to the server logget_connection_info: Get detailed connection information
๐ Snapshots & Backup (2 total)
create_server_snapshot: Create snapshots of server configurationdeploy_server_snapshot: Deploy/restore server configuration from snapshots
๐ง Development
Local testing
Docker build
๐ Security
๐ Never commit credentials in code
๐ก๏ธ Use ServerQuery accounts with limited privileges
๐ Configure firewall to restrict ServerQuery port access
๐ Change ServerQuery passwords regularly
๐ Automatized Release Workflow (For Maintainers)
This project uses fully automated releases via GitHub Actions. No manual PyPI uploads needed!
How it works:
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-majorAutomatic Process:
โ Bumps version in
pyproject.tomlโ Creates git commit and tag
โ Pushes to GitHub
โ GitHub Actions triggers automatically:
๐จ Builds Python package
๐งช Tests on TestPyPI first
๐ฆ Publishes to PyPI
๐ณ Builds and publishes Docker images
๐ Creates GitHub release with changelog
Setup (One-time):
# Show setup instructions make setup-pypi
Result:
PyPI:
uvx install teamspeak-mcpgets the new versionDocker:
ghcr.io/marlburrow/teamspeak-mcp:v1.0.4availableGitHub: Automatic release with changelog
No manual work needed! ๐
๐ฆ Release Process
This project uses automated GitHub Actions for building and publishing Docker images:
Tag a release:
make release-patch(orrelease-minor/release-major)Automatic build: GitHub Actions builds and pushes multi-arch images
Available everywhere: PyPI, GitHub Container Registry, and GitHub Releases
๐ Troubleshooting
Common Issues
"Connection refused"
Check that ServerQuery is enabled on your server
Verify port (default: 10011)
"Authentication failed"
Check your ServerQuery credentials
Ensure user has proper permissions
"Virtual server not found"
Check virtual server ID with
serverlist
"Python version error"
Ensure you're using Python 3.10-3.12
The MCP library requires Python 3.10+
"Docker environment variables not working"
Use
-eflags in args instead of the"env": {}field for better compatibilityEnsure environment variables are passed correctly in Docker args
Check that all required variables are provided: TEAMSPEAK_HOST, TEAMSPEAK_USER, TEAMSPEAK_PASSWORD
Logs
๐ License
MIT