Telegram Bridge MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Telegram Bridge MCPSend a welcome message to my Telegram group"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Telegram Bridge MCP
No Claw? No Problem.
Anthropic restricted Claude Code's native instance API — but this bridge doesn't care. It's a standard Model Context Protocol server. Any IDE, any model, any agent framework that speaks MCP connects out of the box — no proprietary lock-in, no webhooks, no public URL required.
Related MCP server: Telegram Bridge MCP
What Is This?
Telegram Bridge MCP connects AI assistants to Telegram bidirectionally. It lets any MCP-compatible client send messages, ask questions, receive voice replies, and run multiple concurrent agent sessions — all through a single bot you control.
Works with: VS Code (GitHub Copilot Chat), Claude Code, Cursor, Windsurf, Copilot CLI, and any MCP-compatible host.
Highlights
Feature | Description |
Two-way messaging | Text, Markdown, files, voice notes |
Interactive controls | Inline buttons, confirmations, questions |
Super tools | Self-pinning checklists and emoji progress bars that update in-place |
Voice | Auto-transcription (bundled Whisper ONNX, no ffmpeg) + TTS (local Kokoro, OpenAI, or bundled ONNX) |
Multi-session | Multiple agents share one bot with isolated queues, token auth, and color identity |
Animations | Cycling status frames while your agent works |
Reminders | Scheduled synthetic events delivered via dequeue |
Slash commands | Dynamic bot menu; commands arrive as structured events |
No webhooks | Pure long-polling — no public URL, no reverse proxy |
Quick Start
Tip: If your AI has web access, paste this to get started (requires web access):
Set me up: https://github.com/electrified-cortex/Telegram-Bridge-MCP
1. Clone and build
git clone https://github.com/electrified-cortex/Telegram-Bridge-MCP.git
cd Telegram-Bridge-MCP
pnpm install && pnpm build2. Create a bot
Message @BotFather on Telegram:
/newbotCopy the token it gives you.
3. Pair interactively
pnpm pairThe wizard prompts for your bot token and Telegram user ID, writes a .env file, and verifies connectivity.
4. Configure your MCP host
See docs/setup.md for per-client config snippets (VS Code, Claude Code, Cursor, Docker).
Transports
Transport | Entry Point | Best For |
Streamable HTTP |
| Multiple clients sharing one server (recommended) |
stdio |
| Single client, no persistent server |
Launcher bridge |
| Auto-starts HTTP if needed, bridges stdio ↔ HTTP |
Claude Code / Cursor / other MCP hosts
{
"mcpServers": {
"telegram": {
"type": "streamable-http",
"url": "http://127.0.0.1:3099/mcp"
}
}
}VS Code (.vscode/mcp.json)
{
"servers": {
"telegram": {
"type": "streamable-http",
"url": "http://127.0.0.1:3099/mcp"
}
}
}Claude Code / Cursor / other MCP hosts
{
"mcpServers": {
"telegram": {
"command": "node",
"args": ["/path/to/Telegram-Bridge-MCP/dist/index.js"],
"env": {
"BOT_TOKEN": "your-token",
"ALLOWED_USER_ID": "your-user-id"
}
}
}
}VS Code (.vscode/mcp.json)
{
"servers": {
"telegram": {
"type": "stdio",
"command": "node",
"args": ["/path/to/Telegram-Bridge-MCP/dist/index.js"],
"env": {
"BOT_TOKEN": "your-token",
"ALLOWED_USER_ID": "your-user-id"
}
}
}
}Tools — The v7 API
Version 7 consolidates the entire API into 4 tools with type-based routing. Call help(topic?) at any time for interactive documentation discovery.
send — Outbound Messaging
All outbound operations flow through a single send call. The type parameter determines behavior.
Type | Description |
| Formatted Markdown text; pass |
| Photo, document, video, audio, or voice note |
| Status notification with severity: |
| Message with inline buttons (non-blocking) |
| Blocking prompt — route with |
| DM to another session ( |
| Append text to an existing message |
| Start a cycling status animation |
| Create a self-pinning live checklist; requires |
| Create an emoji progress bar (width configurable) |
Update in-place with
action(type: "checklist/update", message_id: ...)andaction(type: "progress/update", message_id: ...)respectively. Seedocs/super-tools.md.
// Examples — token required for all session-scoped calls; session/start and most help topics work without a token
// token: 1234567 (required for all session-scoped calls)
send({ token: 1234567, type: "text", text: "Hello from your AI agent!" })
send({ token: 1234567, type: "notification", severity: "success", text: "Build passed." })
send({ token: 1234567, type: "question", ask: "Proceed with deployment?" })
send({ token: 1234567, type: "checklist", title: "Pipeline", steps: [{ label: "Design", status: "pending" }, { label: "Implement", status: "pending" }, { label: "Review", status: "pending" }, { label: "Deploy", status: "pending" }] })
send({ token: 1234567, type: "progress", title: "Processing files", percent: 40, subtext: "4 of 10 complete", width: 10 })dequeue — Receive Inbound Events
Long-poll for the next inbound event: messages, button presses, voice notes, slash commands, reminders.
Note:
tokenis the integer returned byaction(type: "session/start").
dequeue({ token: 1234567 }) // default timeout — idles until event
dequeue({ token: 1234567, timeout: 0 }) // non-blocking drain (coordination gates)action — Universal Dispatcher
RESTful path routing via type. Supports progressive discovery:
Omit
type→ list all categoriesPass a category → list sub-paths
Pass a full path → execute
Session
session/start · session/close · session/list · session/rename · session/idle
Profile
profile/voice · profile/topic · profile/save · profile/load · profile/import · profile/dequeue-default
Reminder
reminder/set · reminder/cancel · reminder/list
Animation
animation/default · animation/cancel
Message
message/edit · message/delete · message/pin · message/route · message/history · message/get
Chat
chat/info
Super Tools
checklist/update · progress/update
Confirm Presets
confirm/ok · confirm/ok-cancel · confirm/yn
Standalone
react · acknowledge · show-typing · commands/set · logging/toggle · transcribe · download
Governor-only
approve · shutdown · shutdown/warn · log/get · log/list · log/roll · log/delete · log/debug
help — Documentation Discovery
help() // list all topics
help({ topic: "send" }) // targeted reference for a specific tool or typeMulti-Session
Multiple agents can share one bot simultaneously without cross-talk.
session/start → token (integer) → pass on every session-scoped callToken format: token = sid * 1_000_000 + pin — a single integer, returned by action(type: "session/start").
Capability | Description |
Isolated queues | Per-session routing; no messages bleed between agents |
Color identity | Outbound messages prefixed with color + name (e.g., |
Governor model | First session is primary; additional sessions require operator approval via color-picker keyboard |
DMs | Inter-session messaging via |
Health monitoring | Unresponsive sessions trigger operator prompts to reroute or promote |
Graceful teardown | Orphaned events rerouted; callback hooks replaced on close |
See docs/multi-session-protocol.md for the full routing protocol.
Voice
Transcription (Inbound)
Voice messages are auto-transcribed before delivery. No external API, no ffmpeg required — the Whisper ONNX model is bundled.
WHISPER_MODEL=onnx-community/whisper-base # default
WHISPER_CACHE_DIR=/path/to/cache # optionalText-to-Speech (Outbound)
Triggered by send(type: "text", audio: "..."). Provider is selected automatically:
Environment Variable | Provider |
| Any OpenAI-compatible |
| api.openai.com |
Neither set | Bundled ONNX model (zero config) |
Kokoro (recommended local TTS)
High-quality local TTS with 25+ voices. No API key, no cost.
docker run -d --name kokoro -p 8880:8880 ghcr.io/hexgrad/kokoro-onnx-server:latestTTS_HOST=http://localhost:8880
TTS_FORMAT=ogg
TTS_VOICE=af_heartSend /voice in Telegram to browse and sample voices live.
Per-session voice override: action(type: "profile/voice") or /voice in Telegram.
MCP Resources
Five resources are available to any connected client — no tool call required:
URI | Contents |
| Behavioral guide for AI agents |
| Communication patterns and loop rules |
| Hard rules + compact tool table |
| Setup walkthrough |
| Markdown / MarkdownV2 / HTML reference |
Docker
ghcr.io/electrified-cortex/telegram-bridge-mcp:latestBefore running Docker: Create your
.envfile first by runningpnpm pairon a machine with Node.js, or copy.env.exampleand fill it in manually.
Streamable HTTP (recommended) — run as a long-lived service:
docker run -d --name telegram-mcp \
--env-file /absolute/path/to/.env \
-e MCP_PORT=3099 \
-p 3099:3099 \
-v telegram-mcp-cache:/home/node/.cache \
ghcr.io/electrified-cortex/telegram-bridge-mcp:latestConnect MCP hosts to http://127.0.0.1:3099/mcp.
{
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", "/absolute/path/to/.env",
"-v", "telegram-mcp-cache:/home/node/.cache",
"ghcr.io/electrified-cortex/telegram-bridge-mcp:latest"
]
}The cache volume persists Whisper and TTS model weights across container restarts.
Development
pnpm build # Compile TypeScript
pnpm dev # Watch mode
pnpm test # Run tests
pnpm coverage # Coverage report
pnpm pair # Re-run pairing wizardAgent Setup
To keep agents reliably in the Telegram dequeue loop, install the loop-guard hook for your host. The hook prevents agents from dropping out of the loop on idle or forced stop.
See docs/agent-setup.md for installation instructions for VS Code (GitHub Copilot Chat) and Claude Code.
Documentation
Doc | Contents |
Full setup walkthrough with per-client config | |
Multi-session routing and governor model | |
Checklist and progress bar reference | |
Loop-guard hooks for VS Code and Claude Code | |
v5 → v6 tool name mapping | |
Git index safety notes for multi-agent environments |
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/electricessence/Telegram-Bridge-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server