Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者による説明(英語の原文)
Send-only Telegram notifications to one fixed chat. No polling, no recipient override, 2 tools.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, TELEGRAM_NOTIFY_FILES_DIR「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、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"
}
}
}
}ターミナルでこれを実行します
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-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.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"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"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"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
TELEGRAM_NOTIFY_FILES_DIR envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント yybd で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.1)がレジストリに届いたのは今日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
*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