tt-agent-bridge
TT Agent Bridge
外部 CLI agent(ZCode / Claude Code など)が MCP 経由で TauriTavern を直接操作できるようにする: 実行時データ(チャット / 変数 / ワールドブック発動 / ログ / LLM リクエスト原文 / iframe ステータスバーの実行時)の読み取り、操作の実行(STScript / メッセージ送信 / 変数書き込み / キャラクター切替 / ワールドブック項目ジャンプ)、およびメインドキュメントまたはメッセージ iframe 内で任意の JS を実行して Tavern カードを診断する。
アーキテクチャ
外部 Agent(ZCode / Claude Code) dev 脚本(tteval / ttdiag / regress)
↕ MCP over stdio ↕ agent 角色直连(ws + JSON)
bridge server(Node,仅监听 127.0.0.1,token 鉴权,支持常驻 daemon)
↕ WebSocket(扩展/agent 主动连出,多 agent 并存)
TauriTavern 扩展「TT Agent Bridge」
├─→ window.__TAURITAVERN__.api 检测:日志 / 世界书激活 / LLM 请求 / 聊天搜索 / console 捕获
└─→ SillyTavern.getContext() 操作:STScript / 变量 / 消息 / 事件プロトコル契約の単一情報源:
src/core/protocol.ts(bridge が直接 import する。コピーしないこと)。拡張機能は公開された境界のみを使用する(TT ホスト ABI + 上流の
getContext()公開メンバー)。内部モジュールには触れない。bind-or-attach: MCP server 起動時にポート上に同一 token の生存 hub(daemon)が既にある場合、自動的に agent としてマウントする——複数 MCP クライアントが同時にいてもポート衝突は発生しない。
Related MCP server: macOS Companion MCP Server
拡張機能のインストール(TauriTavern 内)
TauriTavern を開く → 上部の「拡張機能」ドロワー → 拡張機能の管理 → 拡張機能のインストール
本リポジトリの Git アドレスを入力する(TauriTavern は匿名 https Git remote のみ受け付ける)。例:
https://github.com/<你的用户名>/tt-agent-bridge.gitインストール後、右下隅に「Bridge」ステータスバッジが表示される(hello が受け付けられると緑色に変わる)。
手動でディレクトリを配置(
data/extensions/third-party/tt-agent-bridge/)してもよいが、今後の更新のしやすさから Git インストールを推奨する。 アップグレード注意: プロトコルバージョンはリポジトリとともに進化する(現在 v2)。拡張機能と bridge は同一リポジトリで同時リリースされる——新しいリポジトリを取得したら TT 内の拡張機能も同時に更新する必要がある(Git 更新、またはdist/+manifest.jsonを同期してページをリロード)。そうしないと拡張機能は 4003 で拒否される(バッジが赤くなり、周期的に再試行する)。
起動
推奨: 常駐 daemon(拡張機能が長接続を維持し、スクリプト / MCP は秒単位でマウントされる。毎回拡張機能の再接続を待つ必要がない):
cd bridge
npm install
npm run daemon -- --port 18789 --token <你的token> # 或 TTAB_PORT / TTAB_TOKEN 环境变量または MCP server を直接実行(daemon がない場合は自動的に bind、daemon がある場合は自動的に attach):
npm run start # 随机 token,打印在 stderr,并写入 .bridge-token
# 或固定 token:
npm run start -- --port 18789 --token <你的token>token のペアリング
TT の右下隅にある Bridge バッジをクリック → token を貼り付ける(server 起動ログ内の token: ...)→「再接続」をクリック → バッジが緑色になれば接続成功。token が拒否された場合(4001)は、拡張機能が 30 秒の低速再試行を継続し、token を修正すれば自己回復する。
agent への接続(ZCode / Claude Code)
stdio MCP 方式で登録する(コマンド例。お使いのクライアントの構文に合わせて調整):
zcode mcp add tt-agent-bridge -- npm run start --prefix <bridge目录绝对路径>MCP ツール一覧(21 個)
検出系(読み取り)
ツール | 用途 |
| キャパビリティ / 現在のキャラクター / チャット長 / chatMetadata のキー |
| フロアメッセージ(swipe 含む、オプションでフロア変数、そのフロアのステータスバー iframe 名) |
| チャットレベルまたは指定フロアの変数(MVU stat_data、swipe_id で解決) |
| キャラクターカード: summary / full / regexes / scripts / character_book をセクション単位で読み取り |
| 直近のワールドブック発動バッチ |
| AI リクエスト一覧 / プレビュー / 生ペイロード |
| フロントエンド(console キャプチャ含む)/ バックエンドログ |
| 全 iframe の一覧 + フロア→iframe マッピング(同一オリジン / スクリプト数 / Vue / 可視性) |
| MVU クイックリファレンス: 最新の stat_data / initvar フロア / 直近の |
| ホスト側のチャット全文検索 |
| 構造条件(キー名 / キャラクター)で最後に一致するメッセージを特定 |
操作系(書き込み)
ツール | 用途 |
| STScript を実行 |
| メッセージを送信(生成をトリガー可能) |
| chat / global 変数を書き込み |
| キャラクターを切り替え |
| ホスト内でワールドブック項目エディタを開く |
| AI ログ保持上限の読み取り / 設定(長時間のデバッグセッションでは大きめに) |
| ホストの全量 console キャプチャのオン / オフ(iframe のエラーを |
デバッグ系
ツール | 用途 |
| メインドキュメントまたは指定 iframe( |
bridge ローカル
ツール | 用途 |
| イベントストリームを取得(新規メッセージ / ワールドブック発動 / フロント・バックエンドエラー / LLM リクエスト完了 / 拡張機能ログ) |
| bridge の状態(owned / attached モード、拡張機能の接続、ツール一覧) |
典型的な debug シナリオ(Tavern カード)
ステータスバーが空白 / 変数を読み取れない:
tt_mvu_statで stat_data の有無を確認 →tt_iframesでステータスバーの frame を特定 →tt_eval frame=TH-message--0--2で iframe 内のgetAllVariables()と DOM を調査 →tt_console_capture {enabled:true}の後にtt_logs kind=frontendでエラーを確認する(SyntaxErrorは HTML エンティティの二重デコードによることが多い)。操作が反応しない(tab がクリックできない / ボタンが無反応):
tt_eval frame=...内でスクリプトのソースコードを読み、Vue のマウント(el.__vue_app__)を確認し、dispatchEventでクリックをシミュレートして対照実験を行う。ワールドブックが反映されない:
tt_worldinfo_lastで発動バッチを確認 →tt_llm_logsの raw で prompt に実際に何が組み込まれたかを確認 →tt_worldinfo_openで該当項目に直接ジャンプする。カード変更後の検証:
tt_exec_stscriptで/goリロードをトリガー →tt_read_messagesでレンダリング結果を確認する。カード構造のレビュー:
tt_get_character section=regexes|scripts|character_bookで埋め込みコンポーネントをセクション単位で読み取り、カード全体の MB 級 JSON でコンテキストを埋め尽くさないようにする。
dev スクリプト(bridge/scripts/)
スクリプト | 用途 |
| agent 直接接続クライアント(attach 優先、daemon がいない場合は spawn でフォールバック) |
| ファイル内容を |
| 内蔵診断シーケンス |
| 回帰テストスイート: daemon / attach / 21 ツール / 2 agent の同時実行 |
| WebView2 CDP(9222)経由で TT ページをリロード |
| キャラクターカード PNG の展開チェック / 全量ディスク書き出し |
| MCP stdio のエンドツーエンドスモークテスト |
セキュリティ境界
WS は
127.0.0.1のみをリッスンする。ハンドシェイクには token が必須(--token/TTAB_TOKEN、デフォルトはランダム生成)。任意のファイルシステム / コマンドのプロキシは行わない——ファイル操作は agent がローカルツールで行う。
書き込み系と
tt_evalは destructive と明記され、agent 側の確認ポリシーに依存する。token は拡張機能の localStorage と bridge の
.bridge-tokenに平文で保存される。いずれも本機のファイルである。
既知の制限
/sendのテキストはパイプ経由でエスケープして渡される。極端な文字を含む場合はtt_evalで context を直接操作してフォールバックする。set_variables scope=globalは/setvar scope=globalのオブジェクトシリアライズ動作に依存する。attached モードでは
tt_poll_eventsは attach 以降のイベントのみを含む(履歴イベントは daemon の ring buffer にあり、MCP attach 経路では再生されない)。tt_bridge_statusの extConnected は attach 時点のスナップショットである。TauriTavern の
context.characterIdは実測すると数字文字列(上流の ST は number)であり、bridge 内部では互換対応済み。daemon が死んだ場合、attached の MCP server 呼び出しは失敗する(エラーメッセージが daemon の再起動を明確に促す)。自動で bind にフォールバックしない。
開発
npm install && npm run build # 构建扩展(typecheck + vite -> dist/)
cd bridge && npm install # bridge 依赖
cd bridge && npm run typecheck # bridge 侧类型检查リポジトリのルートがそのまま拡張機能(manifest.json + dist/)になっており、dist のビルド成果物はリポジトリにコミットされるため、TT に Git インストールした後はそのまま読み込まれる。ソースを変更したら npm run build してコミットすれば、TT の拡張機能更新で取得できる。
This server cannot be installed
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 Servers
- AlicenseAqualityBmaintenanceEnables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with a running Roblox game client through an MCP interface.8221431MIT
- AlicenseBqualityAmaintenanceEnables AI agents to directly access native macOS services, media, system health, and administration tools through a local MCP server.40218MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants to build, test, and debug Tauri v2 applications through UI automation (screenshots, clicks, typing, element finding), IPC monitoring, log streaming, and mobile device management.MIT
- AlicenseNot gradedqualityBmaintenanceExposes SmartCLI's built-in agent tools (file operations, code search, shell commands, web search, memory, and snapshots) as MCP endpoints, allowing external clients to leverage them over stdio or HTTP.1MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
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/ywclgl258/tt-agent-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server