Requisitos
Um fluxo de trabalho MCP funcional que possa ser expresso em um script — o script deve executar o prompt do MCP, capturar a saída e entregá-la. Veja como enviar relatórios do MCP do Cryptohopper para Telegram, Discord ou e-mail.
Uma chave de API do Cryptohopper MCP armazenada como variável de ambiente ou segredo. Nunca a codifique diretamente no script — consulte as melhores práticas de segurança de chave de API.
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)
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)
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)
Crie um repositório do GitHub para seus fluxos de trabalho agendados
Adicione seu script ao repositório. Não comite segredos.
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.
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.
