К основному содержимому

Как запланировать рабочие процессы Cryptohopper MCP с помощью cron, планировщика задач и GitHub Actions

Настрой рабочие процессы MCP Cryptohopper через cron, планировщик заданий Windows или GitHub Actions. Скрипты, советы по переменным среды и решения проблем.

Автор: Isaac

Что нужно знать заранее


Базовая схема

Все три системы планирования оборачивают один и тот же скрипт. Структура всегда одинакова: запуск MCP-промпта → захват вывода → его доставка. Убедитесь, что переменные окружения установлены, а вывод попадает в лог.

# /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:
# Ваш вызов библиотеки клиента MCP здесь — генерация текста отчета.
...

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)

Настройка — cron (macOS / Linux)

  1. Сначала протестируйте скрипт вручную

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

2. Отредактируйте свой crontab

Выполните команду crontab -e и добавьте запись ниже. Cron не наследует переменные окружения вашей оболочки — объявляйте их в начале crontab.

CRYPTOHOPPER_MCP_KEY=your_key
TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHAT_ID=your_chat_id
PATH=/usr/local/bin:/usr/bin:/bin

# Ежедневно в 08:00 по местному времени
0 8 * * * /usr/bin/python3 /home/you/scripts/daily_digest.py >> /home/you/logs/daily.log 2>&1

3. Проверьте

После запланированного времени проверьте лог. Пустой лог означает, что cron не запустил скрипт. Ошибки в логе означают, что он запустился, но завершился с ошибкой.

bashtail -50 /home/you/logs/daily.log

Настройка — Планировщик заданий (Windows)

  1. Протестируйте скрипт из Powershell

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

2. Настройте триггер

В разделе «Триггеры» настройте расписание (ежедневно в 08:00, еженедельно и т.д.).

3. Настройте действие

В разделе «Действия»: Программа/скрипт → python (или полный путь к python.exe). Добавить аргументы → C:\Users\you\scripts\daily_digest.py. Рабочая папка → C:\Users\you\scripts.

4. Работа с переменными окружения
Два варианта: установить их как системные переменные через Панель управления → Система → Переменные среды, либо загрузить из файла .env с помощью библиотеки python-dotenv.

5. Проверьте

Проверьте поле «Результат последнего выполнения» для задачи в Планировщике заданий. 0x0 означает успех; все остальное — ошибка.


Настройка — GitHub Actions (облачный хостинг)

  1. Создайте репозиторий GitHub для ваших запланированных воркфлоу

    Добавьте ваш скрипт в репо. Не коммитите секреты.

  2. Добавьте секреты репозитория

    Перейдите в «Настройки» → «Секреты и переменные» → «Actions» и добавьте: CRYPTOHOPPER_MCP_KEY, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID.

  3. Создайте файл воркфлоу

# .github/workflows/daily_digest.yml

name: Daily digest

on:
schedule:
- cron: "0 7 * * *" # 07:00 UTC ежедневно
workflow_dispatch: # позволяет ручной запуск

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 используют UTC — соответственно конвертируйте ваше местное время. Отслеживайте запуски на вкладке «Actions» репозитория; GitHub присылает уведомление по email при сбое запланированного запуска.


Выбор места для планирования

Вариант

Лучше всего для

Недостаток

cron

Локальные/персональные воркфлоу на постоянно включенной машине

Отключается, когда ваш ноутбук засыпает

Планировщик заданий

Персональные воркфлоу на Windows

Неудобный интерфейс, корявая работа с переменными окружения

GitHub Actions

Надежность, облачный хостинг, бесплатно для большинства личного использования

Запуски могут задерживаться при высокой нагрузке на GitHub

VPS + systemd/cron

Надежность уровня продакшена

Вы управляете сервером

Для большинства пользователей GitHub Actions — отличный выбор по умолчанию: бесплатно, надежно, логи легко найти, если что-то сломается.


Устранение неполадок

Cron job не запускается

Проверьте grep CRON /var/log/syslog (Linux) или log show --predicate 'process == "cron"' (macOS). Самая частая причина — отсутствие PATH или переменных окружения — cron запускается в минимальном окружении.

Cron запускается, но скрипт сразу выдает ошибку

Почти всегда отсутствует переменная окружения. Сделайте так, чтобы скрипт выводил понятную ошибку и завершался раньше, если отсутствует необходимая переменная окружения — не дайте ему тихо упасть внутри вызова MCP.

Запланированное задание запускается в другое время, чем ожидалось

Часовые пояса. Cron использует локальный часовой пояс машины; GitHub Actions использует UTC. Протестируйте расписание в предсказуемое время, прежде чем устанавливать реальную частоту.

Файл лога пуст, хотя скрипт запускается

Перенаправление не захватывает stderr. Используйте >> log 2>&1 — двойная стрелка добавляет; одинарная > перезаписывает каждый запуск и теряет предыдущий вывод.

Расписание GitHub Actions пропускается

GitHub ограничивает запланированные воркфлоу при высокой нагрузке и иногда пропускает запуски. Для воркфлоу, которые должны выполняться надежно, используйте второй механизм планирования в качестве резерва или оплатите выделенный раннер. Для большинства воркфлоу редкие пропуски допустимы.

Запланированные запуски съедают вашу квоту быстрее, чем ожидалось

Каждый запуск — это стоимость. Отслеживайте использование через руководство по мониторингу затрат на Cryptohopper MCP. Еженедельная проверка суммы через endpoint использования MCP быстро выявит вышедшие из-под контроля расписания.

Вам нужна точность планирования до секунды

Ни один из этих планировщиков не обеспечивает надежной точности до секунды, и вам редко это действительно нужно. Если вы думаете, что это так, сделайте шаг назад — воркфлоу, скорее всего, лучше спроектировать как событийно-ориентированный вебхук.


Нашли ответ на свой вопрос?