Passar para o conteúdo principal

Como agendar fluxos de trabalho do MCP do Cryptohopper com cron, Agendador de Tarefas e GitHub Actions

Aprenda a agendar fluxos do Cryptohopper MCP com cron, Agendador de Tarefas do Windows ou GitHub Actions — com scripts, dicas e correções.

Escrito por Isaac

Requisitos


O padrão base

Todos os três sistemas de agendamento envolvem o mesmo script. A estrutura é sempre: executar o prompt do MCP → capturar a saída → entregá-la. Certifique-se de que as variáveis de ambiente estejam definidas e que a saída seja capturada em um log.

# /home/você/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:
# Sua chamada de biblioteca cliente do MCP aqui — produzindo o texto do relatório.
...

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/você/prompts/daily_digest.txt").read()
report = run_mcp_workflow(prompt)
send_telegram(report)

Configuração — cron (macOS / Linux)

  1. Teste o script manualmente primeiro

export CRYPTOHOPPER_MCP_KEY="..."
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_CHAT_ID="..."
python3 /home/você/scripts/daily_digest.py

2. Edite seu crontab

Execute o crontab -e e adicione a entrada abaixo. O Cron não herda o ambiente do seu shell — declare as variáveis no topo do crontab.

CRYPTOHOPPER_MCP_KEY=sua_chave
TELEGRAM_BOT_TOKEN=seu_token
TELEGRAM_CHAT_ID=seu_chat_id
PATH=/usr/local/bin:/usr/bin:/bin

# Diariamente às 08:00, horário local
0 8 * * * /usr/bin/python3 /home/você/scripts/daily_digest.py >> /home/você/logs/daily.log 2>&1

3. Verifique

Após o horário programado, verifique o log. Um log vazio significa que o cron não executou o script. Erros no log significam que ele executou, mas falhou.

bashtail -50 /home/você/logs/daily.log

Configuração — Agendador de Tarefas (Windows)

  1. Teste o script do Powershell

$env:CRYPTOHOPPER_MCP_KEY = "..."
$env:TELEGRAM_BOT_TOKEN = "..."
$env:TELEGRAM_CHAT_ID = "..."
python C:\Users\você\scripts\daily_digest.py

2. Defina um gatilho

Em Gatilhos, configure o agendamento (diariamente às 08:00, semanalmente, etc.).

3. Configure a ação

Em Ações: Programa/script → python (ou caminho completo para python.exe). Adicionar argumentos → C:\Users\você\scripts\daily_digest.py. Iniciar em → C:\Users\você\scripts.

4. Lide com variáveis de ambiente
Duas opções: defina-as como variáveis globais do sistema via Painel de Controle → Sistema → Variáveis de Ambiente, ou carregue-as de um arquivo .env usando a biblioteca python-dotenv.

5. Verifique

Verifique o Último Resultado da Execução da tarefa no Agendador de Tarefas. 0x0 significa sucesso; qualquer outra coisa é um erro.


Configuração — GitHub Actions (hospedado na nuvem)

  1. Crie um repositório do GitHub para seus fluxos de trabalho agendados

    Adicione seu script ao repositório. Não comite segredos.

  2. Adicione segredos de repositório

    Vá para Configurações → Segredos e variáveis → Ações e adicione: CRYPTOHOPPER_MCP_KEY, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID.

  3. Crie o arquivo de fluxo de trabalho

# .github/workflows/daily_digest.yml

name: Daily digest

on:
schedule:
- cron: "0 7 * * *" # 07:00 UTC diariamente
workflow_dispatch: # permite gatilho manual

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

Os agendamentos do GitHub Actions usam UTC — converta seu horário local de acordo. Monitore as execuções na aba Ações do repositório; o GitHub envia um e-mail quando um agendamento falha.


Escolhendo onde agendar

Opção

Melhor para

Desvantagem

cron

Fluxos de trabalho locais/pessoais em uma máquina que está sempre ligada

Morre quando seu laptop entra em modo de suspensão

Agendador de Tarefas

Fluxos de trabalho pessoais no Windows

Interface do usuário desajeitada, manuseio de variáveis de ambiente complicado

GitHub Actions

Confiável, hospedado na nuvem, gratuito para a maioria dos usos pessoais

Execuções podem ser atrasadas durante congestionamento do GitHub

VPS + systemd/cron

Confiabilidade de nível de produção

Você gerencia o servidor

Para a maioria dos usuários, o GitHub Actions é o padrão correto: gratuito, confiável e os logs são descobertos quando algo quebra.


Solução de problemas

O job do cron não dispara

Verifique grep CRON /var/log/syslog (Linux) ou log show --predicate 'process == "cron"' (macOS). A causa mais comum é um PATH ausente ou variáveis de ambiente ausentes — o cron é executado em um ambiente mínimo.

Cron é executado, mas o script gera um erro imediatamente

Quase sempre uma variável de ambiente ausente. Faça o script imprimir um erro claro e sair mais cedo se uma variável de ambiente necessária estiver ausente — não o deixe falhar silenciosamente dentro da chamada do MCP.

A tarefa agendada é executada em um horário diferente do esperado

Fuso horário. O Cron usa o fuso horário local da máquina; o GitHub Actions usa UTC. Teste o agendamento em um horário previsível antes de definir a cadência real.

O arquivo de log está vazio, mesmo que o script dispare

O redirecionamento não está capturando o stderr. Use >> log 2>&1 — as setas duplas anexam; um único > sobrescreve cada execução e perde a saída anterior.

O agendamento do GitHub Actions está sendo ignorado

O GitHub limita os fluxos de trabalho agendados durante alta carga e ocasionalmente pula execuções. Para fluxos de trabalho que devem ser executados de forma confiável, use um segundo mecanismo de agendamento como backup ou pague por um runner dedicado. Para a maioria dos fluxos de trabalho, saltos ocasionais são toleráveis.

Execuções agendadas estão consumindo sua cota mais rápido do que o esperado

Cada execução tem um custo. Monitore o uso através de como monitorar seus gastos do Cryptohopper MCP. Uma verificação de soma semanal do endpoint de uso do MCP pega agendamentos descontrolados rapidamente.

Você deseja precisão de agendamento submínima

Nenhum desses agendadores fornece precisão submínima confiável, e você raramente precisa disso. Se você acha que precisa, dê um passo para trás — o fluxo de trabalho provavelmente é melhor projetado como um webhook acionado por evento.


Respondeu à sua pergunta?