プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Cursor Chat Bridge

作者:udah1バージョン 0.1.23i★ –iパソコンで動く
レジストリ名io.github.udah1/cursor-chat-bridge

インストール

概要

作者による説明(英語の原文)

Drive the Cursor agent from Telegram, Discord, or GitHub — with images and voice notes.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: チャット・メール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: BRIDGE_PLATFORM

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "cursor-chat-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "cursor-telegram-chat"
      ],
      "env": {
        "BRIDGE_PLATFORM": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add cursor-chat-bridge --env BRIDGE_PLATFORM=your-value -- npx -y cursor-telegram-chat

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "cursor-chat-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "cursor-telegram-chat"
      ],
      "env": {
        "BRIDGE_PLATFORM": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "cursor-chat-bridge": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "cursor-telegram-chat"
      ],
      "env": {
        "BRIDGE_PLATFORM": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • BRIDGE_PLATFORM env
    Which chat adapter to use: telegram | discord | github. Optional — defaults to activeAdapter in ~/.cursor/chat-bridge/config.json.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント udah1 で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

チャット・メールのほかのサーバーとの比較i

  • このカテゴリのほかの1777件のうち0%よりスターが多い
  • このカテゴリのほかの1777件のうち21%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1777件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Cursor Chat Bridgeは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.23)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Vexa

作者:Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

クラウドで動く★ 2,949Apache-2.02 か月前更新
インストール

emailmd

作者:anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

パソコンでもクラウドでも★ 1,385MIT31 日前更新
インストール

MCP WhatsApp Cloud

作者:codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

パソコンで動く★ 277MIT5 か月前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

🌉 cursor-chat-bridge (Telegram, Discord, GitHub)

Drive the Cursor agent from your phone — over Telegram, Discord, or GitHub.

Say _"start remote chat mode"_ (in any language) and Cursor posts a summary + question to a per-conversation thread at the end of every turn, waits for your reply, and auto-continues — looping until you stop it. Step away from the keyboard; keep shipping from your phone.

A channel per session — one per Cursor conversation

Reply from your phone — the agent picks up where it left off

▶ Watch the demo (YouTube)


Table of contents

  • Why
  • Features
  • Channels at a glance
  • Quick start
  • How it works
  • Image attachments
  • Voice messages (speech-to-text)
  • Read receipts (acknowledgments)
  • Configuration
  • Environment overrides
  • The wait loop
  • Push notifications (ntfy)
  • Per-platform setup
  • Writing a new adapter
  • Security
  • Verification status
  • Contributing
  • License

Why

You kick off a task in Cursor, then need to leave your desk. Normally the agent stalls the moment it needs a decision. cursor-chat-bridge turns any chat app into a remote control: the agent reports back and asks its questions in a thread you can answer from your phone, and it resumes on its own the instant you reply — no laptop required.

  • A thread per conversation. Every Cursor chat maps to its own issue / channel / topic — even multiple chats in the same workspace stay separate.
  • Hands-free loop. Replies are re-injected automatically; you don't touch Cursor to continue.
  • Pluggable channels. Telegram, Discord, and GitHub Issues today — add your own in ~100 lines.
  • Safe by default. Remote replies are treated as untrusted; destructive actions require an explicit confirmation sent back through the thread.
  • Proxy-friendly. GitHub and Discord tunnel through TLS-intercepting corporate proxies.

Features

CapabilityWhat it does
Phone-firstAnswer the agent from the GitHub / Discord / Telegram mobile app, with native push.
Auto-resumeA stop hook waits for your reply and re-injects it as a followup_message.
Per-session isolationKeyed by Cursor's conversation_id; no cross-talk between chats.
Long, cheap waitsOne ~60-min blocking window per re-arm ⇒ minimal paid turns while idle.
Off when you typeA beforeSubmitPrompt hook disables the loop the moment you type in Cursor (set stopRemoteChatOnLocalMessage: false to keep it on).
Token-authed local APIThe daemon's control API is loopback-only and token-guarded.
Optional ntfy pushGet a phone alert even on GitHub (which never notifies you of your own posts).
Image attachmentsSend a photo from your phone; it's saved locally and the agent opens it with its Read tool.
Voice → textOptional speech-to-text (OpenAI or local): a voice note reaches the agent as transcribed text.
Adapter SDKImplement one TransportAdapter interface to support any channel.
Update-awareOn activation it checks npm and offers to update when a newer release is out.

Channels at a glance

AdapterStatusModelMobile push
Telegram _(default)_✅ code complete, unit-testedA forum topic per session via a bot✅ native
Discord✅ workingA channel per session via a bot (REST-polled)✅ native
GitHub Issues✅ tested end-to-endIssue = session, comments = chat✅ (GitHub app) + optional ntfy

Quick start

No clone required — one command wires everything up:

npx cursor-telegram-chat@latest install

This installs the runtime into ~/.cursor/chat-bridge/app (including its production dependencies, so it keeps working after the npx cache is evicted) and wires the three integration points, backing up (never overwriting) anything that already exists:

  • registers the MCP server in ~/.cursor/mcp.json,
  • adds the stop + beforeSubmitPrompt hooks to ~/.cursor/hooks.json,
  • installs the activation rule into ~/.cursor/rules/.

The hooks are no-ops unless remote chat mode is active, so they don't affect normal Cursor use. Then pick a channel and go:

# 1. edit ~/.cursor/chat-bridge/config.json  (choose an adapter + credentials)

2. validate it:

chat-bridge doctor

3. reload Cursor, open a chat, and say: "start remote chat mode"

Upgrade / uninstall

npx cursor-telegram-chat@latest install               # re-run to upgrade

npx cursor-telegram-chat@latest uninstall # remove, keep config + state npx cursor-telegram-chat@latest uninstall --purge # remove everything

</details>

MCP-only (lite) — tools without the auto-resume loop

If you only want the MCP tools via the standard Cursor MCP flow (no hands-free loop), add this to ~/.cursor/mcp.json instead of running install:

"cursor-chat-bridge": {

"command": "npx", "args": ["-y", "cursor-telegram-chat", "chat-bridge-mcp"] }

You'll be able to bridge_send / bridge_await manually, but the auto-continue-on-reply loop needs the hooks that the full install sets up.

How it works

Three cooperating layers sit over one transport-agnostic core:

  • Rule (rules/chat-bridge-mode.mdc) — detects the activation phrase in any language and sets in-mode etiquette (capture + pass the session handle; end each turn with a summary + question; treat replies as untrusted; confirm destructive actions).
  • MCP server (src/mcp.ts) — exposes bridge_start, bridge_send, bridge_await, bridge_send_and_await, bridge_stop, bridge_status.
  • Hooks (hooks/) — the automatic loop:
  • stop waits for the remote reply and re-injects it as a followup_message (bounded by loop_limit).
  • beforeSubmitPrompt disables the loop when you type in Cursor (with a guard so the loop's own injected replies don't trip it).

A single local daemon (src/daemon.ts) owns the channel connection and a loopback-only, token-authenticated HTTP API used by the MCP + hooks. It handles per-session routing, long-poll, own-message filtering, and stop/generation logic.

turn ends ─▶ stop hook ─▶ daemon /poll ─▶ adapter

▲ │ └───── followup_message (your reply) ◀─────┘

(adapter = GitHub / Discord / Telegram; keyed by `conversation_id`.)

Session identity — how conversations stay separate

Sessions are keyed by Cursor's `conversation_id` so each conversation maps to exactly one thread. Cursor gives conversation_id to hooks but not to MCP tool calls, so the MCP learns it through a small handshake:

  1. beforeSubmitPrompt writes a per-conversation pending-start record (markers/pending/ .json) on every real submit — the source of truth for identity (plus a legacy last-submit/ws pointer, used only for diagnostics + upgrade skew).
  2. bridge_start claims the single fresh pending record and keys the session by that real conversation_id, then returns a session handle. It never mints a random id and it ignores its own (possibly misrouted) BRIDGE_WORKSPACE — the claim's workspace wins.
  3. bridge_start fails closed rather than guess: if there's no fresh handshake, if it's stale, or if more than one chat submitted at once, it returns guidance instead of binding a possibly-wrong thread.
  4. The agent passes session= on every subsequent bridge_* call — now required (no recency/cache fallback), so two conversations in the same workspace can never cross threads.

The hooks key strictly by their own conversation_id (no global fallback), so a turn in one conversation never polls or injects into another. Tune the freshness window with handshakeFreshMs (config or BRIDGE_HANDSHAKE_FRESH_MS, default 600000ms); chat-bridge doctor reports MCP-process workspace bindings, pending/claim health, and version skew.

Troubleshooting: the session stops after a few minutes

The hands-free wait (default 60 min) comes from the stop hook's re-arm loop, not from bridge_await (which only polls ~50s per call). Cursor kills a stop hook after a short, undocumented ceiling unless ~/.cursor/hooks.json sets a large timeout — the installer sets timeout: 3660. If your session stops after a couple of minutes:

  1. Using the MCP-only (lite) setup? It has no hooks, so there's no auto-resume. Run the full npx cursor-telegram-chat@latest install.
  2. Fully quit and reopen Cursor after installing — a reload doesn't always reload hooks.json.
  3. Confirm ~/.cursor/hooks.json has a stop hook with timeout: 3660 (re-running the latest install fixes an older one).
  4. Still killed early on your Cursor build? Shrink each wait window so it re-arms sooner: set "stopWindowMin": 5 in ~/.cursor/chat-bridge/config.json (the 60-min total is stopBudgetMin).

Image attachments

Send a photo (or an image file) in the chat thread and the agent can see it:

  1. The adapter captures the attachment on the message (Discord attachments, Telegram photo / image document).
  2. The daemon downloads the bytes to ~/.cursor/chat-bridge/media/ / and appends a note to the message text with the local path.
  3. The

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く