Send a Telegram message
Send Telegram messages from your AI; the bot token stays on the server.
Deliver a message via a Telegram bot to a chat. The bot token rides the request URL path, which is exactly why it must never transit the model - FlurryPORT resolves $secrets in the URL server-side at delivery.
The credential never enters the model context: it lives in the FlurryPORT secret store, deliveries are signed server-side, and every send returns a receipt your agent can quote.
What this is
Your AI sends Telegram messages through a bot whose token it never touches. Telegram's API puts the bot token in the URL path itself, which is precisely why this pipe exists: FlurryPORT resolves the secret into the URL server-side at delivery, so the token never appears in any AI conversation.Setup in two steps
- Telegram side. Message @BotFather, run
/newbot, copy the token. Start a chat with your bot (or add it to a group) and get the chat id from the bot's getUpdates page. - FlurryPORT side. Your AI requests secret setup and FlurryPORT emails you a secure page. Paste the token there; the default chat id is set at install and the pipe goes live.
Credential custody
The token is stored encrypted and injected into the delivery URL server-side. Stored responses are scrubbed if the value ever echoes back. Rotation is a paste on the same page.What to expect
Receipts carry Telegram's real response. Messages cap at 4096 characters; the intent can override the chat id per message when you want the same bot talking somewhere else.Install with your agent
npx flurryport mcp
Point your agent at the FlurryPORT MCP server (npx flurryport mcp) and ask it for the flurryport:telegram-send recipe. Works from AI clients that can run a local process: desktop apps and terminal agents. Web-only chat clients cannot reach a local MCP server; open a desktop client instead.
Tools your agent gains
flry_telegram_send- Send a message via the configured Telegram bot. Input: text (required), chatId (optional override).
Setup walkthrough
TELEGRAM_BOT_TOKEN: Message @BotFather, run /newbot, copy the token. Start a chat with your bot (or add it to a group) and get the chat id from getUpdates. Paste the token in the FlurryPORT secret page.
Intent schema
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 4096
},
"chatId": {
"type": "string",
"description": "Override the installed default chat."
}
}
}Install-time parameters
chatId- install-time: Default chat id for this install; runtime intent.chatId overrides.
Transformation
{ "chat_id": $body.chatId ? $body.chatId : $install.chatId, "text": $body.text }Delivery target
POST https://api.telegram.org/bot$secrets.TELEGRAM_BOT_TOKEN/sendMessage
Placeholders like $secrets.NAME resolve server-side at delivery, never in the agent.
Gotchas
- The bot token rides the request URL path, so URL logs are sensitive on the Telegram side; this is exactly why the token must never transit the model.
- Text over 4096 characters is rejected by the API.
Where this fits
Related recipes
Let your AI post to Discord through a channel webhook the model never sees.
Let your AI add records to an Airtable table; the token stays server-side.
Create and update Azure DevOps work items in one batched pipe: priority, state, tags, and sprint included.
Query Azure DevOps work items with WIQL and read the matching ids back, without your AI ever holding the PAT.
Read fields for a batch of Azure DevOps work items by id: title, state, tags, priority, iteration.