Agentbridge について
AgentBridge は Classic Mac OS 上で動作するネイティブアプリで、共有フォルダー上のテキストプロトコルを介して AI エージェントが Mac OS 7~9 を操作できるようにします。実機やエミュレーターを使うレトロコンピューティング利用者を対象とし、システムの変更は不要です。
主な機能
- 01共有フォルダーを転送路とするテキストプロトコル
- 02ウィンドウ、プロセス、メニューの一覧表示
- 03マウスクリック、ドラッグ、キー入力の再現
- 04クリップボードのテキストの読み書き
- 05アプリケーションの起動、アクティブ化、終了
- 06ボリュームとフォルダーの参照
活用シーン
- 01AI エージェントによる 68k または PowerPC Mac 上のアプリ操作
- 02BasiliskII や SheepShaver エミュレーターでの自動テスト
- 031 つの MCP サーバーからの複数 Classic Mac の管理
MCP 対応
MCP サーバーは stdio で AI クライアントと通信し、AgentBridge のコマンドを classic_mac_* ツールとして公開します。共有フォルダー内のメッセージを MCP の呼び出しに変換します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
AgentBridge
AI をあなたの Classic Mac と会話させましょう。
AgentBridge は、AI エージェント(Claude など)が構造化されたコマンドと応答を通じて Mac OS 7〜9 とやり取りできるようにするネイティブの Classic Mac OS アプリケーションです。実機でもエミュレーターでも動作し、お使いの Mac に変更を加える必要はありません。
AgentBridge を共有フォルダに配置し、お使いの Mac で起動するだけで、AI エージェントはウィンドウの一覧表示、アプリの起動、テキストの入力、クリップボードの読み取り、ファイルの閲覧などを行えます — すべてシンプルなテキストベースのプロトコルを通じて。
仕組み
┌──────────────────────┐
│ Claude / AI Agent │
│ │ │
│ MCP Protocol │
│ │ │
│ MCP Server (Node) │
│ │ │
│ Shared Folder I/O │
└────────┬─────────────┘
│ reads/writes text files
│
┌────┴──────────────────────────┐
│ Shared Volume (NAS / AFP / │
│ SMB / emulator extfs) │
│ │
│ AgentBridge-MyMac/ │
│ ├── inbox/ ← commands in │
│ ├── outbox/ ← responses out │
│ ├── assets/ ← file staging │
│ └── heartbeat │
└────┬──────────────────────────┘
│
┌────────┴─────────────────────────┐
│ Classic Mac OS 7 / 8 / 9 │
│ │
│ AgentBridge.app │
│ - Polls inbox for commands │
│ - Executes via Mac Toolbox │
│ - Writes responses to outbox │
│ - Heartbeat every 2 seconds │
└──────────────────────────────────┘
トランスポートは単なるフォルダです。そのフォルダを AI と Mac の間でどのように共有するかは自由です:
- NAS/ファイルサーバー(AFP または SMB) — 複数の Mac とお使いの現代のコンピューターがすべて同じ共有にマウントします
- エミュレーターの共有フォルダ — BasiliskII と SheepShaver はどちらもホストディレクトリの共有をサポートしています
- その他の共有ファイルシステム — 双方がファイルを読み書きできれば、動作します
SSH は不要です。特別なドライバーも不要です。お使いの Mac のシステムに変更を加える必要もありません。AgentBridge は通常のアプリケーションです — 起動して、終了して、それで終わりです。
MCP ツールリファレンス
MCP サーバーはこれらのツールを AI エージェントに公開します。ターゲットが 1 つだけの場合、target パラメータはすべてのツールで省略可能です。
システムとステータス
classic_mac_list_targets
設定されたすべての Classic Mac ターゲットとそのステータス(ハートビートの生存/停止)を一覧表示します。
パラメータはありません。
classic_mac_ping
ヘルスチェック — AgentBridge が応答していれば pong を返します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_heartbeat
ハートビートファイルを読み取ります — 稼働時間、前面のアプリ、空きメモリ、タイムスタンプを表示します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_get_about
システム情報 — OS バージョン、マシンタイプ、RAM、空きメモリ、稼働時間。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
ウィンドウとプロセス
classic_mac_list_windows
すべてのアプリケーションにわたる、表示されているすべてのウィンドウを列挙します。ウィンドウインデックス、タイトル、境界(left、top、right、bottom)、前面/背面のレイヤーを返します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_get_front_window
最前面のウィンドウの詳細 — タイトル、境界、所有アプリを取得します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_list_processes
実行中のアプリケーションを名前、クリエーターコード、PID、メモリパーティションとともに一覧表示します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
メニュー
classic_mac_list_menus
最前面のアプリケーションのメニューバー項目を一覧表示します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_get_menu_items
名前で特定のメニュー内の項目を取得します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
menu | はい | メニュータイトル(例: 「File」「Edit」) |
classic_mac_menu_select
名前でメニュー項目をアクティブにします。キーボードショートカットのある項目で機能します。
| パラメータ | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
menu | はい | メニュータイトル |
item | はい | メニュー項目名 |
マウスとキーボード
classic_mac_click
画面座標をクリックします。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
x | はい | X 座標 (左からのピクセル数) |
y | はい | Y 座標 (上からのピクセル数) |
clicks | いいえ | クリック回数 (デフォルトは 1、ダブルクリックには 2 を指定) |
classic_mac_mouse_move
クリックせずにカーソルを移動します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
x | はい | X 座標 |
y | はい | Y 座標 |
classic_mac_mouse_drag
ある地点から別の地点までクリックしてドラッグします。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
x1 | はい | 開始 X |
y1 | はい | 開始 Y |
x2 | はい | 終了 X |
y2 | はい | 終了 Y |
classic_mac_type_text
最前面のアプリケーションに文字列を入力します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
text | はい | 入力するテキスト |
classic_mac_key_press
オプションの修飾キーを付けて単一のキーを押します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
key | はい | キー名: 単一文字、または return、enter、tab、space、delete、escape、left、right、up、down、home、end、pageup、pagedown、f1–f5 |
modifiers | いいえ | カンマ区切り: cmd、opt、shift、ctrl (例: "cmd,shift") |
クリップボード
classic_mac_get_clipboard
現在のクリップボードのテキスト内容を読み取ります。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_set_clipboard
クリップボードのテキスト内容を設定します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
text | はい | クリップボードに配置するテキスト |
アプリケーション制御
classic_mac_launch_app
HFS パスまたはクリエーターコードでアプリケーションを起動します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
path | いいえ* | HFS パス (例: "Macintosh HD:Applications:SimpleText") |
creator | いいえ* | 4 文字のクリエーターコード (例: "ttxt") |
*path または creator のいずれかが必須です。
classic_mac_activate_app
実行中のアプリケーションを最前面に表示します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
name | はい | アプリケーション名 |
classic_mac_quit_app
実行中のアプリケーションに終了 Apple Event を送信します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
name | はい | アプリケーション名 |
classic_mac_send_appleevent
実行中のアプリケーションに汎用 Apple Event を送信します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
app | はい | ターゲットアプリ名または 4 文字のクリエーターコード |
event | はい | イベントタイプ: oapp、quit |
ファイルとボリューム
classic_mac_get_volumes
マウントされているすべてのボリュームを、名前、空き容量、合計サイズとともに一覧表示します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
classic_mac_list_folder
HFS パスでフォルダーの内容を一覧表示します。名前、タイプコード、クリエーターコード、サイズ、および各項目がフォルダーかどうかを返します。
| パラメーター | 必須 | 説明 |
|---|---|---|
target | いいえ | ターゲット ID またはエイリアス |
path | はい | HFS パス (例: "Macintosh HD:System Folder:") |
互換性
| 環境 | アーキテクチャ | OS バージョン | ステータス |
|---|---|---|---|
| 68k Mac | 68k | System 7.0~8.1 | ✅ System 7.6.1 でテスト済み |
| PowerPC Mac | PowerPC | Mac OS 8.5~9.2.2 | ビルド可、未テスト |
| BasiliskII | 68k | System 7.0~8.1 | ✅ System 7.6.1 でテスト済み |
| SheepShaver | PowerPC | Mac OS 8.5~9.2.2 | ビルド可、未テスト |
AgentBridge には System 7.0 以降が必要です(Apple Events 対応のため)。
クイックスタート
ビルド済みバイナリ
Releases ページからダウンロードしてください:
AgentBridge-68k.bin— 68k Mac 用の MacBinary(System 7~8.1)AgentBridge-68k.dsk— 68k Mac 用の HFS ディスクイメージ(System 7~8.1)AgentBridge-ppc.bin— PowerPC Mac 用の MacBinary(OS 8.5~9.2.2)AgentBridge-ppc.dsk— PowerPC Mac 用の HFS ディスクイメージ(OS 8.5~9.2.2)
セットアップ
-
共有フォルダを作成します。Mac とモダンなコンピュータの両方からアクセスできる必要があります。NAS 共有、エミュレータのホストディレクトリ、または任意の共有ファイルシステムを使用できます。
-
共有フォルダ内にディレクトリ構造を作成します:
AgentBridge/ └── AgentBridge-YourMacName/ ├── inbox/ ├── outbox/ └── assets/ -
AgentBridge をコピーします。inbox/outbox/assets と同じフォルダに配置してください。
-
Classic Mac で AgentBridge を起動します。自動的に自身のフォルダを検出し、コマンドのポーリングを開始します。
-
モダンなコンピュータからテストコマンドを送信します:
printf "BRIDGE 1.0.1\rSEQ 00001\rCMD ping\rTS 20260308T170000\r---\r" > /path/to/shared/AgentBridge-YourMacName/inbox/C00001.msg -
レスポンスを読み取ります:
cat /path/to/shared/AgentBridge-YourMacName/outbox/R00001.msg | tr '\r' '\n'RESULT pongとSTATUS okが表示されるはずです。
複数の Mac
各 Mac は、それぞれ独自の AgentBridge のコピーを持つ独自のサブフォルダを取得します:
NAS Share/
└── AgentBridge/
├── AgentBridge-SE30/ ← Mac SE/30 running System 7
│ ├── AgentBridge (app)
│ ├── inbox/
│ ├── outbox/
│ └── assets/
├── AgentBridge-G4/ ← Power Mac G4 running OS 9
│ ├── AgentBridge (app)
│ ├── inbox/
│ ├── outbox/
│ └── assets/
└── AgentBridge-BasiliskII/ ← Emulator
├── AgentBridge (app)
├── inbox/
├── outbox/
└── assets/
AgentBridge は自身の起動場所を作業ディレクトリとして使用します — 設定は不要です。
MCP サーバー
MCP サーバーは、Claude などの AI エージェント向けのツールとして AgentBridge のコマンドを公開します。stdio(標準の MCP トランスポート)を介して通信する Node.js TypeScript サーバーです。
npm でインストール
npm install -g classic-mac-mcp
または npx で直接実行します(インストール不要):
npx -y classic-mac-mcp --config /path/to/fleet.json
ソースからインストール
git clone https://github.com/SeanFDZ/agentbridge.git
cd agentbridge
npm install
npm run build
設定
共有フォルダを指定する fleet.json ファイルを作成します:
{
"fleet": [
{
"id": "my-classic-mac",
"alias": "Classic Mac",
"arch": "68k",
"os_version": "7.6.1",
"shared_folder": "/Volumes/NASShare/AgentBridge/AgentBridge-MyMac"
}
]
}
Claude Desktop
Claude Desktop の設定(claude_desktop_config.json)に追加します:
{
"mcpServers": {
"classic-mac": {
"command": "npx",
"args": ["-y", "classic-mac-mcp", "--config", "/path/to/fleet.json"]
}
}
}
または、ソースからインストールした場合:
{
"mcpServers": {
"classic-mac": {
"command": "node",
"args": ["/path/to/agentbridge/dist/server.js", "--config", "/path/to/agentbridge/config/fleet.json"]
}
}
}
プロトコル
AgentBridge は、Classic Mac の制約のために設計された行指向のキーと値のテキストプロトコルを使用します:
- JSON なし — 約50行の C で解析可能、動的メモリ割り当てはゼロ
- CR 改行(Classic Mac ネイティブ)
- MacRoman テキストエンコーディング(MCP サーバーによって UTF-8 に変換)
- 最大メッセージサイズは 32KB
- ファイル名は
C00001.msg(コマンド)とR00001.msg(レスポンス)
コマンドフォーマット
コマンドは inbox/ ディレクトリに書き込まれるテキストファイルで、C{seq}.msg(例:C00001.msg)という名前です。シーケンス番号は 5 桁にゼロ埋めされます。
BRIDGE 1.0.1
SEQ 00042
CMD list_windows
TS 20260308T153022
---
すべての行は KEY value のペアで、単独行の --- で終端されます。改行は CR(0x0D、Classic Mac ネイティブ)です。テキストエンコーディングは MacRoman です(MCP サーバーが UTF-8 変換を処理します)。複数行のテキストは TEXT キーの後に + 継続行を使用します。最大メッセージサイズは 32KB です。
レスポンスフォーマット
レスポンスは outbox/ ディレクトリに R{seq}.msg として現れ、コマンドのシーケンス番号と一致します。AgentBridge は処理後にコマンドファイルを削除し、MCP サーバーは読み取り後にレスポンスファイルを削除します。
BRIDGE 1.0.1
SEQ 00042
STATUS ok
COUNT 2
WINDOW 1|?|Untitled|10,40,400,300|front
WINDOW 2|?||0,0,640,480|back
TS 20260308T153022
---
STATUS は ok または error のいずれかです。エラーの場合、ERRCODE と ERRMSG フィールドが詳細を提供します。複数値のレスポンス(ウィンドウ、プロセス、ボリューム、ファイル、メニュー項目)は、パイプ区切りのフィールドを持つ繰り返しキー(WINDOW、PROCESS、VOLUME、FILEENTRY、MENUBAR、MENUITEM)を使用します。
ハートビート
AgentBridge は約 2 秒ごとに、作業ディレクトリに heartbeat ファイルを書き込みます:
BRIDGE 1.0.1
UPTIME 218
TICKS 240498
FRONTAPP Finder
FREEMEM 4096
TS 20260308T173113
---
MCP サーバーは、ハートビートファイルの更新時刻を監視して、AgentBridge が稼働しているかどうかを判断します。
ソースからのビルド
git clone https://github.com/SeanFDZ/agentbridge.git
cd agentbridge
npm install
npm run build
Node.js 20 以上が必要です。
AgentBridge のバイナリはビルド済みのダウンロードとして入手可能です — ソースコードは配布されていません。
プロジェクト構成
agentbridge/
├── src/ # MCP server (TypeScript, GPLv3)
│ ├── server.ts # MCP tool definitions and handlers
│ ├── fleet.ts # Fleet registry
│ ├── types.ts # Type definitions
│ └── bridge/
│ └── client.ts # Shared folder I/O client
└── config/
└── fleet.json # Fleet configuration
設計原則
ホスト側の依存関係なし。 AgentBridge はすべてを Mac Toolbox を通じて行います。SSH も、画面キャプチャも、ホスト OS レベルでの入力インジェクションもありません。つまり、実機でもエミュレーターでもまったく同じように動作します。
システムの変更なし。 AgentBridge は通常のアプリケーションです。システムフォルダを変更したり、拡張機能をインストールしたり、起動構成を変更したりしません。起動して、終了して、削除する — あなたの Mac はそのままです。
トランスポート非依存。 プロトコルはフォルダ内のテキストファイルにすぎません。そのフォルダをどのように共有するか(NAS、AFP、SMB、エミュレーターの extfs、USB ドライブ、伝書鳩)は AgentBridge の関知するところではありません。
協調的マルチタスクの良き市民。 AgentBridge は毎サイクル WaitNextEvent() を通じて CPU を譲ります。他のアプリは正常に動作します。
ステートレスなコマンド。 すべてのコマンドは自己完結しています。MCP サーバーがクラッシュして再起動しても、Mac 側がそれを知る必要はありません。
クレジット
AgentBridge 1.0.1 Sean Lavigne © 2026 Falling Data Zone, LLC
Wolfgang Thaller による Retro68 を使用して構築されています。
Falling Data Zone の他の製品
MacMind — 完全に HyperTalk で実装され、Macintosh SE/30 上でトレーニングおよび実行される単層トランスフォーマーニューラルネットワーク。1987 年のスクリプティングで機械学習ができることの証明です。
その他のアプリは apps.fallingdata.zone でご覧いただけます。
ライセンス
このプロジェクトには、別々のライセンスを持つ 2 つのコンポーネントがあります。
MCP サーバー(TypeScript、src/ ディレクトリ) — GNU General Public License v3.0 — GPL の条件の下で自由に使用、変更、配布できます。
AgentBridge.app(Classic Mac アプリケーション、ソースは classic-mac-src/) — 修正版 PolyForm Noncommercial 1.0.0。© 2026 Falling Data Zone, LLC。ビルド済みバイナリはダウンロード可能です。
プロトコル — この README に記載されている AgentBridge プロトコルはオープンです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。