← Back to directory
T

Telegram API MCP Server

Community
Ultimate Telegram Bot API MCP server — full v9.6 coverage, meta-mode, rate limiting, circuit breaker.
Category
Other
Stars
★ 33 Popular
Transport
stdio (local process)
Runtime
Node.js
Credentials
API key / credential required
License
MIT
Last commit
Tools
30
51FMRS · D

This server offers a comprehensive, type-safe wrapper over the Telegram Bot API with useful engineering for AI use, but it is community-maintained and may lag behind the latest API versions.

Strongest · Setup experience 13/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
11/20
Maintenance
8/20
Documentation
11/20
Setup experience
13/20
Why each score
Reliability 8/20
README describes a clear declarative-registry architecture with Zod validation, rate limiting, circuit breaker, retry, and only 2 dependencies; plausible on paper. However this is a static review with no CI workflows, committed tests, or runtime evidence supplied, and there are self-contradicting figures: headline says 169 methods, the manifest description says 185, and the claimed 'Bot API 9.6 (April 2026)' is a future date, undermining credibility. Deductions: no verifiable execution evidence, inconsistent capability claims.
Security and permissions 11/20
README claims token masking, path-traversal protection, configurable upload allowlist, no eval/dynamic imports, network only to api.telegram.org, no telemetry. No malware, exfiltration, or dangerous irreversible defaults are indicated — no red line triggered. But these are self-reported claims not verifiable from supplied source, and destructive operations (deleteMessage, banChatMember, payments) rely on tool annotations rather than enforced confirmation. Deductions: unverified claims, no enforced confirmation for dangerous ops.
Maintenance 8/20
Not archived, MIT license, npm package at 0.2.0, 2 open issues, author maintains multiple related projects. Yet it is a 0.x release with no evidence of release cadence, security-response channel, or dependency-update policy. Deductions: early version, missing governance and security-response evidence.
Documentation 11/20
README is well structured: quick start for Claude Code/Desktop and source, full env-var table, meta-mode guide, per-category method table, architecture tree, security section — above average. Deductions: no troubleshooting section, no disclosed limitations, and internal contradictions (169 vs 185 methods, future-dated API version) signal docs may not match actual capability.
Setup experience 13/20
One-line npx install plus concrete Claude Code and Claude Desktop config examples, clear env-var table, complete source-build path. Caveat: the 'claude mcp add ... -e VAR=...' example mixes flag styles and may not work as written, risking user confusion. Deductions: untested install path in static review, questionable CLI example syntax.

Static review · not runListed 2026-09-08

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesUses the network

Best for

  • LLM-driven Telegram bot development where natural-language prompts trigger Bot API calls.
  • Integrations requiring a comprehensive, validated set of Telegram Bot API methods.
  • Longer AI conversations where meta-mode reduces context token consumption.
  • Projects needing built-in rate limiting and fault tolerance in Bot API calls.

Not for

  • Users not working with Telegram or without Telegram bot needs.
  • Users needing SSE or HTTP transport, as this server supports only stdio.
  • Those wanting an officially maintained MCP server; this is a community implementation.
  • Edge-case use cases that require no external dependencies and full official support.

Required permissions

  • Full access to the Telegram Bot API tied to the provided token.
  • Ability to send and receive messages, files, and media in chats, groups, and channels where the bot is a member.
  • The server communicates only with `api.telegram.org`; no other external network calls are made.
  • The token is masked and never exposed in responses or error messages.

Risks and side effects

  • Token leakage could lead to misuse of the bot account.
  • Potential security risks if file uploads are exposed in untrusted environments.
  • Rate limiting and circuit breaker behaviors may interact unusually under load.
  • The server's code and content may contain bugs, with no official support.

Setup

Before you start

Runtime:Node.js

TELEGRAM_BOT_TOKEN requiredsecret Required bot token, obtained from @BotFather after creating a Telegram bot.
Other optional settings (10)
TELEGRAM_DEFAULT_CHAT_ID optional Optional default chat ID so tools don't need chat_id on every call.
TELEGRAM_DEFAULT_THREAD_ID optional Optional default forum topic thread ID.
TELEGRAM_META_MODE optional Set to true to expose only 2 meta-tools (telegram_find, telegram_call) instead of 169, saving ~99% context tokens; default false.
TELEGRAM_GLOBAL_RATE_LIMIT optional Max requests per second, default 30, matching Telegram's global limit.
TELEGRAM_PER_CHAT_RATE_LIMIT optional Max messages per minute per group, default 20, matching Telegram's limit.
TELEGRAM_MAX_RETRIES optional Retry attempts on transient errors, default 3.
TELEGRAM_CB_THRESHOLD optional Number of failures before the circuit breaker opens, default 5.
TELEGRAM_CB_COOLDOWN optional Circuit breaker cooldown in milliseconds, default 30000.
TELEGRAM_ALLOWED_UPLOAD_DIRS optional Comma-separated allowed upload paths for file upload security.
TELEGRAM_MAX_FILE_SIZE optional Max upload file size in bytes, default 52428800 (50MB).
  1. Obtain a bot token from @BotFather.
  2. In an MCP-capable client (e.g., Claude Desktop), add an MCP server with the configuration: command: 'npx', args: ['telegram-api-mcp'], env: { TELEGRAM_BOT_TOKEN: 'your_token' }.
  3. Alternatively, set the environment variable in your shell and run npx telegram-api-mcp locally with an MCP client that supports stdio.
claude_desktop_config.json
{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": [
        "telegram-api-mcp"
      ],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_from_botfather"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "telegram": {
      "command": "npx",
      "args": [
        "telegram-api-mcp"
      ],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_from_botfather"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add telegram -e TELEGRAM_BOT_TOKEN=your_token_from_botfather -- npx telegram-api-mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After setup, the client's tool list should show tools like getMe and sendMessage; asking the AI to call getMe and getting back the bot's identity confirms the connection works.

Troubleshooting

  1. Check that `TELEGRAM_BOT_TOKEN` is correctly set in the environment.
  2. Verify that your Telegram bot token is valid and the bot is initialized.
  3. Ensure your client uses the latest version of `telegram-api-mcp` via npx.
  4. For message-sending errors, check rate-limit configurations and chat ID correctness.

Things to try

Once connected, you can ask your AI assistant things like:

  • Call getMe and tell me this bot's name
  • Send a message to my channel saying 'meeting moved to 3pm'
  • Create a poll in the group asking 'Friday or Saturday?' with options Friday and Saturday
  • Use telegram_find to search for sticker methods, then call one with telegram_call

Tools 30

telegram_find read-only
Search available Telegram methods by keyword or category.
telegram_call writes
Call any Telegram Bot API method by name with JSON params.
sendMessage writes
sendPhoto writes
sendVideo writes
sendAudio writes
sendDocument writes
sendMediaGroup writes
Show 22 more tools
sendPoll writes
sendDice writes
sendChatAction writes
forwardMessage writes
copyMessage writes
editMessageText writes
deleteMessage destructive
getMe read-only
getChat read-only
banChatMember destructive
unbanChatMember writes
restrictChatMember writes
promoteChatMember writes
getFile read-only
getUpdates read-only
setWebhook writes
answerCallbackQuery writes
sendInvoice writes
createChatInviteLink writes
setChatTitle writes
sendLocation writes
sendContact writes

Use cases

Send Telegram messages, audio, photos, videos, documents, and media groups from within an MCP client.
Manage chats, groups, forum topics, and member permissions directly.
Implement Telegram bot operations without manual REST calls in the client.
Create polls, quizzes, invoices, and gifts in Telegram.

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

telegram-api-mcp is a TypeScript-only MCP server that provides all 169 methods of the Telegram Bot API (Bot API v9.6; v10.2 per the manifest). It includes Zod parameter validation, token masking, tool annotations, response truncation, and resilience features like async-mutex token-bucket rate limiting (defaults: 30 requests/sec global and 20 messages/min per group, aligning with Telegram's official limits) and a 3-state circuit breaker (closed/open/half-open). It supports a meta-mode (TELEGRAM_META_MODE=true) that replaces the 169 individual tools with just two tools, telegram_find and telegram_call, to save ~99% of context tokens. It has only two runtime dependencies (@modelcontextprotocol/sdk and zod). The server communicates with clients via stdio. It is compatible with clients such as Claude Desktop, as per the README installation instructions, running through npx.

Similar servers

Telegram MCP server powered by Telethon to let MCP clients read chats, manage groups, and send/modify messages, media, contacts, and settings.

★ 1.8k · Tools 76 Compare with this →

Source revision 9d95026479c3 Data synced 2026-10-19 Read the FMRS scoring method