-
-
Notifications
You must be signed in to change notification settings - Fork 2
Bridge ja
English | 日本語
実験的な機能です。 フレームワーク 1.4.0 で入ったもので、この先のバージョンで変わったり、無くなったりするかもしれません。
Bridge(DragNWash.ModFramework.Bridge、バージョン 1.5.0)は、この PC の AI クライアント(Claude Code、VS Code、Cursor など)が、動いているゲームを Model Context Protocol(MCP)で読めるようにするライブラリです。オブジェクトとその値、ログ、Mod、セーブ、会話が読めますが、何かを変えることはできません。Mod を作る人やデバッグする人のためのもので、遊ぶだけなら要りません。
Windows と Steam Deck(ゲームの Linux 版)で動くのを確かめています。
- Bridge は中核や Tool window とは別のライブラリで、動かすにはその 2 つが要ります。Mod のリリースから外すこともできますし、遊ぶ人が自分で足さない限り入っていません。
- 初期設定はオフで、Developer tools(Options → Mods → Drag'n Wash ModFramework)がオンの間しか動きません。どちらかをオフにすると止まって、つながっているクライアントはすべて切れます。
- 待ち受けるのはこの PC の中だけで、できるのは読むことだけです。
どれを使っても、同じ設定が変わります。
- F1 の窓の Bridge タブで、一番上の枠にある Turn on。
- Mods 画面で Mods → Drag'n Wash ModFramework: Bridge → Settings → Let AI clients read the game (MCP)(
[Bridge] Enabled)。 -
Console で
bridge on。
オンにすると、http://127.0.0.1:47821/mcp で待ち受けます。ポートは [Bridge] Port(詳細設定で、1024〜65535)で決まります。そのポートが使えないときは、Bridge タブが理由を出して、空いているポートに移すこともできます。下の「ポートが使えないとき」を見てください。
Bridge が待ち受けている間は、ゲームの窓が前になくてもゲームは動き続けるので、クライアントに答えられます。Bridge が止まれば、ゲームの元の設定に戻ります。
Bridge タブの Setup の行には、クライアントごとのボタン(Claude Code、VS Code、Cursor)があります。使うものを選んで Copy setup を押すと、トークンといまのポートを埋めた設定がクリップボードに入ります(1.5.0)。下の例の <トークン> はあなたのトークンで、47821 は初期設定のポートです。設定は一度すれば済みますが、New token を使ったときやポートが変わったときは、やり直してください。
ターミナルで次を走らせます。
claude mcp add --transport http dragnwash http://127.0.0.1:47821/mcp --header "Authorization: Bearer <トークン>"
Claude Code にもう dragnwash を登録してあるとき(トークンやポートを変えたあとなど)は、先に claude mcp remove dragnwash を走らせてください。同じ名前で 2 回登録しようとすると失敗します。
プロジェクトの .vscode/mcp.json に書きます(1.5.0)。ほかのサーバーがもう書いてあるファイルなら、dragnwash の項目だけを足してください。
{
"servers": {
"dragnwash": {
"type": "http",
"url": "http://127.0.0.1:47821/mcp",
"headers": { "Authorization": "Bearer <トークン>" }
}
}
}プロジェクトの .cursor/mcp.json に書きます。どのプロジェクトでも使いたいなら ~/.cursor/mcp.json です(1.5.0)。こちらも、ほかのサーバーが書いてあるファイルなら dragnwash の項目だけを足してください。
{
"mcpServers": {
"dragnwash": {
"url": "http://127.0.0.1:47821/mcp",
"headers": { "Authorization": "Bearer <トークン>" }
}
}
}Bridge がまだ待ち受けていなくてもコピーはできるので、先にクライアントの設定を済ませておけます。そのときは、待ち受けるまでは答えないことを知らせが教えてくれます。
できるのは見ることだけです。操作の登録簿にある読む操作が、説明と引数ごと 1 つずつツールになります(ドットは _ に変わるので、inspector.member.get は inspector_member_get というツールになります)。中核とすべてのライブラリが入っていればツールは 22 個で、たとえば game_info、scene_list、mods_list、log_read、inspector_objects_find、inspector_member_get、saves_flags_list、dialogue_recent、text_shown などです。一覧は操作の登録簿のページにあります。
- 書き換える操作は出しません。
- ゲーム自身のコードを見せる操作(コードグラフ)は、この PC のページ専用で、AI クライアントには出しません。
- クライアントのためにファイルを読み書きすることはなく、クライアントが受け取るのは操作が返すものだけです。
- 呼び出しはゲームの中で 1 つずつ動き、ログには
mcp:<クライアント名>として残ります。
- この PC の中だけ。 127.0.0.1 だけで待ち受けるので、ほかのコンピューターからはつながりませんし、Windows のファイアウォールの許可を求める画面も出ません。
-
トークン。 どの要求にも
Authorization: Bearer <トークン>が要ります。トークンは最初に起動したときに作られ、ゲームのフォルダーではなくユーザーのプロファイルに置かれます。場所は Windows なら%LOCALAPPDATA%/DragNWash ModFramework/bridge-token.txt、Linux と Steam Deck なら~/.local/share/DragNWash ModFramework/です。Bridge タブはトークンを画面に出さないので、配信中やスクリーンショットでも大丈夫です。できるのはコピーだけです。 -
ウェブページからは呼べません。
Hostが127.0.0.1:<ポート>かlocalhost:<ポート>でない要求は断ります(自分の名前をこの PC に向けたウェブサイトからの要求です)。ブラウザーが付けるOriginがある要求も断ります。 - 上限。 同時につなげるのは 8 本、クライアントは 4 つまでで、30 分使われなかったクライアントは終わりにします。1 つのクライアントから呼べるのは 1 秒に 20 回まで、要求は 1 MB まで、結果は 20 万文字までです。ゲームの中で 10 秒を超えた呼び出しは、時間切れのエラーを返します。
-
New token(Bridge タブ、または
bridge token new)を使うとトークンが作り直され、すべてのクライアントが切れるので、Copy setup で設定し直してください。トークンが漏れたかもしれないときに使います。タブでは、クライアントがつながっていると、誰が切れるかを出して先に確かめます(1.5.0)。 -
Disconnect all(Bridge タブ、または
bridge disconnect)で、すべてのクライアントの接続を切ります。タブでは、クライアントがつながっていると先に確かめます(1.5.0)。切れたクライアントは、同じトークンでまたつなげます。
(1.5.0)
Bridge が待ち受けられないと、Bridge タブの一番上の枠が赤くなり、見出しにポートの番号が出ます。スクリーンショットを撮れば、番号もいっしょに残ります。よくある理由は 2 つです。
- 「Not listening: Windows won't let the game use port 47821」は、Windows がそのポートを取ってあるということです。Hyper-V や WSL、Docker はポートの範囲を自分用に取っておき、どこを取るかは PC を再起動すると変わることがあります。ログにも同じことが出ます。
- 「Not listening: port 47821 is in use」は、たぶんほかのプログラムが使っています。
それ以外のときは、システムのメッセージをそのまま出します。赤い枠には Use a free port、Try again、Turn off があります。
Use a free port は、いまのポートの後ろを 200 個まで見ていきます。Windows では、Windows の除外ポートの一覧(netsh interface ipv4 show excludedportrange protocol=tcp を読むだけで、管理者の権限は要りません)に入っている範囲を飛ばし、127.0.0.1 で一瞬待ち受けてみてだめなポートも飛ばします。使えるポートが見つかったら [Bridge] Port に保存して、そこで待ち受けます。やっているのは問い合わせだけで、Windows の設定は何も変えませんし、待ち受けるのは相変わらず 127.0.0.1 だけで、トークンも要ります。移ったあとは「Listening on port 47822 now. Clients set up for 47821 need the new setup (Copy setup).」のような知らせが出て、アドレスの下に「Port changed from 47821. Set your client up again with Copy setup.」という黄色い行が出ます。この行は、アドレスか設定をコピーするか、クライアントがつながってくるまで消えません。200 個とも空いていなければ、PC を再起動してからもう一度試すように言います。
Try again は同じポートでもう一度試します。再起動して Windows がポートを手放したあとに使えます。
Turn off を押すと前の失敗は消えて、枠はただの Off に戻ります。
- Bridge タブ(F1)(1.5.0)の一番上には、待ち受けているかどうかを言う枠があります。左の線が、待ち受け中はアクセント色で「Listening on 127.0.0.1:47821」、オフのときは薄い色で「Off」、待ち受けられないときは赤で理由が出ます。Turn on と Turn off もこの枠の中です。
- その下の CONNECTION には、アドレス、トークン、設定が 1 行ずつ並び、それぞれに Copy があります。トークンの行には、ユーザーのプロファイルに置いてあって画面には出さないことが書いてあり、Copy の横に New token があります。Setup の行には 3 つのクライアントと Copy setup があって、設定をどこに書くかの短い説明が付きます。
- CODE GRAPH には Code graph と Graphs editor があり、どちらもページを開きます。Windows では「Opens in」で App と Browser をその場で切り替えられます。Bridge が待ち受けるまでは、どちらのボタンも薄くなっていて「Opens once the Bridge is listening.」と出ます。
- CLIENTS には、つながっているクライアントが、名乗った名前と呼び出しの回数、最後の呼び出しの時刻といっしょに並びます。1 つずつに Disconnect があり、同じトークンですぐまたつなげるので、確かめずに切ります。Disconnect all は見出しの横です。長い名前は途中で切れますが、指すと名前の全部と MCP のバージョン、つながった時刻がヒントの行に出ます。見出しには、ページにサインインしている数も出ます。
- LAST CALLS には最近の呼び出しが、時刻、クライアント、ツールで並びます。失敗したものには赤い「failed」の印が付きます。
- Mods 画面では、ネットワークを使うほかの Mod と同じように、Bridge に Online の印が付きます。Internet のタブ(1.5.0 より前はページ)には、127.0.0.1(この PC の中だけで、受ける側)で待ち受けていること、動いているゲームについての AI クライアントの問い合わせに答えること、PC の外には何も出ないことが書いてあります。詳しくは外と通信する Mod を見てください。
| コマンド | 内容 |
|---|---|
bridge |
オフか待ち受け中か、つながっているクライアント |
bridge on、bridge off
|
オン・オフ([Bridge] Enabled) |
bridge token new |
トークンを作り直し、すべてのクライアントを切る |
bridge disconnect |
すべてのクライアントを切る |
Bridge は、この PC の中でページも出しています。表示は 2 つあり、コードグラフはゲームのコードをノードで描き、Graphs はコードなしで何かを「する」Mod のエディターです(Graphs)。開くのは Bridge タブの Code graph か Graphs editor(1.5.0。1.4.3 では Open page と Graphs という名前です)で、メソッドから開くなら Inspector の Graph ボタンです。サインインは MCP とは別で、AI クライアントからは見えません。開く場所は [Bridge] OpenPageIn(Mods 画面では Open the code graph in、Bridge タブでは「Opens in」)で、App(Windows で専用の窓、CodeGraph.exe)か Browser を選びます。App を選んでいても CodeGraph.exe がなければ、ブラウザーで開くとタブに出ます。Windows 以外ではいつもブラウザーです。New token や Disconnect all を押したときと、Bridge をオフにしたときは、ページもサインアウトします。コードグラフと Graphs も見てください。
クライアントからの書き換えと、ほかのコンピューターからの接続、それにローカルのプログラムを起動する形でしか使えないクライアント(Claude Desktop)向けの仲立ちは、まだありません。仲立ちは、必要な人が出てきたら作ります。(ページ自身はグラフを保存したり、開始・停止したりできますが、この 3 つはページにだけ開かれていて、AI クライアントからは見えません。)Proton はまだ試していません(Steam Deck ではゲームの Linux 版が動いています)。
Players
Mod authors
- Getting started
- Playing well with others (the guide)
- Going online
- Installer
- Mod reload
- Overrides (no code)
- Graphs (no code, makes things happen)
Tools (F1, developer tools)
- Inspector
- Console
- Code graph
- Bridge (AI clients, MCP)
API
日本語
- ホーム
- プレイヤー向け · ランチャー · FAQ · クラッシュレポート
- はじめての Mod · ほかの Mod と一緒に動かす · 外と通信する Mod · インストーラー · Mod の再読み込み · Overrides · Graphs
- Inspector · Console · コードのグラフ · Bridge
- 中核 API · 操作の登録簿 · Text · Dialogue · Tool window · Assets · Flags and saves · GameEvents · SettingMeta
Links
- Repository
- Releases
- Changelog
- Design records: DESIGN · ROADMAP · CONTENT_POLICY