Prérequis
Un workflow MCP fonctionnel exprimable sous forme de script — le script doit exécuter l'invite MCP, capturer la sortie et la diffuser. Voir comment envoyer les rapports MCP de Cryptohopper à Telegram, Discord ou par e-mail.
Une clé API MCP Cryptohopper stockée comme variable d'environnement ou secret. Ne la codez jamais en dur dans le script — voir les bonnes pratiques de sécurité pour les clés API.
Le schéma de base
Les trois systèmes de planification encapsulent le même script. La structure est toujours la même : exécuter l'invite MCP → capturer la sortie → la diffuser. Assurez-vous que les variables d'environnement sont définies et que la sortie est capturée dans un log.
# /home/you/scripts/daily_digest.py
import os
import requests
API_KEY = os.environ["CRYPTOHOPPER_MCP_KEY"]
TELEGRAM_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
TELEGRAM_CHAT_ID = os.environ["TELEGRAM_CHAT_ID"]
def run_mcp_workflow(prompt: str) -> str:
# Votre appel à la bibliothèque cliente MCP ici — produisant le texte du rapport.
...
def send_telegram(text: str) -> None:
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text, "parse_mode": "Markdown"},
).raise_for_status()
if __name__ == "__main__":
prompt = open("/home/you/prompts/daily_digest.txt").read()
report = run_mcp_workflow(prompt)
send_telegram(report)
Configuration — cron (macOS / Linux)
Testez d'abord le script manuellement
export CRYPTOHOPPER_MCP_KEY="..."
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_CHAT_ID="..."
python3 /home/you/scripts/daily_digest.py
2. Modifiez votre crontab
Lancez `crontab -e` et ajoutez l'entrée ci-dessous. Cron n'hérite pas de l'environnement de votre shell — déclarez les variables en haut de la crontab.
CRYPTOHOPPER_MCP_KEY=your_key
TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHAT_ID=your_chat_id
PATH=/usr/local/bin:/usr/bin:/bin
# Quotidiennement à 08h00 heure locale
0 8 * * * /usr/bin/python3 /home/you/scripts/daily_digest.py >> /home/you/logs/daily.log 2>&1
3. Vérifiez
Après l'heure prévue, consultez le log. Un log vide signifie que cron n'a pas exécuté le script. Des erreurs dans le log signifient qu'il a été exécuté mais qu'il a échoué.
bashtail -50 /home/you/logs/daily.log
Configuration — Planificateur de tâches (Windows)
Testez le script depuis Powershell
$env:CRYPTOHOPPER_MCP_KEY = "..."
$env:TELEGRAM_BOT_TOKEN = "..."
$env:TELEGRAM_CHAT_ID = "..."
python C:\Users\you\scripts\daily_digest.py
2. Définissez un déclencheur
Sous Déclencheurs, configurez la planification (quotidienne à 08h00, hebdomadaire, etc.).
3. Configurez l'action
Sous Actions : Programme/script → python (ou le chemin complet vers python.exe). Ajouter les arguments → C:\Users\you\scripts\daily_digest.py. Démarrer dans → C:\Users\you\scripts.
4. Gérez les variables d'environnement
Deux options : les définir comme variables système via Panneau de configuration → Système → Variables d'environnement, ou les charger depuis un fichier .env en utilisant la bibliothèque python-dotenv.
5. Vérifiez
Vérifiez le dernier résultat d'exécution de la tâche dans le Planificateur de tâches. 0x0 signifie succès ; tout autre code est une erreur.
Configuration — GitHub Actions (hébergé dans le cloud)
Créez un dépôt GitHub pour vos workflows planifiés
Ajoutez votre script au dépôt. Ne committez pas de secrets par erreur.
Ajoutez des secrets de dépôt
Allez dans Paramètres → Secrets et variables → Actions et ajoutez :
CRYPTOHOPPER_MCP_KEY,TELEGRAM_BOT_TOKEN,TELEGRAM_CHAT_ID.
Créez le fichier de workflow
# .github/workflows/daily_digest.yml
name: Daily digest
on:
schedule:
- cron: "0 7 * * *" # 07:00 UTC quotidiennement
workflow_dispatch: # Permet un déclenchement manuel
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install -r requirements.txt
- name: Run digest
env:
CRYPTOHOPPER_MCP_KEY: ${{ secrets.CRYPTOHOPPER_MCP_KEY }}
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
run: python scripts/daily_digest.py
Les planifications de GitHub Actions utilisent l'heure UTC — convertissez votre heure locale en conséquence. Surveillez les exécutions dans l'onglet Actions du dépôt ; GitHub vous envoie un e-mail lorsqu'une exécution planifiée échoue.
Choisir où planifier
Option | Idéal pour | Inconvénient |
cron | Workflows locaux/personnels sur une machine toujours allumée | S'arrête lorsque votre ordinateur portable se met en veille |
Planificateur de tâches | Workflows personnels sur Windows | Interface utilisateur peu pratique, gestion des variables d'environnement compliquée |
GitHub Actions | Fiable, hébergé dans le cloud, gratuit pour la plupart des usages personnels | Les exécutions peuvent être retardées en cas de forte affluence sur GitHub |
VPS + systemd/cron | Fiabilité de niveau production | Vous gérez le serveur |
Pour la plupart des utilisateurs, GitHub Actions est le bon choix par défaut : gratuit, fiable, et les logs sont faciles à trouver en cas de problème.
Dépannage
La tâche cron ne se lance pas
Vérifiez `grep CRON /var/log/syslog` (Linux) ou `log show --predicate 'process == "cron"'` (macOS). La cause la plus fréquente est un PATH manquant ou des variables d'environnement manquantes — cron s'exécute dans un environnement minimal.
Cron s'exécute mais le script échoue immédiatement
Presque toujours une variable d'environnement manquante. Faites en sorte que le script affiche une erreur claire et se termine tôt si une variable d'environnement requise est absente — ne le laissez pas échouer silencieusement dans l'appel MCP.
La tâche planifiée s'exécute à une heure différente de celle attendue
Fuseaux horaires. Cron utilise le fuseau horaire local de la machine ; GitHub Actions utilise UTC. Testez la planification à une heure prévisible avant de définir la cadence réelle.
Le fichier log est vide même si le script se lance
La redirection ne capture pas stderr. Utilisez `>> log 2>&1` — les doubles chevrons ajoutent ; un seul `>` écrase chaque exécution et fait perdre la sortie précédente.
La planification de GitHub Actions est ignorée
GitHub limite les workflows planifiés pendant les périodes de forte charge et saute occasionnellement des exécutions. Pour les workflows qui doivent s'exécuter de manière fiable, utilisez un deuxième mécanisme de planification en secours ou payez pour un runner dédié. Pour la plupart des workflows, les sauts occasionnels sont tolérables.
Les exécutions planifiées consomment votre quota plus rapidement que prévu
Chaque exécution a un coût. Surveillez votre consommation via comment suivre vos dépenses MCP Cryptohopper. Un récapitulatif hebdomadaire provenant du point de terminaison d'utilisation MCP permet de détecter rapidement les planifications débridées.
Vous souhaitez une précision de planification inférieure à la minute
Aucun de ces planificateurs ne fournit une précision fiable inférieure à la minute, et vous en avez rarement besoin. Si vous pensez en avoir besoin, prenez du recul — le workflow serait probablement mieux conçu comme un webhook orienté événement.
