mcpField
C
C64 Bridge

C64 Bridge

ローカル
github.comゲーム・エンタメ412 週間前に更新

C64 Bridge について

C64 Bridge は、AI クライアントから Commodore 64 の実機と VICE エミュレーターを操作するための MCP サーバーです。C64 Ultimate、Ultimate 64、U2 系カートリッジに対応し、1 つの MCP セッションで実機とエミュレーターを切り替えられます。

主な機能

  1. 01BASIC、6510 アセンブリ、PRG/CRT プログラムの実行
  2. 02メモリの読み書きと画面のポーリング
  3. 03グラフィック描画とサウンド再生のツール
  4. 04SID 音楽の再生と生成のツール
  5. 05実行時のハードウェアと VICE バックエンドの切り替え

活用シーン

  1. 01AI クライアントから実機で C64 プログラムを起動
  2. 02デバッグ中の C64 メモリの確認と書き込み
  3. 03VICE エミュレーターでのプログラムの開発とテスト

MCP 対応

本プロジェクトは公式 TypeScript SDK で構築された MCP サーバーで、stdio 経由で MCP クライアントと接続し、C64 の操作機能をグループ化されたツール、リソース、プロンプトとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chrisgleissner-c64bridge": {
"command": "npx",
"args": [
"-y",
"c64bridge"
],
"env": {
"LOG_LEVEL": "<LOG_LEVEL>",
"C64BRIDGE_CONFIG": "<C64BRIDGE_CONFIG>",
"C64_MODE": "<C64_MODE>",
"C64U_HOST": "<C64U_HOST>",
"C64U_PORT": "<C64U_PORT>",
"C64U_PASSWORD": "<C64U_PASSWORD>",
"VICE_BINARY": "<VICE_BINARY>",
"VICE_VISIBLE": "<VICE_VISIBLE>",
"VICE_WARP": "<VICE_WARP>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}
起動コマンドnpx -y c64bridge
設定が必要な環境変数
LOG_LEVELLogger verbosity.
C64BRIDGE_CONFIGPath to the C64 Bridge configuration file.
C64_MODEActive backend.
C64U_HOSTUltimate 64 host name or IP address.
C64U_PORTUltimate 64 REST port.
C64U_PASSWORDシークレットUltimate 64 network password sent as X-Password.
VICE_BINARYVICE emulator binary to launch.
VICE_VISIBLELaunch VICE with a visible window when possible.
VICE_WARPEnable VICE warp mode.
GITHUB_TOKENシークレットGitHub token for optional RAG discovery against GitHub.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmc64bridge1.0.6

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

C64 Bridge

Logo

Commodore 64 用の AI コマンドブリッジです。

npm Build codecov License: GPL v2 Platform

Install in VS Code Install in VS Code Insiders Install in Visual Studio Install in Cursor Use with Claude Code

C64 Bridge は、AI クライアントから Commodore 64 を制御し、操作するための MCP サーバーです。

C64 Ultimate、Ultimate 64、またはU2ファミリーのカートリッジ上で、プログラムの実行、メモリの読み書き、グラフィックスの描画、サウンドの再生ができます。また、VICE エミュレーターのセッションに切り替えることもできるため、1 つの MCP 会話で実機とエミュレーションの両方を扱えます。

公式の TypeScript @modelcontextprotocol/sdk を基盤としており、ローカルの AI 連携向けの stdio と、手動での確認に使えるオプションの HTTP ブリッジの両方をサポートしています。

C64 Bridge は公式 MCP レジストリに掲載されています。

目次

概要

C64 Bridge を使うと、AI エージェントは Commodore 64 環境でのプログラム実行、メモリアクセス、グラフィックス、サウンド、ストレージ、プリンターのワークフロー、ナレッジ検索を一元的に操作できます。

基本的なワークフローはシンプルです。

  1. MCP サーバーを起動します。
  2. C64U/U64 ハードウェア、U2 ファミリーのカートリッジ、VICE、または設定済みの組み合わせを指定します。
  3. クライアントから c64_program、c64_memory、c64_graphics、c64_sound など、グループ化された MCP ツールを呼び出します。
  4. 両方のバックエンドが設定されている場合は、c64_select_backend を使って実行時に切り替えます。

機能

  • BASIC、6510 アセンブリ、PRG または CRT の実行に対応したプログラムランナー
  • 生の読み書きや画面のポーリングを含む、完全なメモリアクセス
  • ドライブ、ファイル、プリンター、タスクのオーケストレーションを行うシステム連携
  • 再生、作曲、生成、検証に対応した SID 音楽ツール
  • LLM のワークフローをより安全にする、組み込みのナレッジリソースとプロンプト
  • c64u(C64U/U64)、u2(U2/U2+/U2+L)、vice の混在した実行環境をサポート

クイックスタート

最短で始めるには、次の 4 つを行います。

  1. Node.js 24+ と npm をインストールします。
  2. サーバーを起動します。
  3. C64U/U64、U2 ファミリー、VICE、または任意の組み合わせのバックエンド設定を追加します。
  4. VS Code または別の MCP クライアントから接続します。
1. Node.js 24+ と npm をインストールする

Linux(Ubuntu または Debian):

推奨:

sudo apt update
sudo apt install -y curl ca-certificates
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs

代替手段:

sudo apt install -y nodejs npm

macOS:

brew install node@24
brew link --overwrite node@24

Windows:

# winget
winget install OpenJS.NodeJS.LTS
# or Chocolatey
choco install nodejs-lts -y

インストールを確認します。

node --version

期待される結果:v24.x

2. サーバーを起動する

次のいずれかのエントリーポイントを使用します。

セットアップなしで npx から実行します。

npx -y c64bridge@latest

ローカルの npm インストールから実行します。

mkdir -p ~/c64bridge && cd ~/c64bridge
npm init -y
npm install c64bridge
node ./node_modules/c64bridge/dist/index.js

開発またはテスト用にソースから実行します。

git clone https://github.com/chrisgleissner/c64bridge.git
cd c64bridge
./build install
npm start

起動時に、サーバーは選択したターゲットを確認し、接続チェックを実行した後、stdio で実行中であることを通知します。

3. バックエンド設定を追加する

サーバーは、次のいずれか、または複数を対象に実行できます。

  • C64U/U64 ハードウェア(c64u)
  • U2、U2+、または U2+L(u2)
  • VICE(vice)

詳細な参照順序、マージルール、バックエンドの例、上書きの仕組みについては、以下の設定セクションをご覧ください。

4. MCP クライアントから接続する

C64 Bridge には、すべての MCP クライアントが使用する、標準の stdio エントリーポイントが 1 つあります。

  • VS Code(GitHub Copilot) — VS Code MCP のセットアップをご覧ください。
  • Claude Code(CLI および VS Code プラグイン) — Claude Codeをご覧ください。
  • Cursor、Visual Studio、VS Code Insiders — この README の上部にあるインストールバッジを使用してください。
  • その他の MCP クライアント — 同じ stdio サーバーを指定し、ランタイム環境変数リファレンスに記載されている環境変数と、mcp.json のレジストリマニフェストを使用してください。

起動コマンドは、どのクライアントでも同じです。公開済みパッケージの場合は npx -y c64bridge@latest、ローカルのチェックアウトから実行する場合は node scripts/start.mjs を使用します。共通の設定で c64u、u2、または vice を選択します。クライアント側で必要なのはコマンドだけです。

設定

設定ファイルの順序

サーバーは次の順序で設定を読み込みます。

  1. 設定ファイルを指している場合は C64BRIDGE_CONFIG
  2. プロジェクトのルートにある .c64bridge.json
  3. ホームディレクトリにある ~/.c64bridge.json
設定のマージルール

設定ファイルを順に確認し、バックエンドセクションごとに設定をマージします。

  • 各バックエンドセクション(c64u、u2、または vice)を含む最初のファイルが、そのバックエンドの設定を提供します。
  • これにより、プロジェクトローカルの .c64bridge.json で c64u を定義し、~/.c64bridge.json で u2 または vice を定義できます。
バックエンド設定:C64 Ultimate

C64 Ultimate または Ultimate 64 には、次の設定を使用します。

{
  "c64u": {
    "host": "c64u",
    "port": 80,
    "networkPassword": "secret"
  }
}
  • ファイルが見つからない場合、デフォルトのターゲットは c64u:80 で、ネットワークパスワードは設定されません。
  • networkPassword が必要なのは、C64 Ultimate のネットワーク設定でパスワードを有効にした場合のみです。
  • C64U_HOST、C64U_PORT、および C64U_PASSWORD は、設定済みのホスト、ポート、およびネットワークパスワードを上書きします。
ネイティブ入力とメニュースクリーンのファームウェア要件

次の操作には、最近追加された Ultimate REST エンドポイントが必要です。C64 Bridge は、利用できないエンドポイントを検出するか、その理由を説明します。生のファームウェアエラーが表示されることはありません。

エンドポイントに依存する操作を選ぶ前に、c64://platform/status を読み取ってください。安全に machine:input を調査し、利用可能かどうかを報告します。ネイティブ入力を利用できない場合は、通常の C64 入力には物理マトリクスイベントではなく、key または write_text を使用してください。machine:menu_screen の利用可否を確認できるのは、Ultimate のメニューが表示されている場合に限られます。マトリクスを読み取れない場合、このツールはトランスポートエラーではなく、フォールバックの案内を返します。

  • c64_input の keyboard、release_all、state と、ハードウェアの joystick は machine:input を使用します。これらには、このエンドポイントに対応する C64U ファームウェア、または U64 ファームウェア 3.15 以降が必要です。machine:input は U2 ファミリーのカートリッジでは利用できません。
  • c64_system の read_menu_screen は machine:menu_screen を使用します。これには、このエンドポイントに対応する C64U ファームウェア、または U64/U2 ファームウェア 3.15 以降が必要です。
  • C64U/U64 では、c64_system の power_cycle は machine:menu_screen を使って Tool Menu の移動を確認するため、同じファームウェア要件があります。U2 ファミリーの power_cycle は、代わりに REST の再起動を使用します。
バックエンド構成:U2 ファミリー

U2、U2+、U2+L カートリッジには、このプロファイルを使用します。

{
  "u2": {
    "host": "u2",
    "port": 80,
    "networkPassword": "secret"
  }
}

C64_MODE=u2 を設定すると、これが初期バックエンドになります。U2_HOST、U2_PORT、U2_PASSWORD を設定すると、このプロファイルの値が上書きされます。U2 ファミリーのファームウェアでは、共通の REST サブセットが公開されますが、マシン入力、デバッグレジスターへのアクセス、電源オフ、ストリーミングには対応していません。read_menu_screen には U2 ファームウェア 3.15 以降が必要です。

バックエンド構成:VICE

C64 Bridge は、起動済みの VICE Binary Monitor に接続することも、ローカルの VICE プロセスを管理することもできます。通常の管理対象セットアップでは、エミュレーターのバイナリと、自動検出で見つからない場合は VICE リソースディレクトリだけが必要です。

{
  "vice": {
    "exe": "/usr/bin/x64sc",
    "directory": "/usr/local/share/vice"
  }
}
  • exe は、x64sc または x64 が PATH 上にある場合は省略できます。明示的なバイナリが設定されていない場合、ランタイムはまず /usr/local/bin/x64sc があればそれを優先し、次に PATH 上の x64sc または x64 を使用します。
  • directory は省略できます。省略した場合、C64 Bridge はエミュレーターのバイナリ付近や一般的なシステム上の場所で標準の C64 ROM セットを探し、VICE リソースディレクトリを自動検出します。
  • host と port は省略可能で、省略した場合は 127.0.0.1:6502 が使用されます。これは、C64 Bridge が管理対象のローカルセッション用に起動する Binary Monitor エンドポイントです。ローカルエンドポイントでは、C64 Bridge は自身のプロセスを起動する前に、起動済みのモニターの再利用を試みます。
  • visible、warp、args は省略可能なランタイム制御設定です。JSON 構成に含めることもできますが、セッションごとの設定であるため、ほとんどのユーザーは MCP クライアントから対応する環境変数を設定します。
  • デフォルトでは、VICE は初回アクセス時に遅延起動されます。環境変数 VICE_PREWARM=1 を設定すると、C64 Bridge は MCP の起動中にバックグラウンドで VICE を起動または接続します。
  • VICE_BINARY、VICE_DIRECTORY、VICE_HOST、VICE_PORT、VICE_VISIBLE、VICE_WARP、VICE_ARGS、VICE_PREWARM を設定すると、構成ファイルを編集せずに JSON の値を上書きできます。
VICE のウィンドウモード

MCP サーバーの実行場所に応じて、ウィンドウモードを選択します。

モード構成動作使用する場面
表示VICE_VISIBLE=trueVICE が通常のデスクトップウィンドウを開きます。Warp はデフォルトでオフです。ローカルで開発しており、エミュレーターを見たり操作したりしたい場合。
最小化VICE_VISIBLE=true、VICE_ARGS="-minimized"VICE は通常のデスクトップアプリとして動作しますが、ウィンドウは最小化された状態で起動します。Binary Monitor の操作、画面の読み取り、フレームのキャプチャ、キーボード入力は引き続き機能します。ローカルでエージェントを使用しており、エミュレーターにフォーカスを奪われたくないものの、必要に応じてウィンドウを復元したい場合。
ヘッドレス/XvfbVICE_VISIBLE=falseC64 Bridge は、無効にされていない限り Xvfb を使用して、ユーザーが操作するデスクトップウィンドウなしで VICE を起動します。Warp はデフォルトでオンです。CI、無人テスト、サーバー、またはエミュレーターのウィンドウを確認する必要がないセッション。

最小化とヘッドレスは同じではありません。最小化は、実際の VICE ウィンドウを備えた、表示可能なデスクトップセッションです。起動時にウィンドウマネージャーによって非表示にされるだけです。ヘッドレス/Xvfb にはユーザーが操作するウィンドウがないため、自動化には適していますが、エミュレーターを目で見てデバッグする場合には不便です。

通常のローカル MCP 利用では、VICE の最小化を推奨します。フォーカスを奪うことなく、目視確認が必要なときにウィンドウを復元できます。CI やリモート環境、ディスプレイのない環境では、ヘッドレス/Xvfb を推奨します。

FORCE_XVFB=1 を設定すると、グラフィカルセッションが利用可能な場合でも Xvfb が強制されます。DISABLE_XVFB=1 を設定すると、このフォールバックが無効になり、現在のディスプレイが使用されます。これは主にディスプレイ検出のトラブルシューティングに役立ちます。

推奨される VICE の設定

ローカルのエージェントセッションで、VICE を最小化して起動する場合:

{
  "servers": {
    "c64bridge": {
      "command": "npx",
      "args": ["-y", "c64bridge@latest"],
      "env": {
        "C64_MODE": "vice",
        "VICE_VISIBLE": "true",
        "VICE_ARGS": "-minimized",
        "VICE_WARP": "false"
      }
    }
  }
}

ヘッドレス自動化で、デスクトップウィンドウを表示せずに VICE を実行する場合:

{
  "servers": {
    "c64bridge": {
      "command": "npx",
      "args": ["-y", "c64bridge@latest"],
      "env": {
        "C64_MODE": "vice",
        "VICE_VISIBLE": "false",
        "VICE_WARP": "true"
      }
    }
  }
}

VICE が通常の検索パス以外にインストールされている場合は、どちらかの例に VICE_BINARY を追加してください。ROM/リソースの自動検出に失敗する場合は、VICE_DIRECTORY も追加してください。

メモ

VICE は、MCP API リファレンスで VICE のチェックマークが付いた操作のみをサポートします。サポートされていない操作は unsupported_platform を返します。

ランタイムバックエンドの切り替え

c64u、u2、vice は任意の組み合わせで設定できます。C64 Bridge は C64_MODE(デフォルトは c64u)で起動し、c64_select_backend で選択できるよう、設定済みのすべてのバックエンドを使用可能な状態に保ちます。

プロファイル対象主な制限
c64uC64 Ultimate、Ultimate 64マシン入力やストリーミングを含む、Ultimate REST API の全機能を利用できます。
u2U2、U2+、U2+L共通の REST サブセットを利用できます。マシン入力、デバッグレジスタ、電源オフ、ストリーミングには対応していません。
viceVICE エミュレーターBinary Monitor ベースのエミュレーター制御に対応します。Ultimate REST API は利用できません。

c64://platform/status を使って、アクティブなバックエンドと利用可能なツールを確認できます。同じプロンプト内で対象を指定してください。例:u2: list drives、c64u: run this PRG、vice: write HELLO。U2 ファミリーのカートリッジでは、c64_system の power_cycle は REST による再起動を使用します。C64U/U64 では、検証済みの Tool Menu 操作を使用し、VICE は新規起動します。

プロンプトの例(GPT 5.4 Medium を使用し、VS Code の Copilot から実行):

c64u: write a small BASIC program that clears the screen and prints HELLO C64U
vice: write a small BASIC program that clears the screen and prints HELLO VICE

以下のスクリーンショットは、フレームキャプチャに対応する 2 つのバックエンドで利用できます。C64U は動画フレームをストリーミングし、VICE は画面をキャプチャして正規化します。U2 ファミリーのカートリッジはファームウェアストリーミングに対応していないため、スクリーンショットの行はありません。

バックエンドスクリーンショット
C64 UltimateC64 Ultimate バックエンド切り替えの例
U2 ファミリーフレームキャプチャは利用できません(ファームウェアストリーミングには非対応)。
VICEVICE バックエンド切り替えの例

VS Code MCP のセットアップ

このセクションでは、VS Code に付属する GitHub Copilot の連携について説明します。Claude Code の VS Code プラグインについては、Claude Code を参照してください。こちらは .vscode/mcp.json ではなく .mcp.json を読み込みます。

このリポジトリをローカルにチェックアウトしている場合は、用意されている .vscode/mcp.json を開いてください。

それ以外の場合は、以下の内容を独自の .vscode/mcp.json に記述してください。

{
  "servers": {
    "c64bridge": {
      "command": "npx",
      "args": [
        "-y",
        "c64bridge@latest"
      ]
    }
  }
}

次に、c64bridge の項目の上に表示される開始ボタンをクリックします。

MCP サーバーが起動します。

VS Code で起動した MCP サーバー

詳細については、公式の VS Code MCP サーバーのドキュメントを参照してください。

C64 エージェントを有効にする

サーバーの起動後、VS Code で C64 エージェントに切り替えてください。

このエージェントは Commodore 64 の作業向けにあらかじめ設定されています。Copilot が、BASIC、6502 アセンブリ、SID オーディオ、VIC-II グラフィックス、メモリの調査、ディスク操作、印刷、ストリーミング、デバイス制御に関する c64bridge のワークフローを優先するように誘導します。

VS Code の C64 エージェント

オプションのオーバーライド

.vscode/mcp.json に env エントリを追加すると、設定ファイルの選択、C64 Ultimate の接続情報の上書き、初期バックエンドの強制指定ができます。

{
  "servers": {
    "c64bridge": {
      "command": "npx",
      "args": [
        "-y",
        "c64bridge@latest"
      ],
      "env": {
        "C64BRIDGE_CONFIG": "/home/you/.c64bridge.json",
        "C64U_HOST": "192.168.1.99",
        "C64U_PORT": "80",
        "C64U_PASSWORD": "secret",
        "C64_MODE": "c64u",
        "LOG_LEVEL": "debug"
      }
    }
  }
}
  • C64BRIDGE_CONFIG は特定の設定ファイルを指定します。
  • C64U_HOST、C64U_PORT、C64U_PASSWORD は、設定ファイルを編集せずに C64 Ultimate の接続情報を上書きします。
  • C64_MODE は初期バックエンドを c64u、u2、vice のいずれかに固定します。U2_HOST、U2_PORT、U2_PASSWORD は、選択した U2 プロファイルの接続情報を上書きします。
  • LOG_LEVEL=debug は詳細なログを有効にします。

VICE_ARGS=-minimized、VICE_VISIBLE=false、カスタム VICE パスなど、VICE 固有のオーバーライドについては、バックエンドの設定:VICEのパターンを使用してください。

MCP クライアント設定の環境変数

ルートの mcp.json に記載されているすべてのランタイム環境変数は、servers.c64bridge.env 配下の .vscode/mcp.json を含め、MCP クライアント設定から指定できます。

環境変数が JSON 設定フィールドに対応する場合、上書きの優先順位は常に次のとおりです。

  1. MCP クライアント設定またはシェルで明示的に指定された環境変数
  2. C64BRIDGE_CONFIG、リポジトリの .c64bridge.json、~/.c64bridge.json の順に読み込まれた JSON 設定セクションをマージしたもの
  3. サーバーに組み込まれたデフォルト値

環境変数に対応する JSON 設定がない場合、優先順位は次のとおりです。

  1. MCP クライアント設定またはシェルで明示的に指定された環境変数
  2. デフォルト値

このルールは、以下に記載するすべてのランタイム環境変数に一律に適用されます。

例:最小化した VICE を特定の ROM またはリソースディレクトリで起動し、さらに実行時にすぐ選択できるハードウェアのフォールバックを指定します。

{
  "servers": {
    "c64bridge": {
      "command": "node",
      "args": ["${workspaceFolder}/scripts/start.mjs"],
      "type": "stdio",
      "env": {
        "C64_MODE": "vice",
        "C64U_HOST": "c64u",
        "C64U_PORT": "80",
        "VICE_BINARY": "/usr/local/bin/x64sc",
        "VICE_DIRECTORY": "/usr/local/share/vice",
        "VICE_VISIBLE": "true",
        "VICE_ARGS": "-minimized",
        "VICE_WARP": "false"
      }
    }
  }
}

例:バックエンドのエンドポイントには JSON 設定ファイルを使いながら、診断、ポーリング、RAG の動作を VS Code から上書きします。

{
  "servers": {
    "c64bridge": {
      "command": "node",
      "args": ["${workspaceFolder}/scripts/start.mjs"],
      "type": "stdio",
      "env": {
        "C64BRIDGE_CONFIG": "/home/you/.c64bridge.json",
        "LOG_LEVEL": "debug",
        "C64BRIDGE_POLL_MAX_MS": "8000",
        "C64BRIDGE_POLL_INTERVAL_MS": "200",
        "RAG_BUILD_ON_START": "1",
        "RAG_EMBEDDINGS_DIR": "/home/you/c64bridge-data"
      }
    }
  }
}
ランタイム環境変数リファレンス

mcp.json に記載されているすべてのランタイム環境変数は、servers.c64bridge.env 配下の .vscode/mcp.json を含め、MCP クライアント設定で指定できます。

サーバーのランタイム
変数デフォルトJSON 設定キー説明
C64_MODEc64u—アクティブなバックエンドを選択します(c64u/U64 ハードウェア、u2/U2 ファミリーのカートリッジ、または vice エミュレーター)
C64_TASK_STATE_FILEauto—MCP バックグラウンドタスクの状態を永続化するパスを上書きします
C64BRIDGE_CONFIG~/.c64bridge.json設定パス設定 JSON へのパス
C64BRIDGE_DIAGNOSTICS_DIR~/.c64bridge/diagnostics—MCP の診断ファイルを永続的に書き込むディレクトリを上書きします
C64BRIDGE_DISABLE_DIAGNOSTICS0—1 に設定すると、診断ログの永続化を無効にします
C64BRIDGE_POLL_INTERVAL_MS200—通常のランタイムモードでプログラム出力を検証する際に、画面をポーリングする間隔
C64BRIDGE_POLL_MAX_MS2000—通常のランタイムモードでプログラム出力を検証する際に、タイムアウトまでポーリングする最大時間
C64BRIDGE_POLL_STABILIZE_MS100—ポーリングが正常に一致した後、出力が安定したとみなすまでの追加待機時間
LOG_LEVELinfo—ロガーの詳細度(debug、info、warn、error)
C64 Ultimate
変数デフォルトJSON 設定キー説明
C64U_HOSTc64uc64u.hostC64 Ultimate のホスト名または IP アドレスを上書きします
C64U_PASSWORDc64u.networkPasswordX-Password として送信する C64 Ultimate のネットワークパスワードを上書きします
C64U_PORT80c64u.portC64 Ultimate の REST ポートを上書きします
U2 ファミリー
変数デフォルトJSON 設定キー説明
U2_HOSTu2.hostC64_MODE=u2 の場合に、U2/U2+/U2+L のホスト名または IP アドレスを上書きします
U2_PASSWORDu2.networkPasswordC64_MODE=u2 の場合に、X-Password として送信する U2 ファミリーのネットワークパスワードを上書きします
U2_PORTu2.portC64_MODE=u2 の場合に、U2 ファミリーの REST ポートを上書きします
VICE ランタイム
変数デフォルトJSON 設定キー説明
DISABLE_XVFB0—1 に設定すると、Xvfb へのフォールバックを無効にして、現在のディスプレイのみを使用します
FORCE_XVFB0—1 に設定すると、グラフィカルセッションが検出されている場合でも、管理対象の VICE 起動で Xvfb を強制的に使用します
VICE_ARGSvice.args管理対象の VICE 起動に渡す追加のコマンドライン引数です。たとえば、ウィンドウを表示したままアイコン化して起動する -minimized などです
VICE_BINARYx64scvice.exe管理対象のエミュレーターセッションと音声キャプチャで起動する VICE バイナリーです。この設定が未指定または無効な場合にのみ、自動検索が使用されます
VICE_DIRECTORY自動検出vice.directoryROM と UI アセットの検出に使用する VICE リソースディレクトリを指定します。この設定が未指定または無効な場合にのみ、自動検索が使用されます
VICE_HOST127.0.0.1vice.hostVICE バイナリーモニターのホストを指定します
VICE_PORT6502vice.portVICE バイナリーモニターのポートを指定します
VICE_PREWARM0vice.prewarm1 に設定すると、MCP の起動中にバックグラウンドで VICE を起動して接続します。デフォルトでは無効になっており、初回使用時に VICE が遅延起動します
VICE_VISIBLEtruevice.visibletrue の場合、VICE をデスクトップウィンドウとして起動します。false の場合、ヘッドレス/Xvfb による管理起動を使用します
VICE_WARP可視時は false、ヘッドレス時は truevice.warp管理対象の VICE セッションでワープモードを有効にします
VICE_XVFB_DISPLAY:99—管理対象の VICE を Xvfb で起動する際に使用するディスプレイ番号です
VICE 音声キャプチャ
変数デフォルトJSON 設定キー説明
VICE_LIMIT_CYCLES120000000—VICE が音声を生成する際にレンダリングする CPU サイクルの最大数です
VICE_MODEntsc—VICE の音声キャプチャで使用するデフォルトの映像規格です(ntsc|pal)
VICE_RUN_TIMEOUT_MS10000—ヘッドレス VICE の実行タイムアウト(ミリ秒)です
SID 再生
変数デフォルトJSON 設定キー説明
SIDPLAY_BINARYsidplayfp—音声生成時に起動する sidplayfp バイナリーです
SIDPLAY_LIMIT_CYCLES120000000—sidplayfp が音声を生成する際にレンダリングする CPU サイクルの最大数です
SIDPLAY_MODEntsc—デフォルトの SID 再生モードです(ntsc|pal)
SIDPLAYFP_BINARY—SIDPLAY_BINARY の旧式の別名です(sidplayfp 実行ファイル名)
RAG
変数デフォルトJSON 設定キー説明
GITHUB_TOKEN—GitHub での任意の RAG 検出に使用する個人アクセストークンです
RAG_BUILD_ON_START0—1 に設定すると、サーバー起動時に埋め込みを再構築します
RAG_DISCOVER_FORCE_REFRESH0—1 に設定すると、外部ドキュメントの取得時にキャッシュされた検出結果を無視します
RAG_DOC_FILES—RAG に含める追加ドキュメントをカンマ区切りで指定します
RAG_EMBEDDINGS_DIRdata—RAG の埋め込み JSON ファイルを格納するディレクトリです
RAG_REINDEX_INTERVAL_MS0—定期的な再インデックスの間隔(ミリ秒)です(0 で無効)
テスト
変数デフォルトJSON 設定キー説明
C64_TEST_TARGET—統合テストの接続先として、モックまたは実機を指定します(mock|real)

Claude Code

Claude Code は、第一級の MCP クライアントとしてサポートされています。他のすべてのクライアントと同じ標準の起動コマンド、バックエンドの Configuration ファイル、環境変数を使用し、異なるのは検出ファイルのみです。

Claude Code CLI — 公開済みのサーバーを、次の 1 つのコマンドで登録します。

claude mcp add c64bridge -- npx -y c64bridge@latest

すべてのプロジェクトで使用できるようにするには --scope user を指定するか、現在のリポジトリの隣に .mcp.json を作成するには --scope project を指定します。バックエンドの選択(c64u、u2、または vice)、ホスト、ポート、パスワードには、Configuration で説明しているものと同じファイルが使用されます。シェルごとのオーバーライドには、Runtime Environment Variable Reference に記載された変数を使用します。

プロジェクトスコープの検出 — このリポジトリには、node scripts/start.mjs を介して Claude Code をローカルソースに接続する、チェックイン済みの .mcp.json が含まれています。claude(CLI または VS Code プラグイン)でリポジトリを開くと、初回起動時に Claude Code がプロジェクトスコープのサーバーを有効にするよう求めます。一度承認すると、そのワークスペースで c64_* ツールを検出できるようになります。

Claude Code VS Code プラグイン — プラグインは CLI と同じ .mcp.json と、ユーザースコープの claude mcp add 登録を読み込みます。プラグインをインストールし、プロジェクトサーバーの確認を承認すれば、追加の設定は必要ありません。既存の .vscode/mcp.json は GitHub Copilot が読み込むものであり、Claude Code は読み込みません。対象とするクライアントと設定スキーマが異なるため、2 つのファイルは競合せずに共存します。

動作を確認する — 登録後、claude mcp list(CLI)を実行するか、MCP パネル(プラグイン)を開き、c64bridge を探します。次に、Claude Code に 「vice を使って、画面をクリアして HELLO CLAUDE と表示する小さな BASIC プログラムを書いて」 のように頼みます。Claude Code が c64_select_backend と c64_program を直接呼び出せば成功です。ツールが表示されない場合は、Node 24+ が PATH に含まれていること、要求されたスコープでサーバーが承認されていること、Configuration のセクションに従ってバックエンドに接続できることを確認してください。

ワークフローの例

ChatGPT と VS Code を使って子ども向けの歌を作成します。

アヒルの歌

次に、歌に合わせた PETSCII アートを描画します。

アヒルの PETSCII アート

これは、想定されるワークフローの一例です。

  1. MCP クライアントに、C64 向けのコンテンツの生成または改善を依頼します。
  2. c64_program、c64_graphics、c64_sound などのグループ化されたツールを使って実行します。
  3. 画面の読み取り、フレームのキャプチャ、メモリの検査、または音声の分析を通じて結果を確認します。

HTTP 呼び出し

  • 推奨されるトランスポートは stdio です。
  • HTTP ブリッジはデフォルトで無効になっており、手動テストのみを想定しています。
  • 以下の curl コマンドは、HTTP 経由でグループ化された MCP 呼び出しをどのように行うかを示す例です。
# Upload and run BASIC
curl -s -X POST -H 'Content-Type: application/json' \
  -d '{"op":"upload_run_basic","program":"10 PRINT \"HELLO\"\n20 GOTO 10"}' \
  http://localhost:8000/tools/c64_program | jq

# Read current screen (PETSCII→ASCII)
curl -s -X POST -H 'Content-Type: application/json' \
  -d '{"op":"read_screen"}' \
  http://localhost:8000/tools/c64_memory | jq

# Reset the machine
curl -s -X POST -H 'Content-Type: application/json' \
  -d '{"op":"reset"}' \
  http://localhost:8000/tools/c64_system

ビルドとテスト

プロジェクトルートにある ./build スクリプトは、開発タスクをすべて、自己文書化された単一のインターフェースで実行できるようにします。

./build --help                                       # full command reference
./build                                              # install + build + test matrix (full CI run)
./build --skip-tests                                 # install + build only
./build build                                        # TypeScript compile + doc generation
./build test                                         # integration tests (mock backend)
./build test --real                                  # test against real hardware
./build test --platform vice --target mock           # single test leg
./build test:matrix                                  # full matrix (c64u/mock · vice/mock · vice/device)
./build coverage                                     # merged coverage report
./build coverage:single --platform c64u --target mock
./build check                                        # build + test matrix (no install)
./build rag:rebuild                                  # rebuild RAG embeddings
./build release --version 1.2.3                      # prepare a release

MCP サーバーの起動は ./build では管理されません。上記のクイックスタートのセクションにあるように、(ソースから起動する場合は)npm start、または(公開パッケージを使用する場合は)npx -y c64bridge@latest を使用してください。

ドキュメント

静的 MCP インターフェース

このリポジトリには、MCP サーバーインターフェースを自動生成した静的なミラーが ./mcp フォルダーに含まれています。

これにより、エージェントはサーバーに接続せずに、利用可能なツール、リソース、プロンプト、スキーマを確認できます。

MCP API リファレンス

この MCP サーバーは、Commodore 64 を制御するための 17 個のツール、27 個のリソース、10 個のプロンプトを公開します。

ツール

アドレス範囲の表記規則:address + length は開始アドレスとバイト数を表し、startAddress + endAddress は両端を含む範囲を表します。

c64_batch

複数の c64bridge ツール呼び出しを 1 回のリクエストで実行します。複数ステップのワークフローでレイテンシを低減します。

操作は定義されていません。

c64_config

設定の読み取り/書き込み、診断、スナップショットのための統合エントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
batch_update複数の設定更新を 1 回のリクエストで適用します。——✅✅✅
diff現在の設定とスナップショットを比較します。path—✅✅✅
get設定カテゴリーまたは特定の項目を読み取ります。categoryitem✅✅✅
infoUltimate ハードウェアの情報と状態を取得します。——✅✅✅
listファームウェアが報告する設定カテゴリーを一覧表示します。——✅✅✅
load_flashフラッシュストレージから設定を読み込みます。——✅✅
read_debugregUltimate デバッグレジスター($D7FF)を読み取ります。——✅
reset_defaultsファームウェアの設定を工場出荷時のデフォルトにリセットします。——✅✅
restoreスナップショットファイルから設定を復元します。pathapplyToFlash=false✅✅✅
save_flash現在の設定をフラッシュストレージに保存します。——✅✅
set選択したカテゴリーの設定値を書き込みます。category, item, value—✅✅✅
shufflePRG/CRT ファイルを検出し、オプションで画面をキャプチャしながら各ファイルを実行します。—root="/", extensions=["prg","crt"], durationMs=5000, captureScreen=true, maxPrograms=10, outputPath, resetDelayMs=100✅✅
snapshot後で復元または差分比較できるよう、設定のスナップショットをディスクに保存します。path—✅✅✅
versionファームウェアのバージョン詳細を取得します。——✅✅✅
write_debugreg16 進数値を Ultimate デバッグレジスター($D7FF)に書き込みます。value—✅
c64_debug

VICE デバッガー操作(ブレークポイント、レジスター、ステップ実行)のための統合エントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
continue_executionBinary Monitor を終了し、CPU の実行を再開します(BM 0xAA Exit)。——✅
create_checkpointVICE に新しいチェックポイント(ブレークポイント)を作成します。addressendAddress, stopOnHit=true, enabled=true, temporary=false, label, operations, memspace✅
delete_checkpointID を指定してチェックポイントを削除します。id—✅
get_checkpointID を指定して単一のチェックポイントを取得します。id—✅
get_monitor_stateCPU レジスターを読み取り、現在のモニター状態を返します。—memspace✅
get_registersレジスター値を読み取ります。名前または ID で絞り込むこともできます。—memspace, registers✅
list_checkpoints有効な VICE チェックポイント(ブレークポイント)をすべて一覧表示します。——✅
list_registers使用可能なレジスターを一覧表示します(メタデータ)。—memspace✅
nuclear_resetVICE プロセスを終了して再起動します(管理対象のインスタンスのみ)。——✅
set_conditionチェックポイントに条件式を設定します。id, expression—✅
set_registersレジスター値を書き込みます。writesmemspace✅
stepCPU を 1 ステップ実行します。—count=1, mode✅
step_return現在のルーチンが戻るまで実行を続けます。——✅
toggle_checkpointID を指定してチェックポイントを有効または無効にします。id, enabled—✅
wait_for_statePC が expectedPC と一致するか、タイムアウトするまで CPU レジスターをポーリングします。—expectedPC, timeoutMs=5000, pollMs=100✅
c64_disk

ディスクのマウント、一覧表示、イメージの作成、プログラムの検出を行うためのグループ化されたエントリーポイントです。

操作説明必須の入力任意の入力C64UU2VICE
create_image指定した形式の空のディスクイメージを作成します。format、pathdiskname、tracks✅✅
file_infoUltimate ファイルシステム上のファイルのメタデータを確認します。path—✅✅
find_and_run名前の部分文字列で PRG/CRT を検索し、最初に一致したものを実行します。nameContainsroot="/"、extensions、caseInsensitive=true、sort="discovered"、waitMs=0、captureCandidates=10✅✅
list_drivesUltimate のドライブスロットと、マウントされているイメージを一覧表示します。——✅✅✅
mount検証と再試行のオプションを指定してディスクイメージをマウントします。検証に対応しています。drive、imagetype、attachmentMode、driveMode、verify=false、powerOnIfNeeded=true、resetAfterMount=true、maxRetries=2、retryDelayMs=500✅✅✅
unmountUltimate のドライブスロットからマウント済みイメージを取り外します。drive—✅✅
c64_drive

ドライブの電源、モード、リセット、ROM 操作を行うためのグループ化されたエントリーポイントです。

操作説明必須の入力任意の入力C64UU2VICE
load_romカスタム ROM を Ultimate のドライブスロットに一時的に読み込みます。drive、path—✅✅
power_off指定した Ultimate のドライブスロットの電源を切ります。drive—✅✅✅
power_on指定した Ultimate のドライブスロットの電源を入れます。drive—✅✅✅
reset選択したドライブスロットに IEC リセットを実行します。drive—✅✅✅
set_modeドライブスロットのエミュレーションモード(1541/1571/1581)を設定します。drive、mode—✅✅✅
c64_extract

スプライト/文字セットの抽出、メモリダンプ、ファイルシステム統計、ファームウェアの健全性チェックを行うためのグループ化されたエントリーポイントです。

操作説明必須の入力任意の入力C64UU2VICE
charsetRAM 内の 2KB 文字セットを検出して抽出します。—address、scanRange="common"、outputPath、pauseDuringRead=true、minNonEmptyChars=32、minEntropy=0.3✅✅✅
firmware_healthファームウェアの準備状況をチェックし、ステータス指標を報告します。——✅✅✅
fs_statsファイルシステムを走査し、拡張子ごとに件数とバイト数を集計します。—root="/"、extensions、includeContainers=true、maxSamplesPerExtension=3✅✅
memory_dumpRAM の範囲を、マニフェストメタデータとともに 16 進数またはバイナリファイルにダンプします。address、length、outputPathformat="hex"、chunkSize=512、pauseDuringRead=true、retries=1✅✅✅
spritesRAM を走査してスプライトを検出し、オプションで .spr ファイルにエクスポートします。address、lengthstride=64、maxSprites=16、minNonZeroRows=4、minSetBits=12、includeBase64=true、outputDir、pauseDuringRead=true✅✅✅
c64_graphics

フレームのキャプチャとグラフィックス描画のワークフローをまとめたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
capture_frameアクティブなバックエンドから、1つ以上の完全なビデオフレームをキャプチャします。—count=1、includePixels=true、encoding="base64"✅✅
get_display_stateVIC-II および CIA2 のレジスターを読み取り、現在のグラフィックスモードとメモリレイアウトを特定します。C64U/U64、U2 ファミリーのハードウェア、VICE では同じ共有メモリーパスを使用するため、レスポンスの形式は同一です。——✅✅✅
render_bitmap画像ファイルを読み込み、VIC-II ビットマップメモリー形式に変換して RAM に書き込み、表示します。imagePath、formatbitmapAddress=8192、screenAddress=1024、borderColor=0、backgroundColor=0、preserveAspect=true✅✅✅
render_petscii_artプロンプト、テキスト、または明示的なビットマップデータから PETSCII アートを作成し、必要に応じて C64 に表示します。—prompt、text、maxWidth、maxHeight、borderColor、backgroundColor、foregroundColor、dryRun=false、bitmap✅✅✅
render_petscii_textオプションの枠線色と背景色を指定して、PETSCII テキストを表示します。textborderColor、backgroundColor✅✅✅
render_sprite指定された63バイトのスプライトデータをメモリーに書き込み、VIC-II レジスターを直接パッチして、指定位置と色で表示します。spriteindex=0、x=100、y=100、color=1、multicolour=false✅✅✅
c64_input

クロスプラットフォームの PETSCII 入力に加え、ネイティブの Ultimate キーボードおよびジョイスティックイベントに対応します。

操作説明必須入力任意入力C64UU2VICE
joystickジョイスティック入力をシミュレートします。C64U/U64 では machine:input を使用します。VICE では、押している間、VICE の I/O シミュレーション joyport デバイスを接続します。このデバイスは CIA のライン5~7も Low にするため、ポート1では偽のキー入力(例:SHIFT+C=)が発生し、ポート2では上方向の値として $7E ではなく $1E が読み取られます。VICE ではポート2を優先し、ビット0~4をテストしてください。port、controls、actiondurationMs=80✅✅
key1つのキーを押すか、指定した時間だけ押し続けます。keydurationMs=0、count=1✅✅✅
keyboardmachine:input を通じて、物理 C64 キーボードのマトリックスイベントを送信します(対応する C64U ファームウェアバージョン、または U64 3.15 以降が必要です)。inputs、transition—✅
release_allmachine:input を通じて入力されたすべてのキーとジョイスティック操作を解除します(対応する C64U ファームウェアバージョン、または U64 3.15 以降が必要です)。——✅
statemachine:input を通じて押されているキーとジョイスティック操作を読み取ります(対応する C64U ファームウェアバージョン、または U64 3.15 以降が必要です)。——✅
write_textPETSCII トークンを展開して、テキスト文字列をキーボードバッファーに送信します。textdelayMs=0✅✅✅
c64_memory

メモリの読み書き、画面の読み取り、画面のポーリングをまとめたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
compare_memory2つのメモリ領域をバイト単位で比較し、差異を報告します。address1, address2, lengthmaxDiffs=10✅✅✅
copy_memoryRAM 領域を別のアドレスにコピーします。source, dest, length—✅✅✅
disassembleメモリ領域を、非公式オペコードを正式名称とともに含む注釈付きの 6502/6510 命令に逆アセンブルします。利用可能な場合は、.vs ファイルのシンボル注釈が適用されます。C64U/U64、U2 ファミリーのハードウェア、VICE で動作します。addresslength=64, instructionCount✅✅✅
fill_memoryメモリ範囲を繰り返しのバイトパターンで埋めます。address, length, pattern—✅✅✅
readバイト範囲を読み取り、アドレス情報付きのヘックスダンプを返します。addresslength=256✅✅✅
read_screen現在の 40x25 テキスト画面を ASCII に変換して返します。——✅✅✅
save_memoryメモリ範囲をローカルファイルにダンプします。オプションで PRG ロードアドレスヘッダーを付加できます。startAddress, endAddress, filePathasPrg=true✅✅✅
search_memoryメモリ範囲内でバイトパターンを検索し、一致するアドレスを返します。startAddress, endAddress, patternmaxResults=10✅✅✅
wait_for_text部分文字列または正規表現が画面に表示されるか、タイムアウトするまで画面をポーリングします。patternisRegex=false, caseInsensitive=true, timeoutMs=3000, intervalMs=100✅✅✅
write16 進数のバイト列を RAM に書き込みます。検証に対応しています。address, bytesverify=false, expected, mask, abortOnMismatch=true✅✅✅
c64_printer

Commodore および Epson の印刷ヘルパーをまとめたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
define_charsカスタムプリンター文字を定義します(Commodore DLL モード)。firstChar, charssecondaryAddress✅✅
print_bitmapCommodore(BIM)または Epson ESC/P のワークフローでビットマップの行を印刷します。printer="commodore", columnsrepeats, useSubRepeat, secondaryAddress, ensureMsb=true, mode, density, timesPerLine✅✅
print_textデバイス 4 にテキストを印刷する BASIC を生成します。texttarget="commodore", secondaryAddress, formFeed=false✅✅
c64_program

プログラムのアップロード、実行、バッチ処理のためのグループ化されたエントリーポイントです。

操作説明必須入力任意の入力C64UU2VICE
batch_run複数の PRG/CRT プログラムを実行し、実行後のアサーションを行います。programscontinueOnError=false, durationMs=2000, outputPath, resetDelayMs=100✅✅✅
bundle_run画面、メモリ、デバッグレジスターをアーティファクトバンドルにキャプチャします。runId, outputPathcaptureScreen=true, memoryRanges, captureDebugReg✅✅✅
cross_platform_greeting1 つ以上の設定済みバックエンドで、プラットフォームに合わせた挨拶を表示し、スクリーンショットをキャプチャして、結果を検証します。検証に対応しています。—platforms, messageTemplate="HAVE A GREAT DAY, {PLATFORM}!", verify=true, captureScreenshot=true, outputPath, restoreActiveBackend=true, timeoutMs=1500, pollIntervalMs=100✅✅✅
load_prgUltimate ストレージから PRG を読み込みますが、実行はしません。pathsymbolsFile✅✅
run_crtCRT カートリッジイメージをマウントして実行します。path—✅✅
run_prgC64U/U64 または U2 ファミリーのハードウェアでは Ultimate から参照可能なストレージから、VICE ではホスト上のローカルパスから PRG を読み込んで実行します。pathsymbolsFile✅✅✅
upload_run_asm6502/6510 のソースをアセンブルし、PRG をアップロードして実行します。検証に対応しています。programverify=false✅✅✅
upload_run_basicCommodore BASIC v2 のソースをアップロードして、ただちに実行します。検証に対応しています。programverify=false✅✅✅
c64_rag

BASIC およびアセンブリの RAG 検索のためのグループ化されたエントリーポイントです。

操作説明必須入力任意の入力C64UU2VICE
asmローカルのナレッジベースから 6502/6510 アセンブリのリファレンスを取得します。qk=3✅✅✅
basicローカルのナレッジベースから BASIC のリファレンスとコードスニペットを取得します。qk=3✅✅✅
c64_select_backend

実行時に、アクティブなバックエンドを C64U/U64 ハードウェア、U2 ファミリーのカートリッジ、VICE エミュレーター間で切り替えます。

操作説明必須入力任意の入力C64UU2VICE
selectMCP サーバーを再起動せずに、アクティブな実行バックエンドを切り替えます。backend—✅✅✅
c64_sound

SID の制御、再生、作曲、分析のワークフローをまとめたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
analyze検証が要求されたときに、SID の再生を自動的に分析します。requestdurationSeconds, expectedSidwave✅✅✅
capture_samplesC64 Ultimate のオーディオ UDP ストリームから、未加工のステレオ PCM サンプルをキャプチャします。—count=256, encoding="base64"✅
compile_playSIDWAVE または CPG のソースをコンパイルし、必要に応じてすぐに再生します。—sidwave, cpg, format, output="prg", dryRun=false✅✅✅
generate軽量な SID アルペジオ再生シーケンスを生成します。—root="C4", pattern="0,4,7", steps=16, tempoMs=120, waveform="tri", preset="classic"✅✅✅
note_offゲートビットをクリアして SID ボイスをリリースします。voice—✅✅✅
note_on波形、ADSR、ピッチを設定して SID ボイスをトリガーします。—voice=1, note, frequencyHz, system="PAL", waveform="pulse", pulseWidth=2048, attack=1, decay=1, sustain=15, release=3✅✅✅
pipelineSIDWAVE のスコアをコンパイルして再生し、録音を分析します。検証に対応しています。—sidwave, cpg, output="prg", waitBeforeCaptureMs=500, analysisDurationSeconds=3, expectedSidwave, verifySilenceBefore=true, verifySilenceAfter=true, silenceDurationSeconds=1.5, silenceRmsThreshold=0.02, postSilenceWaitMs=200, silenceWaitMs=150✅✅✅
play_mod_fileUltimate SID プレーヤーで MOD トラッカーモジュールを再生します。path—✅✅
play_presetベートーヴェンの「エリーゼのために」など、組み込み SID プリセットをコンパイルして再生します。検証に対応しています。—preset="fuer_elise", platforms, verify=true, analysisDurationSeconds=4, waitBeforeCaptureMs=400, restoreActiveBackend=true✅✅✅
play_sid_fileUltimate のファイルシステムに保存された SID ファイルを再生します。pathsongnr✅✅
record_analyze指定した時間だけオーディオを録音し、SID の分析メトリクスを返します。c64u では Ultimate のオーディオストリームを使用し、それ以外のバックエンドではホストのマイクを使用します。durationSecondsexpectedSidwave✅✅✅
reset不具合を解消するために、SID レジスターをソフトリセットまたはハードリセットします。—hard=false✅✅✅
set_volume$D418 の SID マスターボリュームレジスターを設定します(0~15)。volume—✅✅✅
silence_all必要に応じてオーディオを検証しながら、すべての SID ボイスを無音にします。検証に対応しています。—verify=false✅✅✅
c64_stream

Ultimate のストリーミングセッションを開始および停止するためのエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
startUltimate のストリーミングセッションを、host:port の宛先に向けて開始します。stream, target—✅
stop実行中の Ultimate のストリーミングセッションを停止します。stream—✅
c64_system

電源、リセット、メニュー、バックグラウンドタスクを制御するためのグループ化されたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
list_tasksステータスメタデータとともに、既知のバックグラウンドタスクを一覧表示します。——✅✅✅
menuナビゲーション用に Ultimate メニューボタンを切り替えます。——✅✅
pause再開されるまでマシンを一時停止します。——✅✅
performance_report現在または最新の MCP セッションから、診断スパンとツールのレイテンシを要約します。—scope="current", includeTimeline=true, maxEntries=25✅✅✅
power_cycleアクティブなバックエンドを初期状態に戻します。C64U/U64 Tool Menu の検証には machine:menu_screen が必要です(対応する C64U ファームウェアバージョン、または U64 3.15 以降)。U2 ファミリーは REST 経由で再起動します。——✅✅✅
poweroffC64U/U64 の電源を切るか、VICE を終了します。U2 ファミリーのハードウェアでは電源を切れません。——✅✅
read_menu_screenmachine:menu_screen を通じて、アクティブな Ultimate メニューの生の文字および色のマトリックスを読み取ります(対応する C64U ファームウェアバージョン、または U64/U2 3.15 以降)。——✅✅
reboot障害から復旧するためにファームウェアの再起動を実行します。——✅✅✅
reset電源を切らずにソフトリセットを実行します。——✅✅✅
resume一時停止後に CPU の実行を再開します。——✅✅
start_task指定した間隔で実行する名前付きバックグラウンドタスクを開始します。name, operationarguments={}, intervalMs=1000, maxIterations✅✅✅
stop_all_tasks実行中のすべてのバックグラウンドタスクを停止し、状態を永続化します。——✅✅✅
stop_task特定のバックグラウンドタスクを停止し、タイマーを解除します。name—✅✅✅
c64_vice

選択した VICE リソースの読み取りと更新を行うためのグループ化されたエントリーポイントです。

操作説明必須入力任意入力C64UU2VICE
resource_getVICE 設定リソースを読み取ります(安全なプレフィックスのみ)。name—✅
resource_setVICE 設定リソースに書き込みます(安全なプレフィックスのみ)。name, value—✅
リソース
名前概要
c64://guide/index各ナレッジバンドルの活用方法と、参照するタイミングを説明します。
c64://guide/bootstrapC64 で安全に自動化、検証、ロールバックを行うための手順を説明します。
c64://guide/fast-paths1 回の呼び出しでデモを行う方法、バックエンドの切り替え、手動でツールを組み合わせるよりオーケストレーションを優先すべき状況をまとめた簡潔なルーティングガイドです。
c64://vice/binary-monitor-specVICE を利用するすべての操作に影響する、転送フレーミング、単一クライアントの制約、コマンドの動作、モニターの副作用について説明します。
c64://basic/specBASIC v2 のトークン定義、構文規則、デバイス I/O のガイダンスについて説明します。
c64://basic/pitfalls引用符の扱い、行の長さ、トークン化、変数名、その他の BASIC の落とし穴をまとめたクイックリファレンスです。
c64://assembly/6510-spec6510 CPU の公式オペコード一覧、アドレッシングモード、ゼロページの活用方法について説明します。
c64://sound/sid/spec表現力豊かな SID 再生のためのレジスターマップ、波形の挙動、ADSR エンベロープについて説明します。
c64://sound/sidwave/specSID 作曲ワークフローで使用する SIDWAVE 交換フォーマットを定義します。
c64://sound/sid/file-formatインポートした音楽の PSID/RSID ヘッダー、メタデータブロック、互換性に関する注意事項を説明します。
c64://sound/sid/best-practices心地よい SID 音楽を作るために実証された波形、ADSR プリセット、フレージング、検証ワークフローをまとめています。
c64://graphics/vic/specVIC-II のラスタータイミング、スプライト制御、カラー RAM、ビットマップモードについて説明します。
c64://graphics/character-setPETSCII コードをスクリーンコード、グリフ、キーボード入力に対応付ける文字コード表です。
c64://graphics/petscii/style-guide芸術的で読みやすい PETSCII 表示を作成するためのカラーパレット、読みやすさのプリセット、ディザリングパターン、ベストプラクティスについて説明します。
c64://graphics/sprite-charset/best-practicesハードウェアアクセラレーションによるグラフィックスのための、スプライトと文字セットのワークフロー、メモリレイアウト、VIC-II の設定、よくある落とし穴、実証された手法について説明します。
c64://memory/mapハードウェア、ROM、RAM の領域を含む 64 KB アドレス空間を、ページごとに解説します。
c64://memory/zero-page-and-workspaceゼロページ変数、BASIC ポインター、KERNAL ワークスペースのアドレスについて説明します。
c64://basic/rom-routinesBASIC ROM の主要箇所、再利用可能なインタープリタールーチン、数値ヘルパー、文字列ヘルパー、C64 固有の BASIC 継続エントリーポイントをまとめています。
c64://kernal/rom-routinesKERNAL ROM のベクター、ジャンプテーブルエントリー、内部ルーチン、シリアル/テープ/画面サービス、リセットハンドラーについて説明します。
c64://io/specVIC-II、SID、CIA、システム制御レジスターについて、アドレス範囲と使用上の注意を含めて説明します。
c64://io/cia/specCIA 1/2 のレジスター、タイマー、割り込み、キーボードマトリックスの配置について詳しく説明します。
c64://printer/specプリンターのデバイス設定、制御コード、Ultimate 64 との連携について説明します。
c64://printer/commodore/textCommodore MPS のテキスト出力に使用する文字セット、制御コード、書式設定について説明します。
c64://printer/commodore/bitmapMPS のビットマップ印刷におけるビットマップモード、グラフィックスコマンド、データ配置について詳しく説明します。
c64://printer/epson/textEpson FX のテキスト出力に使用する ESC/P 制御コードと書式設定のアドバイスをまとめています。
c64://printer/epson/bitmapEpson のビットマップ印刷ジョブにおけるビットイメージモード、密度オプション、データのパッキングについて説明します。
c64://printer/prompt-guideMCP サーバーを介して複雑なプリンタージョブを実行するために再利用できるプロンプトテンプレートです。
プロンプト
名前説明
assembly-program6502/6510 のルーチンに関するリクエストを、標準のアセンブリスキルに振り分けます。
basic-program独自の Commodore BASIC v2 に関するリクエストを、標準の BASIC スキルに振り分けます。
cross-platform-demoすぐに目で見て確認できるデモに関するリクエストを、クロスプラットフォームデモスキルに振り分けます。
drive-managerディスクイメージやドライブの状態に関するリクエストを、標準のドライブスキルに振り分けます。
graphics-demoグラフィックスに関するリクエストを、標準のグラフィックススキルに振り分けます。
hello-worldすぐに実行できる Hello World やスモークテストに関するリクエストを、標準の挨拶スキルに振り分けます。
memory-debug元に戻せるメモリの検査やパッチ適用に関する作業を、標準のメモリスキルに振り分けます。
preset-music-demoすぐに認識できる曲に関するリクエストを、SID 音楽スキルに振り分けます。
printer-jobプリンターに関する作業を、標準のプリンタースキルに振り分けます。
sid-musicSID の再生や作曲に関する作業を、標準の SID スキルに振り分けます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。