Allows interaction with Tailscale's API to manage devices, ACLs, keys, and DNS configurations within a Tailscale tailnet.
Tailscale MCP Server
Serveur Model Context Protocol (MCP) pour interagir avec l'API Tailscale. Ce serveur permet de gérer vos appareils, ACLs, clés et configurations DNS directement depuis des clients MCP comme Claude Desktop ou Raycast.
Prérequis
Python 3.11+ (pour l'exécution locale)
Docker & Docker Compose (pour le déploiement conteneurisé)
Compte Tailscale avec une clé API valide.
Configuration
Créez un fichier
.envà la racine du projet (copiez l'exemple ci-dessous) :
Ajoutez vos identifiants Tailscale dans le fichier
.env:
Note: Vous pouvez générer une clé API dans la section Settings > Keys de votre console d'administration Tailscale. Le nom du
tailnetse trouve en haut à gauche de la console (ex:mon-email.gmail.comou une organisation).
Installation & Démarrage
Option 1 : Docker (Recommandé)
C'est la méthode la plus simple pour déployer le serveur.
Construisez et démarrez le conteneur :
docker compose up -d --buildLe serveur sera accessible sur
http://localhost:8000.
Option 2 : Exécution Locale
Créez un environnement virtuel :
python -m venv venv source venv/bin/activate # Sur Windows: venv\Scripts\activateInstallez les dépendances :
pip install -r requirements.txtLancez le serveur :
python server.py
Configuration des Clients
Raycast
Ouvrez Raycast Settings.
Allez dans l'onglet Extensions.
Sélectionnez l'extension Model Context Protocol (installez-la si nécessaire).
Cliquez sur Add Server ('+').
Configurez comme suit :
Name: Tailscale
Type: HTTP (Streamable)
URL:
http://localhost:8000/mcp
Validez. Le statut doit passer au vert.
Claude Desktop
Vous avez deux options pour connecter Claude Desktop : via HTTP (recommandé pour Docker) ou via stdio (local).
Option 1 : Via HTTP (Streamable) - Recommandé avec Docker
Cette méthode connecte Claude au serveur exposé sur le port 8000. Assurez-vous que le conteneur est lancé (docker compose up -d).
Ajoutez dans votre config ~/Library/Application Support/Claude/claude_desktop_config.json :
Option 2 : Via stdio (Local sans Docker)
Si vous exécutez le serveur directement en python sur votre machine :
Note: Pour l'option stdio, remplacez les chemins par les chemins absolus réels sur votre machine.
Vérification
Pour valider l'accès HTTP Streamable :
Vous devriez recevoir une réponse, même 404 ou 405, qui confirme que le service écoute.