Vereisten
Een werkende MCP-workflow, uit te drukken als script — het script moet de MCP-prompt uitvoeren, de output vastleggen en leveren. Zie hoe je MCP-rapporten verstuurt naar Telegram, Discord of e-mail.
Een Cryptohopper MCP API-sleutel, opgeslagen als omgevingsvariabele of geheim. Hardcode deze nooit in het script — zie best practices voor API-sleutelbeveiliging.
Het basisschema
Alle drie de planningssystemen wrappen hetzelfde script. De structuur is altijd: MCP-prompt uitvoeren → output vastleggen → leveren. Zorg ervoor dat omgevingsvariabelen zijn ingesteld en dat de output wordt vastgelegd in een logboek.
# /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:
# Jouw MCP client library call hier — die de rapporttekst produceert.
...
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)
Installatie — cron (macOS / Linux)
Test het script eerst handmatig
export CRYPTOHOPPER_MCP_KEY="..."
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_CHAT_ID="..."
python3 /home/you/scripts/daily_digest.py
2. Bewerk je crontab
Voer crontab -e uit en voeg de onderstaande regel toe. Cron erft niet de omgeving van je shell — declareer variabelen bovenaan de crontab.
CRYPTOHOPPER_MCP_KEY=jouw_sleutel
TELEGRAM_BOT_TOKEN=jouw_token
TELEGRAM_CHAT_ID=jouw_chat_id
PATH=/usr/local/bin:/usr/bin:/bin
# Dagelijks om 8:00 lokale tijd
0 8 * * * /usr/bin/python3 /home/you/scripts/daily_digest.py >> /home/you/logs/daily.log 2>&1
3. Verifieer
Controleer na de geplande tijd het logboek. Een leeg logboek betekent dat cron het script niet heeft uitgevoerd. Fouten in het logboek betekenen dat het wel is uitgevoerd, maar mislukt.
bashtail -50 /home/you/logs/daily.log
Installatie — Taakplanner (Windows)
Test het script vanuit Powershell
$env:CRYPTOHOPPER_MCP_KEY = "..."
$env:TELEGRAM_BOT_TOKEN = "..."
$env:TELEGRAM_CHAT_ID = "..."
python C:\Users\you\scripts\daily_digest.py
2. Stel een trigger in
Configureer onder Triggers de planning (dagelijks om 8:00, wekelijks, etc.).
3. Configureer de actie
Onder Acties: Programma/script → `python` (of het volledige pad naar python.exe). Voeg argumenten toe → `C:\Users\you\scripts\daily_digest.py`. Starten in → `C:\Users\you\scripts`.
4. Behandel omgevingsvariabelen
Twee opties: stel ze in als systeem-brede variabelen via Configuratiescherm → Systeem → Omgevingsvariabelen, of laad ze uit een `.env`-bestand met de `python-dotenv`-bibliotheek.
5. Verifieer
Controleer het resultaat van de laatste uitvoering van de taak in de Taakplanner. `0x0` betekent succes; alles anders is een fout.
Installatie — GitHub Actions (cloud-gehost)
Maak een GitHub-repository voor je geplande workflows
Voeg je script toe aan de repo. Commit geen geheimen.
Voeg repository-geheimen toe
Ga naar Instellingen → Geheimen en variabelen → Acties en voeg toe: `CRYPTOHOPPER_MCP_KEY`, `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID`.
Maak het workflowbestand
# .github/workflows/daily_digest.yml
name: Daily digest
on:
schedule:
- cron: "0 7 * * *" # 07:00 UTC dagelijks
workflow_dispatch: # maakt handmatige triggering mogelijk
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
GitHub Actions-schema's gebruiken UTC — pas je lokale tijd dienovereenkomstig aan. Controleer uitvoeringen in het tabblad Acties van de repository; GitHub e-mailt je wanneer een geplande uitvoering mislukt.
Kiezen waar je wilt plannen
Optie | Het beste voor | Nadeel |
cron | Lokale/persoonlijke workflows op een machine die altijd aanstaat | Gaat dood als je laptop slaapt |
Taakplanner | Persoonlijke workflows op Windows | Onhandige UI, omgevingsvariabelen zijn lastig |
GitHub Actions | Betrouwbaar, cloud-gehost, gratis voor de meeste persoonlijk gebruik | Uitvoeringen kunnen vertraagd zijn tijdens GitHub-congestie |
VPS + systemd/cron | Productie-niveau betrouwbaarheid | Jij beheert de server |
Voor de meeste gebruikers is GitHub Actions de juiste standaard: gratis, betrouwbaar, en logs zijn vindbaar als er iets misgaat.
Probleemoplossing
Cron-taak start niet
Controleer `grep CRON /var/log/syslog` (Linux) of `log show --predicate 'process == "cron"'` (macOS). De meest voorkomende oorzaak is een ontbrekende PATH of ontbrekende omgevingsvariabelen — cron draait in een minimale omgeving.
Cron draait wel, maar het script faalt onmiddellijk
Vrijwel altijd een ontbrekende omgevingsvariabele. Laat het script een duidelijke fout afdrukken en vroegtijdig afsluiten als een vereiste omgevingsvariabele ontbreekt — laat het niet stilzwijgend falen binnen de MCP-oproep.
Geplande taak draait op een ander tijdstip dan verwacht
Tijdzones. Cron gebruikt de lokale tijdzone van de machine; GitHub Actions gebruikt UTC. Test de planning op een voorspelbaar tijdstip voordat je de werkelijke cadans instelt.
Logboek is leeg, ook al start het script
De omleiding vangt stderr niet op. Gebruik `>> log 2>&1` — de dubbele pijl voegt toe; een enkele `>` overschrijft elke uitvoering en verliest eerdere output.
GitHub Actions-planning wordt overgeslagen
GitHub onderdrukt geplande workflows tijdens hoge belasting en slaat af en toe uitvoeringen over. Voor workflows die betrouwbaar moeten worden uitgevoerd, gebruik je een tweede planningsmechanisme als back-up of betaal je voor een dedicated runner. Voor de meeste workflows zijn incidentele overslaingen acceptabel.
Geplande uitvoeringen verbruiken je quotum sneller dan verwacht
Elke uitvoering kost geld. Monitor het gebruik via hoe je je Cryptohopper MCP-uitgaven monitort. Een wekelijkse controle vanuit het MCP-gebruiks-endpoint vangt snel verkeerd lopende schema's op.
Je wilt sub-minuut planningsprecisie
Geen van deze planners biedt betrouwbare sub-minuut precisie, en je hebt het zelden echt nodig. Als je denkt van wel, stap dan terug — de workflow is waarschijnlijk beter ontworpen als een gebeurtenisgestuurde webhook.
