Přeskočit na hlavní obsah

Odesílej zprávy Cryptohopper MCP na Telegram, Discord nebo e-mail

Nauč se posílat reporty z Cryptohopper MCP na Telegram, Discord nebo email — s nastavením, porovnáním kanálů a opravami běžných problémů s doručením.

Autor: Isaac

Předpoklady

  • Funkční workflow MCP, které generuje obsah, který chceš doručit — podívej se na návod k sestavení denní zprávy o nejvýkonnějších titulech jako šablonu.

  • Pro krok doručení potřebuješ prostředí pro skriptování. Běžnou volbou je Python nebo Node.js. Doručení je samostatný krok po vygenerování výstupu MCP — není jeho součástí.

  • Přihlašovací údaje pro cílový kanál: token pro bota na Telegramu nebo Discordu, případně SMTP / transakční e-mailové údaje pro e-mail.


Nastavení — Telegram

  1. Vytvoř si Telegram bota

    Napiš zprávu @BotFather, pošli /newbot a postupuj podle pokynů. Token bota si ulož.

  2. Získej svoje chat ID

    Pošli svému Telegram botu libovolnou zprávu, pak otevři níže uvedenou URL. `chat.id` v odpovědi je to, co potřebuješ.

    https://api.telegram.org/bot /getUpdates

  3. Otestuj doručení

    import requests

    TOKEN = "tvůj_token_bota"
    CHAT_ID = "tvoje_chat_id"

    def send_telegram(text: str) -> None:
    requests.post(
    f"https://api.telegram.org/bot{TOKEN}/sendMessage",
    json={
    "chat_id": CHAT_ID,
    "text": text,
    "parse_mode": "Markdown",
    },
    ).raise_for_status()

    send_telegram("Ahoj z tvého workflow Cryptohopper MCP")

Telegram podporuje Markdown, takže tabulky a tučné písmo z MCP se zobrazí nativně. Zprávy delší než 4 096 znaků musí být rozděleny — dlouhé reporty rozděluj na koncích odstavců.


Nastavení — Discord

  1. Vytvoř si webhook

    Na svém Discord serveru otevři kanál → ikona ozubeného kola → Integrace → Webhooky → Nový webhook. Zkopíruj URL webhooku.

  2. Otestuj doručení

import requests

WEBHOOK = "https://discord.com/api/webhooks/..."

def send_discord(text: str) -> None:
requests.post(WEBHOOK, json={"content": text}).raise_for_status()

send_discord("Ahoj z tvého workflow Cryptohopper MCP")

Limit obsahu na Discordu je 2 000 znaků na zprávu — dlouhé reporty rozděluj. Discord nemá nativní podporu tabulek; tabulky formátuj jako zarovnané bloky kódu pomocí trojitých zpětných apostrofů. Pro bohatší výstup použij Discord embedy (název, popis, pole) místo syrového obsahu.


Nastavení — E-mail

Dvě možnosti: SMTP přes Gmail nebo podobný (jednoduché, zdarma, omezené limity) nebo transakční služba jako SendGrid, Mailgun nebo Resend (spolehlivé, preferované pro plánované úlohy).

Příklad SendGrid

import os
import requests

API_KEY = os.environ["SENDGRID_API_KEY"]
FROM = os.environ.get("ALERT_FROM_EMAIL", "[email protected]")
TO = os.environ.get("ALERT_TO_EMAIL", "[email protected]")

def send_email(subject: str, body: str) -> None:
requests.post(
"https://api.sendgrid.com/v3/mail/send",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"personalizations": [{"to": [{"email": TO}]}],
"from": {"email": FROM},
"subject": subject,
"content": [{"type": "text/markdown", "value": body}],
},
).raise_for_status()

send_email("Denní top movers", "## Dnešní movers\n...")


Pro e-mailové reporty používej Markdown nebo HTML — prostý text se u tabulkových dat rychle stane nečitelným.


Výběr správného kanálu

Kanál

Nejlepší pro

Omezení

Telegram

Okamžité alerty, na telefonu, rychlé čtení

Limit 4 096 znaků, Markdown-lite

Discord

Společný týmový kanál, bohaté formátování, diskuse kolem alertů

Limit 2 000 znaků, žádné skutečné tabulky

E-mail

Delší souhrny, archivace, cokoliv, co budeš chtít později prohledávat

Vyšší latence, snadno se ignoruje

Ad-hoc alerty → Telegram. Výstup viditelný pro tým → Discord. Ranní souhrny → e-mail.


Kanovnický vzor

Udrž krok MCP a krok doručení odděleně. Chyba v doručení (síťový problém, vypršení tokenu) by neměla ztratit výstup MCP — stále si ho můžeš obnovit z logů.

# 1. Spusť workflow MCP (vygeneruje textový výstup)
report_text = run_mcp_workflow(prompt)

# 2. Doruč
try:
send_telegram(report_text)
except Exception as e:
log(f"Doručení selhalo: {e}")

Řešení problémů

Telegram `getUpdates` vrací prázdný seznam

Ještě jsi botovi neposlal žádnou zprávu, nebo dotazuješ s jiným tokenem. Nejprve pošli jakoukoliv zprávu ze svého účtu na Telegramu botovi, pak to zkus znovu.

Discord webhook vrací 429

Dosáhl jsi limitu. Discord webhooks povolují zhruba 30 zpráv za minutu — respektuj hlavičku `Retry-After`. Pro vysokofrekvenční alerty sdružuj více událostí do jedné zprávy namísto spouštění jedné na událost.

E-maily končí ve spamu

Používej správnou adresu odesílatele na své doméně, s nastaveným SPF/DKIM/DMARC. Vyhýbej se předmětům pouze velkými písmeny, spouštěcím slovům a přílohám. Transakční služba většinu z toho zvládá správně; prosté SMTP ze sdíleného poskytovatele často ne.

Dlouhé MCP reporty se v Telegramu nebo Discordu zkracují

Vytvoř rozdělovač, který bude dělit na koncích odstavců. Nerozděluj uprostřed řádku tabulky — ořízni po posledním kompletním řádku, který se vejde, a další zprávu otevři s hlavičkou (pokr.).

Doručení tiše selhává při plánovaných bězích, ale funguje ručně

Nejčastější příčinou je chybějící proměnná prostředí nebo vypršel token v naplánovaném prostředí. Cron běží bez tvého shellu; GitHub Actions potřebuje nakonfigurovaná tajná data. Zaloguj plnou chybu při každém selhání, aby se okamžitě projevila.

Chceš alerty jen tehdy, když se něco skutečně označí

Nastav doručení jako podmíněné — neposílej zprávy "není co hlásit", stanou se z nich šumy a začneš kanál ignorovat.

Chceš doručovat do více kanálů najednou

Zabal doručení do "fan-outu", aby každý kanál byl nezávislý a chyba v jednom neblokovala ostatní: for ch in [send_telegram, send_discord, send_email]: try ch(text).

Dostali jste odpověď na svou otázku?