mcp-telegram-agent
Sends messages and notifications to Telegram chats, supports onboarding, control checkpoints, and polling for replies.
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., "@mcp-telegram-agentsend a Telegram notification saying 'Hello from AI agent'"
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.
๐ค If you are an AI agent: read AGENTS.md first, then AGENT_SETUP.md.
๐ค MCP Telegram Agent
Send Telegram notifications directly from any MCP-compatible AI agent.
This project is a TypeScript MCP server over stdio, designed to be easy to run locally and easy to distribute via npm + npx.
โจ Features
โ Send a message to Telegram with one MCP tool call
โ Guided onboarding flow: token โ
setup codeverification โ auto config snippetโ Validate Telegram config before sending anything
โ Read recent Telegram updates to discover
chat_idandmessage_idโ Works with
npx mcp-telegram-agentin MCP configโ Token-first setup (safer than hardcoding full API URL)
Related MCP server: tgmcp
๐ฆ Installation
Option A: Use directly with npx (recommended for MCP clients)
No local clone required in production:
npx -y mcp-telegram-agentOption B: Local development
npm install
npm run check
npm run build
npm run dev๐ง Environment Variables
Recommended (default behavior)
BOT_TELEGRAM_TOKEN(required)BOT_TELEGRAM_CHAT_ID(required)
Compatibility aliases
BOT_TELEGRAM_ID(alias for chat ID)BOT_TELEGRAM_URL(legacy fallback, full sendMessage URL)
Optional
BOT_TELEGRAM_TIMEOUT_MS(default:10000)BOT_TELEGRAM_THREAD_ID(for Telegram forum topics)BOT_TELEGRAM_API_BASE_URL(advanced/testing override, default:https://api.telegram.org)
Security note: Prefer
BOT_TELEGRAM_TOKENoverBOT_TELEGRAM_URLso your secret is managed as a single token value.
๐ง MCP Client Configuration
npx setup (recommended)
{
"mcpServers": {
"telegram-agent": {
"command": "npx",
"args": ["-y", "mcp-telegram-agent"],
"env": {
"BOT_TELEGRAM_TOKEN": "123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"BOT_TELEGRAM_CHAT_ID": "123456789"
}
}
}
}Local build setup
{
"mcpServers": {
"telegram-agent": {
"command": "node",
"args": ["/ABSOLUTE/PATH/mcp_telegram_agent/dist/index.js"],
"env": {
"BOT_TELEGRAM_TOKEN": "123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"BOT_TELEGRAM_CHAT_ID": "123456789"
}
}
}
}๐ ๏ธ Exposed MCP Tools
telegram_onboarding_prepare
Prepares onboarding for a fresh token and returns:
a setup code
exact message to send (plain setup code)
MCP config template
if
botTokenis omitted and client supports elicitation, MCP requests secure token input UI
telegram_onboarding_verify
Verifies onboarding by scanning updates for the setup code (plain message, or /start <code>) and then:
discovers
chat_id+message_idbuilds a ready-to-paste MCP config JSON
optionally sends a test message automatically
supports cautious mode with explicit
chat_idconfirmation (requireChatIdConfirmation+expectedChatId)if
botTokenis omitted and client supports elicitation, MCP requests secure token input UI
send_telegram_notification
Send a message to your configured Telegram chat.
Input:
message(string, required)parseMode(HTML|Markdown|MarkdownV2, optional)disableNotification(boolean, optional)
Output example:
Notification sent to Telegram (status 200, message_id=207).
telegram_config_status
Validate env config and show active source (BOT_TELEGRAM_TOKEN vs BOT_TELEGRAM_URL).
telegram_get_updates
Fetch recent updates from Telegram to inspect:
chat_idmessage_idmessage text
username
Useful when you are still wiring your bot and need IDs.
Supports incremental polling:
fromUpdateId(fetch newer updates only)waitSeconds(Telegram long polling timeout)
telegram_send_control_checkpoint
Sends a structured checkpoint message (title + summary + control metadata) so users can reply with control actions.
Typical usage:
agent says "task done"
user replies to that checkpoint with
continue CODE123,stop CODE123, etc.
telegram_poll_control_replies
Reads new updates and filters control replies by:
replyToMessageIdcontrolCodeinstanceIdoptional
actionFilter
This is designed for multi-IDE safety and uses long polling (waitSeconds) to reduce API churn.
telegram_ack_control_reply
Sends an acknowledgement as a direct reply to the user control message, including status and summary.
๐งญ Agent Command (/setup-mcp-telegram-agent)
This repository ships:
AGENTS.mdAGENT_SETUP.md.cursor/commands/setup-mcp-telegram-agent.md
Suggested chat command:
/setup-mcp-telegram-agentExpected flow:
Install/activate MCP first with
npx -y mcp-telegram-agent(no token required yet)Ask for bot token (or direct user to create one at
https://telegram.me/BotFather#)Run
telegram_onboarding_prepareAsk user to send
<code>(plain message) to the botRun
telegram_onboarding_verifyin confirmation mode to list candidatesAsk user to confirm exact
chat_idRun
telegram_onboarding_verifyagain withexpectedChatIdApply generated MCP config
Send one test notification
๐ฒ Telegram Bot Setup (BotFather)
1) Open BotFather
Search for @BotFather in Telegram and open it.
2) Create a new bot
Send:
/newbotThen follow prompts:
Bot display name (example:
My MCP Notifier)Bot username ending in
bot(example:my_mcp_notifier_bot)
BotFather returns your token:
123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxSave it securely as BOT_TELEGRAM_TOKEN.
3) Start a chat with your bot
Open your new bot and click Start (or send any message).
4) Get your chat_id and message_id
Call:
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates"Then look for:
message.chat.idโ this is yourchat_idmessage.message_idโ this is the message ID
Visual guide:
๐งช Quick Test
Use your real values:
curl -sS -X POST "https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id":"<YOUR_CHAT_ID>","text":"โ
MCP test message"}'๐ Publish to npm
Publishing is automated with GitHub Actions + semantic-release.
After the first release, users can run:
npx -y mcp-telegram-agentโ๏ธ GitHub Actions Auto Publish
This repository includes:
.github/workflows/release.yml.releaserc.json
Behavior:
Runs on each push to
mainUses Conventional Commits to decide release type (
fix= patch,feat= minor,BREAKING CHANGE= major)Creates GitHub release + publishes to npm
Required GitHub secret:
NPM_TOKEN(npm automation token with publish permissions)
Required commit style examples:
fix: first automated release setup
feat: add support for telegram topicsFirst release target (v0.0.1):
Create and push baseline tag
v0.0.0once.Push a
fix:commit tomain.Action will publish
v0.0.1.
Commands:
git tag v0.0.0
git push origin v0.0.0
git commit --allow-empty -m "fix: bootstrap first semantic release"
git push origin main๐งฉ GitHub Repository Setup
If this is a fresh local directory:
git init
git add .
git commit -m "Initial MCP telegram agent server"
git branch -M main
git remote add origin https://github.com/tecnomanu/mcp-telegram-agent.git
git push -u origin mainโ ๏ธ Troubleshooting
chat not found:Ensure you started chat with the bot first.
Re-check
BOT_TELEGRAM_CHAT_IDfromgetUpdates.
401 Unauthorized:Token is invalid, regenerated, or malformed.
No updates in
getUpdates:Send a message to your bot, then retry.
๐ License
MIT
Available Tools
6 toolssend_telegram_notificationA
Send a notification to the configured Telegram chat. Supports: plain text, photo, audio, or document โ with an optional caption. You can send text only, media only, or media + caption together. For media: provide a media object with type and either a public url or base64Data.
| Name | Required | Description | Default |
|---|---|---|---|
| media | No | Attach a photo, audio file, or document to the message. Supply either a public url OR base64Data (not both). | |
| message | No | Text body (or caption when media is attached). Required if no media is provided. | |
| parseMode | No | ||
| disableNotification | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry transparency on its own. It usefully clarifies that media requires either url or base64Data and that text can serve as a caption, but it doesn't disclose error handling, delivery guarantees, or return behavior, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences, with the core purpose in the first sentence. Every sentence adds information about capabilities or constraints, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers what content can be sent and the media constraint, but it omits any mention of parseMode, disableNotification, or the tool's return value. Given the tool has a nested media object and no output schema, these omissions leave it less complete than ideal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the media subfields and the message-as-caption behavior. The description adds the combination rules (text only, media only, or media+caption) but doesn't clarify parseMode or disableNotification, which remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Send a notification to the configured Telegram chat,' clearly identifying the action and target. It distinguishes itself from siblings like telegram_send_and_wait_reply by emphasizing 'notification' rather than interactive reply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description outlines supported content types and the media/text combinations, providing clear context for when to use it. However, it doesn't explicitly reference sibling tools or state when not to use it (e.g., when a reply is needed), leaving some usage guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_config_statusA
Check whether Telegram configuration is valid for this MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. The description only says 'check', which implies a read-only operation, but it does not disclose what happens if the configuration is invalid, whether errors are thrown, or what the output format is. This is insufficient for an agent to understand side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. It is front-loaded and contains no filler. For a simple zero-parameter tool, this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what the tool returns. It only states 'check whether...valid', leaving the return format unstated. It also does not mention any preconditions or what 'valid' means. This leaves a significant gap for an agent trying to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics because there are none. It correctly does not add any irrelevant parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: checking Telegram configuration validity for the MCP server. The verb 'check' is specific and the resource ('Telegram configuration') is unambiguous. This purpose is distinct from sibling tools like sending notifications or onboarding, so there is no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear usage context: use this tool when you need to verify that Telegram configuration is valid. While it does not explicitly mention alternatives or exclusions, the tool's purpose is clear enough that an agent would know when to invoke it. However, it lacks explicit guidance on when not to use it or which sibling to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_edit_messageA
Edit a previously sent Telegram message by its message_id. Use to replace the ACK with a final response.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | New message text | |
| messageId | Yes | ID of the message to edit | |
| parseMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing mutation behavior. It merely says 'edit' without stating that the original message is overwritten, that a 'Edited' marker appears, or any permissions/error conditions. This lacks transparency for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the action, and contains no filler. Every word contributes to purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but completeness is limited by missing behavioral transparency, no return value/error details, and the undocumented parseMode parameter. It covers the core purpose and usage, but an agent is left without context for edge cases or expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (text and messageId have descriptions, but parseMode does not). The tool description does not add meaning beyond repeating 'message_id' and provides no clarification for parseMode, leaving a gap for one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Edit') and resource ('previously sent Telegram message') with the method ('by its message_id'). This clearly distinguishes it from sibling tools that send new messages or handle onboarding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage context ('Use to replace the ACK with a final response') that implies this tool is for editing after an initial acknowledgment. It does not explicitly name alternatives, but the context is sufficient for an agent to decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_onboarding_prepareC
Prepare onboarding instructions to link a Telegram bot and auto-generate MCP config.
| Name | Required | Description | Default |
|---|---|---|---|
| botToken | No | ||
| setupCode | No | ||
| serverName | No | telegram-agent | |
| packageName | No | mcp-telegram-agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It mentions the tool prepares instructions and auto-generates config but doesn't say whether this is a read/write operation, what inputs it consumes, what outputs the agent can expect, or any side effects. This is insufficient for a setup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It is appropriately sized for the purpose and front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this tool has 4 parameters, no output schema, and no annotations, the description is far too minimal. It fails to explain return values, parameter usage, or usage context, making it incomplete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the four parameters (botToken, setupCode, serverName, packageName). It adds no meaning beyond the schema's raw property names, so the agent gets no help in understanding what each parameter should contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool prepares onboarding instructions to link a Telegram bot and auto-generate MCP config. It names a specific verb and resource, and the outcome is clear. It does not explicitly contrast with siblings like telegram_onboarding_verify, but the distinct action of 'preparing' vs 'verifying' is lightly implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the sibling tools. No prerequisites, sequencing, or alternatives are mentioned, leaving the agent without context on when this step is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_onboarding_verifyB
Verify setup code in Telegram updates, require explicit chat_id confirmation, generate ready MCP config, and optionally send a test message.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| botToken | No | ||
| setupCode | Yes | ||
| serverName | No | telegram-agent | |
| packageName | No | mcp-telegram-agent | |
| testMessage | No | ||
| expectedChatId | No | ||
| sendTestMessage | No | ||
| requireChatIdConfirmation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the safety/side-effect burden. It does disclose that chat_id confirmation is required and that a test message may be sent, which is useful. But it omits whether existing configs are overwritten, whether the setup code is consumed, or what happens on failed verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with front-loaded verb and a concise list of outcomes. Every clause adds information, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-step tool with 9 parameters and no output schema. The description lacks prerequisites, return values, and details of the confirmation flow, so an agent cannot fully anticipate side effects or expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps several parameters indirectly (setupCode, chat_id confirmation, test message, MCP config) but leaves 'limit' unexplained and never explicitly ties botToken/serverName/packageName to their roles. Given 0% schema description coverage, the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific action 'Verify setup code in Telegram updates' and lists concrete outputs (MCP config, test message). It is clear about the tool's resource and outcome, though it does not explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the verification/finalization step after receiving a setup code, and it mentions key sub-steps. However, it never states when to use this tool versus telegram_onboarding_prepare or send_telegram_notification, nor any preconditions like needing a bot token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_send_and_wait_replyA
Send a message to Telegram and block until a reply arrives in the same chat. Supports: plain text, photo, audio, or document โ with an optional caption. You can send text only, media only, or media + caption together. For media: provide a media object with type and either a public url or base64Data. Sends an instant ACK back to Telegram when a reply is received. Returns reply text + ack_message_id so you can later edit the ACK with your final response.
| Name | Required | Description | Default |
|---|---|---|---|
| media | No | Attach a photo, audio file, or document to the message. Supply either a public url OR base64Data (not both). | |
| ackText | No | ACK message sent immediately upon receiving a reply | โ Recibido, procesando... |
| message | No | Message text to send (or caption when media is attached). Required if no media. | |
| parseMode | No | ||
| waitTimeoutSeconds | No | Max seconds to wait for a reply (default 18000 = 5h) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the blocking behavior, the instant ACK mechanism, and that it returns reply text plus ack_message_id for later editing. It does not cover timeout/error behavior, but the schema documents waitTimeoutSeconds partially, and the key behavioral traits are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compressed into a few sentences, each providing unique value: purpose, media options, input constraints, ACK behavior, and return value. It is front-loaded with the main purpose. Slightly long but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested media object, blocking behavior, ACK, no output schema), the description explains the return value and when it returns. It does not explicitly mention the timeout outcome but the schema covers waitTimeoutSeconds. Overall, it provides sufficient context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3. The description adds meaning beyond the schema by explaining how to combine text and media ('text only, media only, or media + caption together') and clarifying that 'message' serves as a caption when media is attached. It also emphasizes the 'either url or base64Data' constraint for the media object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb+resource: 'Send a message to Telegram and block until a reply arrives in the same chat.' This distinguishes it from siblings like send_telegram_notification (which presumably does not wait) and telegram_edit_message. It also enumerates supported content types (text, photo, audio, document), making the scope precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('block until a reply arrives') and that it supports text/media combinations, but it does not explicitly mention when not to use it or name alternatives like send_telegram_notification. It provides clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two sending tools (send_telegram_notification and telegram_send_and_wait_reply) overlap in message types and could be confused, though the blocking/waiting behavior distinguishes them. Other tools are clearly distinct.
Most tools follow a 'telegram_' prefix convention, but send_telegram_notification breaks the pattern by placing 'telegram' at the end. Additionally, telegram_config_status is a noun phrase rather than a verb, mixing command and state check styles.
With 6 tools, the set is well-scoped for a Telegram agent, covering onboarding, sending, waiting for replies, and editing messages without unnecessary redundancy.
The main workflow is supported: onboarding verification, sending messages, and replying via edit. A notable gap is the lack of a tool to handle incoming Telegram updates initiated by the user, but the core lifecycle is covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
Unified inbox MCP for WhatsApp, Telegram, Email, voice โ read/send messages, search, AI agents.
Phone, SMS & email for AI agents โ one remote MCP endpoint, OAuth login, zero install.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to send messages and interact with Telegram chats through MCP tools, with support for user management, conversation history, and bot command handling.1
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Telegram accounts through MCP, supporting messaging, contacts, groups, media, and admin functions.4Apache 2.0
- AlicenseBqualityDmaintenanceEnables AI agents to send notifications and media (text, photos, documents, videos) via a Telegram bot.4493Do What The F*ck You Want To Public
- AlicenseAqualityDmaintenanceEnables AI assistants to publish, edit, search, and manage messages in Telegram channels via a set of MCP tools.8MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/tecnomanu/mcp-telegram-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server