TeamSpeak MCP
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.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TeamSpeak MCP list all users currently connected to the server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: CS2 RCON MCP Server
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
# 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"]
}
}
}π³ 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.
# 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"
]
}
}
}π 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
# 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"]
}
}
}ποΈ 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
# 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"
]
}
}
}π― 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):
uvx install teamspeak-mcp
# Add to Claude Desktop config with CLI argsMost Reliable (Docker):
docker pull ghcr.io/marlburrow/teamspeak-mcp:latest
# Add to Claude Desktop config with env vars in argsMost 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π Quick Start
Automatic installation script
python install.pyConnection test
python test_mcp.pyWith Docker
# 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π 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 |
|
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:
# 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_IDStep 4: Test Connection
# 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π‘ 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"
]
}
}
}β οΈ 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
# Install development dependencies
pip install -r requirements.txt
# Run tests
python test_mcp.py
# Start MCP server
python -m teamspeak_mcp.serverDocker build
# Build
docker build -t teamspeak-mcp .
# Test
docker run --rm -it teamspeak-mcpπ 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
# With Docker
docker logs container-name
# Without Docker
python -m teamspeak_mcp.server --verboseπ License
MIT
Available Tools
40 toolsadd_log_entryB
Add a custom entry to the server log
Inputs: log_level (required), message (required).
assign_client_to_groupC
Add or remove a client from a server group
Inputs: client_database_id (required), action (required), group_id (required).
ban_clientC
Ban a client from the server
Inputs: client_id (required), reason, duration.
channel_infoB
Get detailed information about a specific channel
Inputs: channel_id (required).
client_info_detailedC
Get detailed information about a specific client
Inputs: client_id (required).
connect_to_serverB
Connect to the configured TeamSpeak server
Inputs: no named parameters.
create_channelC
Create a new channel
Inputs: name (required), parent_id, permanent.
create_privilege_tokenB
Create a new privilege key/token for server or channel group access
Inputs: token_type (required), group_id (required), channel_id, description, +1 more.
create_server_groupB
Create a new server group with specified name and type
Inputs: name (required), type.
create_server_snapshotB
Create a snapshot of the virtual server configuration
Inputs: no named parameters.
delete_channelB
Delete a channel
Inputs: channel_id (required), force.
deploy_server_snapshotB
Deploy/restore a server configuration from a snapshot
Inputs: snapshot_data (required).
diagnose_permissionsA
Diagnose current connection permissions and provide troubleshooting help
Inputs: no named parameters.
find_channelsA
Search for channels by name pattern
Inputs: pattern (required).
get_connection_infoB
Get detailed connection information for the virtual server
Inputs: no named parameters.
get_file_infoB
Get detailed information about a specific file in a channel
Inputs: channel_id (required), file_path (required), channel_password.
get_instance_logsA
Get instance-level logs instead of virtual server logs
Inputs: lines, reverse, begin_pos.
kick_clientB
Kick a client from server or channel
Inputs: client_id (required), reason, from_server.
list_bansA
List all active ban rules on the virtual server
Inputs: no named parameters.
list_channelsA
List all channels on the server
Inputs: no named parameters.
list_clientsA
List all clients connected to the server
Inputs: no named parameters.
list_complaintsB
List complaints on the virtual server
Inputs: target_client_database_id.
list_filesB
List files in a channel's file repository
Inputs: channel_id (required), path, channel_password.
list_privilege_tokensA
List all privilege keys/tokens available on the server
Inputs: no named parameters.
list_server_groupsA
List all server groups available on the virtual server
Inputs: no named parameters.
manage_ban_rulesC
Create, delete or manage ban rules
Inputs: action (required), ban_id, ip, name, +3 more.
manage_channel_permissionsC
Add or remove specific permissions for a channel
Inputs: channel_id (required), action (required), permission, value.
manage_file_permissionsC
List active file transfers and manage file transfer permissions
Inputs: action (required), transfer_id, delete_partial.
manage_server_group_permissionsB
Add, remove or list permissions for a server group
Inputs: group_id (required), action (required), permission, value, +2 more.
manage_user_permissionsB
Manage user permissions: add/remove server groups, set individual permissions
Inputs: client_id (required), action (required), group_id, permission, +3 more.
move_clientB
Move a client to another channel
Inputs: client_id (required), channel_id (required).
poke_clientA
Send a poke (alert notification) to a client - more attention-grabbing than a private message
Inputs: client_id (required), message (required).
search_clientsA
Search for clients by name pattern or unique identifier
Inputs: pattern (required), search_by_uid.
send_channel_messageC
Send a message to a TeamSpeak channel
Inputs: message (required), channel_id.
send_private_messageC
Send a private message to a user
Inputs: client_id (required), message (required).
server_infoA
Get TeamSpeak server information
Inputs: no named parameters.
set_channel_talk_powerB
Set talk power requirement for a channel (useful for AFK/silent channels)
Inputs: channel_id (required), talk_power, preset.
update_channelC
Update channel properties (name, description, password, talk power, limits, etc.)
Inputs: channel_id (required), name, description, password, +4 more.
update_server_settingsC
Update virtual server settings (name, welcome message, max clients, etc.)
Inputs: name, welcome_message, max_clients, password, +4 more.
view_server_logsC
View recent entries from the virtual server log with enhanced options
Inputs: lines, reverse, instance_log, begin_pos, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 40 tools
Many tools have distinct purposes, but there is overlap in permission management (manage_user_permissions, assign_client_to_group, manage_channel_permissions, manage_server_group_permissions) and banning (ban_client, manage_ban_rules, list_bans). Descriptions help, but an agent might struggle to choose the correct tool for permission tasks.
Most tools use consistent verb_noun snake_case pattern. Some verbs like 'list_', 'get_', 'manage_', 'create_' are used. A few tools use noun_first (e.g., channel_info, server_info) which breaks the pattern slightly, but overall naming is predictable.
40 tools is on the high side for a TeamSpeak server, but the domain has many operations (channels, clients, groups, permissions, files, bans, logs, etc.). Still, the count feels slightly bloated; some tools could be merged (e.g., permission management).
The tool set covers essential operations for TeamSpeak server management: channel, client, group, permission, ban, file, log, and token management. Minor gaps exist (e.g., editing client details directly), but most workflows are supported.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
MCP server for Gainium β manage trading bots, deals, and balances via AI assistants
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude to initiate and manage real-time voice calls using Twilio and OpenAI's voice models.64MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows management of Counter-Strike 2 game servers via RCON commands using natural language.11MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude to manage changelogs, projects, and content through natural language interactions with Changerawr instances.2MIT
- AlicenseAqualityFmaintenanceA Model Context Protocol server that enables AI assistants like Claude to manage song requests, monitor queues, and interact with streaming platforms' song request systems.627 npm2MIT