Passer au contenu principal

Comment planifier les workflows MCP Cryptohopper avec cron, le Planificateur de tâches et GitHub Actions

Apprends à programmer tes workflows MCP Cryptohopper avec cron, le Planificateur de tâches Windows ou GitHub Actions. Scripts, astuces env-var et corrections incluses.

Écrit par Isaac

Prérequis


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)

  1. 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)

  1. 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)

  1. 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.

  2. 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.

  3. 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.


Avez-vous trouvé la réponse à votre question ?