Skip to main content

TeamSpeak MCP

PyPI version Python MCP GitHub Actions Docker License GitHub stars GitHub issues

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

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 -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"
      ]
    }
  }
}

๐Ÿ 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 (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
# 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

๐Ÿš€ Quick Start

Automatic installation script

python install.py

Connection test

python test_mcp.py

With 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 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

๐Ÿ”ง 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:

# 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

Step 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_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

๐Ÿ”ง Development

Local testing

# Install development dependencies
pip install -r requirements.txt

# Run tests
python test_mcp.py

# Start MCP server
python -m teamspeak_mcp.server

Docker 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:

  1. 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
    
  2. Automatic 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
  3. Setup (One-time):

    # Show setup instructions
    make setup-pypi
    

Result:

  • PyPI: uvx install teamspeak-mcp gets the new version
  • Docker: ghcr.io/marlburrow/teamspeak-mcp:v1.0.4 available
  • GitHub: Automatic release with changelog
  • No manual work needed! ๐ŸŽ‰

๐Ÿ“ฆ Release Process

This project uses automated GitHub Actions for building and publishing Docker images:

  1. Tag a release: make release-patch (or release-minor/release-major)
  2. Automatic build: GitHub Actions builds and pushes multi-arch images
  3. Available everywhere: PyPI, GitHub Container Registry, and GitHub Releases

๐Ÿ†˜ Troubleshooting

Common Issues

  1. "Connection refused"

    • Check that ServerQuery is enabled on your server
    • Verify port (default: 10011)
  2. "Authentication failed"

    • Check your ServerQuery credentials
    • Ensure user has proper permissions
  3. "Virtual server not found"

    • Check virtual server ID with serverlist
  4. "Python version error"

    • Ensure you're using Python 3.10-3.12
    • The MCP library requires Python 3.10+
  5. "Docker environment variables not working"

    • Use -e flags in args instead of the "env": {} field for better compatibility
    • Ensure 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_marlburrow_teamspeak_mcp-1.5.2.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_marlburrow_teamspeak_mcp-1.5.2.tar.gz.

File metadata

  • Download URL: iflow_mcp_marlburrow_teamspeak_mcp-1.5.2.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_marlburrow_teamspeak_mcp-1.5.2.tar.gz
Algorithm Hash digest
SHA256 bcd09adf2673407b9d3010f6e016d6f80173dd13f45cf2f958b2eb01bffcae47
MD5 74872dae7c4b72cf2d77e643a18c9cab
BLAKE2b-256 c4e4e2bb960cd6516e59ef3289fa8c634ad6ee3335d69fefbd33e4acf487ec40

See more details on using hashes here.

File details

Details for the file iflow_mcp_marlburrow_teamspeak_mcp-1.5.2-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_marlburrow_teamspeak_mcp-1.5.2-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_marlburrow_teamspeak_mcp-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e273af7f48c7412f6059af3d5607fdd3c74531b0fb4e4f1e82566095940a426f
MD5 1cd2b2e328bc404e0e3b80a79dd2e151
BLAKE2b-256 a956dd339f9baa1c2f88a8b942ca6c14bc26f5a6514df80ff081a9f28c3dfa50

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.5.2 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page