Open source · telegram-notify MCP

Claude messages you on Telegram, and only you

A small, send-only MCP server that lets Claude, or any MCP client, send Telegram notifications to you: a scheduled job finished, a long build failed, a reminder came due. One recipient, set in configuration. It never reads the bot, so the same bot stays free for your other tools.

  • MIT licence
  • Node.js 20+
  • Two tools
  • One-click for Claude Desktop

What it does

Two tools, one recipient

One fixed recipient

The chat is set in configuration. No tool takes a chat id, so the model cannot send anywhere else, and a test checks that a smuggled chat_id is ignored.

It never polls the bot

It calls sendMessage, sendDocument and getMe, never getUpdates. A bot another tool already polls keeps working, with no 409 Conflict.

Messages that read well

Plain text, or format: "markdown" for bold, italic, code, links and headings, converted to Telegram's HTML. Over 4096 characters it is split. silent: true delivers without a sound.

Files from one folder

notify_file sends up to 50 MB, only from the folder you allow. Paths are resolved to their real location first, so .. and symlinks cannot leave it. Off until you name a folder.

The token stays out of sight

Never logged, and removed from every error before it reaches the model or your terminal. setup keeps it in ~/.telegram-notify/config.json with 600 permissions.

Safe to allow without a prompt

Because the recipient is fixed, you can allow notify in your Claude Code settings: the worst a confused model can do is message you.

Install

A bot, your chat id, and npx

You need Node.js 20 or newer, a bot from @BotFather, and your numeric chat id. Press Start in a chat with the bot first: a bot can only message people who started it.

Save the token and chat id, once
npx -y @yybd/telegram-notify-mcp setup
Claude Code
claude mcp add telegram-notify -s user -- npx -y @yybd/telegram-notify-mcp

setup asks for the token without showing it, checks it, writes the config file and sends a test message; add --files-dir <folder> to allow notify_file. For Claude Desktop, download the .mcpb from the latest release and double-click it: Desktop asks for the token, stores it as a secret, and runs the extension with its own Node.js.

Good to know

One-way, on purpose

  • It doesn't receive messages. What you type back in Telegram never reaches the model.
  • It can't ask and wait. A question that waits for your answer needs a tool that reads the bot, which is what this one avoids. For a two-way conversation, use a channel plugin or a bridge; this can share the same bot with it.
  • It sends to one chat. A group works with its negative id, and a channel as @channelname once the bot is an admin there.
  • It talks to api.telegram.org only, and writes nothing to stdout but the MCP protocol.

Writing

The article about telegram-notify

  1. Let Claude message you on Telegram, and only you

    What eight other Telegram MCP servers get wrong, read from their source: a recipient the model can change, a bot they fight over, files from anywhere. November 2026.

    he

More open source

From the same desk

  • multi-mail MCP

    MCP server

    Several Gmail accounts in Claude Desktop, Claude Code and ChatGPT: search them all at once, read, draft and send.

    Project page
  • App Factory

    Claude Code skills

    42 skills that build, describe, ship and announce apps, to the App Store and Google Play and outside them.

    Project page
  • RepoGuards

    Claude Code hooks

    Refuses a blind commit or a push into a repo the session is not standing in, and shows the agent what is there.

    Project page

Contact

Questions, bugs, or help setting it up

Issues and pull requests are welcome on GitHub. Email reaches the developer directly.

support@bdtech.app