eduard256

telegram-channel-mcp-server

Community eduard256
Updated

telegram-channel-mcp-server

MCP server (stdio) for publishing and managing posts in a Telegram channel via the Bot API.Lets an agent (Claude Code, Claude Desktop, etc.) post text, photos, videos, albums, documents,voice messages, video notes, polls/quizzes and paid content, and edit/delete/pin posts.

Installation

npm install
npm run build

Configuration

Variable Required Description
TELEGRAM_BOT_TOKEN yes Bot token from @BotFather. The bot must be a channel admin with the "Post messages" permission (and the matching rights for editing/deleting).
TELEGRAM_CHAT_ID no Default channel: -100… or @username. Every tool accepts a chat_id that overrides the default.

Claude Code

claude mcp add telegram-channel -e TELEGRAM_BOT_TOKEN=123:ABC -e TELEGRAM_CHAT_ID=-1001234567890 -- node /abs/path/telegram-channel-mcp/dist/index.js

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "telegram-channel": {
      "command": "node",
      "args": ["/abs/path/telegram-channel-mcp/dist/index.js"],
      "env": { "TELEGRAM_BOT_TOKEN": "123:ABC", "TELEGRAM_CHAT_ID": "-1001234567890" }
    }
  }
}

Tools

Tool What it does
telegram_send_message Text with HTML/MarkdownV2, link preview control, buttons
telegram_send_photo / _video / _animation / _document / _audio / _voice / _video_note A single media item with caption, spoiler, buttons
telegram_send_media_group Album of 2-10 items as one post
telegram_send_paid_media Paid post for Telegram Stars
telegram_send_poll / telegram_stop_poll Poll or quiz / close it and get the results
telegram_edit_message Change text, caption, media, buttons
telegram_delete_messages Delete up to 100 posts
telegram_pin_message / telegram_unpin_message Pin / unpin
telegram_copy_message Copy or forward a post from another chat
telegram_set_reaction React on behalf of the channel
telegram_get_chat Channel info and subscriber count (read-only)

Media in every tool is given as a string: a public http(s) URL, an absolute path to a local file (the server uploads it), or a Telegram file_id (returned in the send result, so you can reuse a file without uploading it again).

Buttons are an array of rows: [[{ "text": "Website", "url": "https://…", "style": "primary" }], [{ "text": "Copy", "copy_text": "PROMO" }]]. Exactly one of url / callback_data / copy_text; style: primary | success | danger.

Bot API limitations handled by the server

  • Albums and video notes cannot carry buttons - send them in a separate message.
  • In an album show_caption_above_media applies to all items at once.
  • Paid content works in channels only, 1-10 000 stars.
  • Polls in channels are always anonymous.
  • Limits: text 4096 chars, caption 1024, file 50 MB on upload / 20 MB via URL.

Development

npm run dev                        # run from sources
npm run smoke -- /path/to/img.png  # e2e check against a real channel (creates and deletes test posts)
npx @modelcontextprotocol/inspector node dist/index.js

Layout: src/telegram.ts - API client and media resolution, src/schemas.ts - shared zod schemas,src/format.ts - response formatting, src/tools/* - tools grouped by domain, src/index.ts - entry point.

MCP Server · Populars

MCP Server · New

    eduard256

    Ozon MCP Server

    MCP Server for Ozon marketplace - search products, get details, prices and delivery info

    Community eduard256
    TalkToHumans

    LinkedIn MCP Server

    Safe LinkedIn MCP server for Claude, ChatGPT, Cursor & Codex. Your Agents read LinkedIn DMs, search your network, enrich profiles and draft messages you send.

    Community TalkToHumans
    bex-co

    Beancount.io Backend

    💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo.

    Community bex-co
    nkapila6

    mcpsurfr

    Local web search MCP server, formerly mcp-local-rag. Multi-engine deep research with on-device re-ranking. ✨ no API keys ✨

    Community nkapila6
    convex

    mcp.ts

    The open-source reactive database for app developers

    Community convex