Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Send-only Telegram notifications to one fixed chat. No polling, no recipient override, 2 tools.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, TELEGRAM_NOTIFY_FILES_DIRValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"telegram-notify": {
"command": "npx",
"args": [
"-y",
"@yybd/telegram-notify-mcp"
],
"env": {
"TELEGRAM_BOT_TOKEN": "your-value",
"TELEGRAM_CHAT_ID": "your-value",
"TELEGRAM_NOTIFY_FILES_DIR": "your-value"
}
}
}
}Run this in your terminal
claude mcp add telegram-notify --env TELEGRAM_BOT_TOKEN=your-value --env TELEGRAM_CHAT_ID=your-value --env TELEGRAM_NOTIFY_FILES_DIR=your-value -- npx -y @yybd/telegram-notify-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"telegram-notify": {
"command": "npx",
"args": [
"-y",
"@yybd/telegram-notify-mcp"
],
"env": {
"TELEGRAM_BOT_TOKEN": "your-value",
"TELEGRAM_CHAT_ID": "your-value",
"TELEGRAM_NOTIFY_FILES_DIR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"telegram-notify": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@yybd/telegram-notify-mcp"
],
"env": {
"TELEGRAM_BOT_TOKEN": "your-value",
"TELEGRAM_CHAT_ID": "your-value",
"TELEGRAM_NOTIFY_FILES_DIR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
TELEGRAM_NOTIFY_FILES_DIR envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account yybd, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
*English · עברית*
A small, send-only MCP server that lets Claude (or any MCP client) send Telegram notifications to you: a scheduled job finished, a long build failed, a reminder came due.
sendMessage, sendDocument and getMe, and never getUpdates. The same bot can keep serving another tool that polls it (for example the Claude Code Telegram channel plugin) with no 409 Conflict, and nothing expires after 24 hours.| Tool | What it does |
|---|---|
notify | Sends text to your chat. Plain text by default; format: "markdown" turns **bold**, _italic_, `code` , code blocks, [links](https://…) and # headings into Telegram HTML, with everything else escaped. Over 4096 characters it is split into several messages. silent: true delivers without a sound |
notify_file | Sends a file (up to 50 MB) with an optional caption, only from one folder you allow (TELEGRAM_NOTIFY_FILES_DIR). Paths are resolved to their real location first, so .. and symlinks cannot reach outside it. Without that variable every call is refused |
The tools are one-way: replies you type in Telegram never come back to the model.
1. A bot. In Telegram, open @BotFather, send /newbot, and copy the token. An existing bot works too, even one another tool already polls.
2. Your chat id. Open a chat with your bot and press Start (a bot may only message people who started it). Then get your numeric id from a bot such as @userinfobot. A group's id is negative; a channel can be given as @channelname once the bot is an admin there.
3. Save it, either way:
npx -y @yybd/telegram-notify-mcp setup
This asks for the token (hidden) and the chat id, checks the token, writes ~/.telegram-notify/config.json with 600 permissions and sends a test message. Add --files-dir to allow notify_file. TELEGRAM_NOTIFY_HOME moves the folder.
Or pass environment variables to the server, which override the file:
| Variable | |
|---|---|
TELEGRAM_BOT_TOKEN | required |
TELEGRAM_CHAT_ID | required; the only recipient |
TELEGRAM_NOTIFY_FILES_DIR | optional; the only folder notify_file may read. Unset = file sending off |
Check it any time:
npx -y @yybd/telegram-notify-mcp test
Recommended: run setup first (see above), then add the server with no secrets on the command line:
claude mcp add telegram-notify -s user -- npx -y @yybd/telegram-notify-mcp
The token then stays in ~/.telegram-notify/config.json (mode 600) and out of ~/.claude.json.
Or with environment variables instead of setup. Replace the example values with yours and keep the quotes. Don't type angle brackets such as : the shell reads < as "read from a file" and the command fails with no such file or directory.
claude mcp add telegram-notify -s user -e TELEGRAM_BOT_TOKEN="123456789:AAExampleTokenFromBotFather" -e TELEGRAM_CHAT_ID="987654321" -- npx -y @yybd/telegram-notify-mcp
This stores the token in ~/.claude.json.
New sessions pick up the server; one that is already open doesn't.
To send without a permission prompt each time, allow the tool in ~/.claude/settings.json: "permissions": { "allow": ["mcp__telegram-notify__notify"] }. That is safe because of the fixed recipient: the worst a confused model can do is message you.
One click (recommended): download telegram-notify- .mcpb from the latest release and double-click it, or drag it onto Settings → Extensions in Claude Desktop. Desktop asks for the bot token (stored as a secret), the chat id and, optionally, the folder for files, then installs it. Nothing else is needed: Desktop runs the extension with its own Node.js, and you don't need setup.
Or by hand: in ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "telegram-notify": { "command": "npx", "args": ["-y", "@yybd/telegram-notify-mcp"] } } }
Add "env": { "TELEGRAM_BOT_TOKEN": "…", "TELEGRAM_CHAT_ID": "…" } if you didn't run setup. Then restart Claude Desktop. If it can't find npx, use its full path (which npx).
Checked on 2026-11-07 against each project's source code, with star counts from that day.
| Option | Recipient | Reads updates (getUpdates) | Shares a bot with a poller | Tools | Files |
|---|---|---|---|---|---|
| telegram-notify (this) | fixed in config; no tool parameter | never | yes | 2 | one allowed folder, symlink-safe; off by default |
| ParthJadhav/telegram-notify-mcp (7 ⭐) | found by username in getUpdates | yes, on every process start | no | 3 | any local path |
| aahl/mcp-notify (29 ⭐) | TELEGRAM_DEFAULT_CHAT, but every Telegram tool takes a chat_id the model can override | no | yes | 20+ (Telegram, WeCom, Home Assistant, others) | by URL |
| antonio-castellon/mcp-telegram-bridge (0 ⭐) | chat_id per call | yes, a telegram_get_updates tool | no | 6 | no |
| Official Claude channel plugins (Telegram) | whoever pairs | yes, continuously | it *is* the poller | — | yes |
Why that matters:
getUpdates each time it starts. Telegram keeps updates for only 24 hours, so a day after you last messaged the bot, it can no longer find you. Its getUpdates call also fails with 409 Conflict while another process polls the same bot.chat_id, and it registers about twenty tools across many platforms.What telegram-notify gives you: a fixed recipient, no polling, one bot shared with your other tools, two tools, and file sending confined to one folder. What it deliberately doesn't do: receive messages, ask you questions and wait for answers, or send to anyone else.
config.json is written with 600 permissions.api.telegram.org only.npm test
The tests run offline, with fetch mocked. They check that getUpdates is never called, that a smuggled chat_id is ignored, that the file sandbox rejects .., absolute paths and symlinks, that the token is redacted from errors, and that long text is split.
./scripts/pack-mcpb.sh builds the Claude Desktop extension, telegram-notify- .mcpb, from manifest.json, dist/ and the production dependencies.
Layout:
src/config.ts — environment and config filesrc/telegram.ts — Bot API calls, Markdown → HTML, splitting, the file sandboxsrc/server.ts — the two toolssrc/cli.ts — setup and testsrc/main.ts — the command the package installsMIT