It hears every new private message
One call waits up to 55 seconds and takes up to 50 messages. Messages that land while your agent is closed are kept, and its cursor picks them up next time. No server to run.
wait_for_messages
Telegram MCP server, early access
telemcp logs in to your own Telegram account, not a bot. Your agent in Claude, Cursor, Codex or OpenClaw reads and answers your private chats as you.
Your own account, not a bot. Nothing to host. End the session anytime in Telegram.
Invite only for now; prices are not published yet.
claude mcp add --transport http telemcp "$TELEMCP_URL" --header "X-API-Key: $TELEMCP_API_KEY"
wait_for_messagessend_messageget_messageLena wrote at 09:41. A minute later she had her answer, sent from your own Telegram account by the agent you already use, and she read it.
Works with
Three jobs, from your own account: hear every new message, answer it with the right file, and follow up without nagging.
One call waits up to 55 seconds and takes up to 50 messages. Messages that land while your agent is closed are kept, and its cursor picks them up next time. No server to run.
wait_for_messages
Up to 4,096 characters plus one photo, video, audio file or document, in the chat they started. It writes to people already in your contacts.
send_message
It sees whether each message was sent, delivered or read, or why it failed. After 3 messages to someone who has not replied, sends to them hold until they answer.
get_message
One key, one config, one sentence to your agent. No bot to create, nothing to host.
Your invite carries your API key and the server URL. Put them in environment variables so the key never sits in a file you commit.
Add the server to your MCP client. It speaks Streamable HTTP and takes the key in the X-API-Key header.
“Connect my Telegram account +31…”. Telegram sends a login code to your Telegram app; give it to your agent. Prefer a QR code? Scan it under Settings, Devices, Link Desktop Device.
“Tell Marco the invoice went out.” It goes out from your account, to someone already in your contacts.
export TELEMCP_API_KEY="paste your key here"
export TELEMCP_URL="paste the server URL here"
claude mcp add --transport http telemcp "$TELEMCP_URL" \
--header "X-API-Key: $TELEMCP_API_KEY"Add --scope user to have it in every project. Then type /mcp in Claude Code to see the tools.
{
"mcpServers": {
"telemcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "<server URL from your invite>",
"--header", "X-API-Key:${TELEMCP_API_KEY}"],
"env": { "TELEMCP_API_KEY": "paste your key here" }
}
}
}Claude desktop reaches the server through the mcp-remote bridge, which needs Node.js. Quit and reopen Claude after saving.
{
"mcpServers": {
"telemcp": {
"url": "<server URL from your invite>",
"headers": { "X-API-Key": "${env:TELEMCP_API_KEY}" }
}
}
}Restart Cursor and turn the tools on under its MCP settings.
codex mcp add telemcp --url "$TELEMCP_URL" \
--bearer-token-env-var TELEMCP_API_KEYWorks in the Codex CLI, the IDE extension and the app.
{
mcp: { servers: { telemcp: {
url: "<server URL from your invite>",
transport: "streamable-http",
headers: { "X-API-Key": "${TELEMCP_API_KEY}" },
} } },
}Or add it in the Control UI under Settings, MCP. Check it with openclaw mcp doctor telemcp --probe. Use OpenClaw 2026.5.12 or later.
ChatGPT connectors cannot send an API key header yet, so telemcp does not work in ChatGPT today. Sign in for ChatGPT is planned. Any other MCP client that can send a header over Streamable HTTP works now.
The code goes to your own agent, which passes it on to log in, the same way you would type it into a new Telegram app. End the session anytime under Settings, Devices.
Inside Claude Code: log in, send the first message, check delivery. Every tool answer starts with its HTTP status.
Invite only for now. Your API key comes with the invite; prices are not published yet.
A Telegram bot is a separate account that people have to find and start before it can talk to them. telemcp logs in as you, like the Telegram app on a new device, so your agent works inside the chats you already have.
You talk to your agent in plain words; it picks these itself. Tools that take a request body get it in one body argument. Type /mcp in Claude Code to see the full list.
connect_telegramphone_number, mode code or qrsubmit_telegram_code
submit_telegram_passwordthe code Telegram sent; your password if two step verification is onlist_accountsnothingwait_for_messagestimeout_s up to 55, cursorsend_messageto.phone or to.contact_id, text, media_urlget_messagethe message idget_usagenothingdisconnect_telegramthe phone numbercreate_webhookurl, subscribed_to, nameGET /messagesREST only, newest first, up to 100 per call# wait for the next Telegram message
curl "$TELEMCP_API_URL/messages/wait?timeout_s=25" \
-H "X-API-Key: $TELEMCP_API_KEY"
# HTTP 200, nothing new yet
{
"messages": [],
"cursor": "2026-10-17T03:52:22.191Z|"
}
Pass the cursor back on the next call and nothing is missed or repeated. The same wait is what your agent runs through MCP.
Webhooks post to a public https address of yours, signed with HMAC SHA‑256 in X-Webhook-Signature. Send a test event, watch delivery health, re‑enable after a pause.
telemcp never writes or sends a message on its own. Every word comes from the agent you set up, with the instructions you gave it.
Nobody can promise an account will never be restricted. Telegram has its own spam rules for user accounts, and it acts on accounts that message strangers. Answering people who write to you is the safe way to use it.
So the limits sit on the server, apply to every account, and no setting turns them off.
| Connected Telegram accounts | 1 |
|---|---|
| Messages sent per day | 50 |
| New contacts per day | 10 |
| Messages to one person who has not replied | 3, then it waits |
| Same first message to more than 5 people within 30 minutes | Sending stops for review |
| Someone replies STOP | No more messages to them |
| Telegram asks the account to slow down | Sends pause |
| Telegram flags the account for messaging strangers | Sending stops |
Source: the server side checks every send passes in early access. A day is one UTC day; a refused send says when to retry.
Short answers. The rest is in the setup above.
A Telegram MCP server gives an AI agent tools to read and send Telegram messages through the Model Context Protocol. telemcp is one: your agent can wait for new messages, reply or write to a contact, check whether a message was delivered or read, and see how many sends it has left today. Your agent decides what to say; telemcp never writes or sends a message on its own.
Yes. telemcp logs in to your existing Telegram account, like the Telegram app on a new device. It does not use the Bot API, so your agent reads and answers your private chats as you. You log in with the code Telegram sends to your Telegram app, or by scanning a QR code under Settings, Devices, Link Desktop Device. You can end the session there at any time.
Prices are not published yet. Early access is invite only, and your API key comes with the invite. Leave your email on this page to get one when a spot opens.
In Claude Code, run one command with the server URL and API key from your invite: claude mcp add --transport http telemcp "$TELEMCP_URL" --header "X-API-Key: $TELEMCP_API_KEY". Then ask Claude to connect your Telegram account with your phone number and tell it the login code Telegram sends you. Claude desktop works through the mcp-remote bridge in claude_desktop_config.json, which needs Node.js.
Not yet. Your agent can message people who are already a contact on your account, for example someone who wrote to you. Starting a chat with a new person by username is refused for now. Answering people who write to you is also the safe way to use a Telegram account with an agent.
No. telemcp works in your private chats only. Groups and channels are not supported.
Cursor works: add the server to ~/.cursor/mcp.json with its URL and an X-API-Key header. Claude Code, Claude desktop, Codex and OpenClaw work too, as does any MCP client that can send a header over Streamable HTTP. ChatGPT connectors do not work yet, because they cannot send a key header; sign in is planned.
No. Your agent calls wait_for_messages, which stays open for up to 55 seconds and answers the moment a message arrives, up to 50 at a time. Messages that arrive while the agent is closed are stored, and an agent that kept its cursor picks them up on its next call. Webhooks are there if you want events pushed to your own server: 9 event types, signed with HMAC SHA-256.
Early access is invite only. Leave your email and we write to you when a spot opens; your API key comes with the invite. Prices are not published yet.
Your own account, not a bot. Nothing to host. End the session anytime in Telegram.