关于 C64 Bridge
C64 Bridge 是用于控制 Commodore 64 硬件与 VICE 模拟器的 MCP 服务。它支持 C64 Ultimate、Ultimate 64 及 U2 系列卡带,可在一次 MCP 会话中在真机与模拟器之间切换,适合希望从 AI 客户端操作 C64 的用户。
主要功能
- 01运行 BASIC、6510 汇编及 PRG/CRT 程序
- 02读写内存并轮询屏幕
- 03图形渲染与声音播放工具
- 04SID 音乐播放与生成工具
- 05运行时在硬件与 VICE 后端之间切换
适用场景
- 01从 AI 客户端在真机上启动 C64 程序
- 02读写 C64 内存进行调试
- 03在 VICE 模拟器中开发和测试程序
MCP 相关
该项目是基于官方 TypeScript SDK 的 MCP 服务,通过 stdio 连接 MCP 客户端,并以分组工具、资源和提示词的形式暴露 C64 控制能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y c64bridgeLOG_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
C64 Bridge

你的 Commodore 64 AI 命令桥接工具。
C64 Bridge 是一个 MCP 服务,可通过 AI 客户端控制和操作 Commodore 64。
它可以在 C64 Ultimate、Ultimate 64 或 U2 系列卡带上运行程序、读写内存、渲染图形和播放声音。你还可以切换到 VICE 模拟器会话,让一次 MCP 对话涵盖硬件和模拟环境。
它基于官方 TypeScript @modelcontextprotocol/sdk 构建,支持用于本地 AI 集成的 stdio,并提供可选的 HTTP 桥接,方便手动检查。
C64 Bridge 已列入官方 MCP Registry。
目录
概述
C64 Bridge 为 AI Agent 提供统一入口,用于在 Commodore 64 环境中驱动程序执行、访问内存、处理图形和声音、管理存储、执行打印机工作流以及检索知识。
核心工作流很简单:
- 启动 MCP 服务。
- 将其指向 C64U/U64 硬件、U2-family 卡带、VICE,或任意已配置的组合。
- 让客户端调用分组的 MCP 工具,例如
c64_program、c64_memory、c64_graphics和c64_sound。 - 同时配置多个后端时,使用
c64_select_backend在运行时切换后端。
功能
- 用于 BASIC、6510 汇编以及 PRG 或 CRT 执行的程序运行工具
- 完整的内存访问功能,包括原始读写和屏幕轮询
- 用于驱动器、文件、打印机和任务编排的系统集成
- 用于播放、创作、生成和验证的 SID 音乐工具
- 内置知识资源和提示词,让大模型工作流更安全
- 支持混合运行时:
c64u(C64U/U64)、u2(U2/U2+/U2+L)和vice
快速开始
若要采用最简方式,请完成以下四项:
- 安装 Node.js 24+ 和 npm。
- 启动服务。
- 为 C64U/U64、U2-family、VICE 配置后端,或配置任意组合。
- 从 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 提供一个标准的 stdio 入口,供所有 MCP 客户端使用:
- 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;客户端只需要命令即可。
配置
配置文件顺序
服务按以下顺序读取配置:
C64BRIDGE_CONFIG,如果它指向一个配置文件- 项目根目录中的
.c64bridge.json - 主目录中的
~/.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,且不设置网络密码。 - 只有在 C64 Ultimate 的网络设置中启用了密码时,才需要配置
networkPassword。 C64U_HOST、C64U_PORT和C64U_PASSWORD会覆盖已配置的主机、端口和网络密码。
原生输入和菜单屏幕的固件要求
以下操作需要近期新增的 Ultimate REST 端点。C64 Bridge 会检测端点是否不可用并提供说明,不会暴露原始固件错误。
执行依赖端点的操作前,请读取 c64://platform/status。它会安全地探测 machine:input,并报告该端点是否可用。原生输入不可用时,普通 C64 输入请使用 key 或 write_text,而不是物理矩阵事件。只有在 Ultimate 菜单可见后,才能确认 machine:menu_screen 是否可用;无法读取矩阵时,其工具会提供备用指引,而不是返回传输错误。
c64_input的keyboard、release_all和state,以及硬件joystick,均使用machine:input。这些功能需要提供该端点的 C64U 固件,或 3.15 及更高版本的 U64 固件。U2 系列扩展卡不提供machine:input。c64_system的read_menu_screen使用machine:menu_screen;它需要提供该端点的 C64U 固件,或 3.15 及更高版本的 U64/U2 固件。- 在 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"
}
}
- 如果
PATH中有x64sc或x64,则exe为可选项。如果未配置显式的二进制文件,运行时会优先使用/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=true | VICE 会打开常规桌面窗口。Warp 默认关闭。 | 你在本地开发,想要查看或操作模拟器。 |
| 最小化 | VICE_VISIBLE=true、VICE_ARGS="-minimized" | VICE 仍以常规桌面应用的形式运行,但窗口启动时会最小化。Binary Monitor 操作、屏幕读取、帧捕获和键盘输入仍可正常使用。 | 你在本地使用 Agent,不希望模拟器抢占焦点,但仍想保留还原窗口的选项。 |
| 无头/Xvfb | VICE_VISIBLE=false | C64 Bridge 会在没有面向用户的桌面窗口的情况下启动 VICE,并使用 Xvfb,除非已禁用。Warp 默认开启。 | CI、无人值守测试、服务端,或任何不需要检查模拟器窗口的会话。 |
最小化模式和无头模式并不相同。最小化模式仍是一个可见的桌面会话,拥有真实的 VICE 窗口;只是窗口管理器会在启动时将其隐藏。无头/Xvfb 模式没有面向用户的窗口,因此更适合自动化,但如果需要通过查看模拟器来调试,则不太方便。
对于常规的本地 MCP 使用,建议优先选择最小化 VICE。它可以避免抢占焦点,同时保留还原窗口以便查看的能力。对于 CI 以及远程或无显示环境,建议优先选择无头/Xvfb。
FORCE_XVFB=1 会强制使用 Xvfb,即使当前有图形会话也是如此。DISABLE_XVFB=1 会禁用此回退,并使用当前显示器;这主要用于排查显示器检测问题。
推荐的 VICE 配置
本地 Agent 会话,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 使用。
| 配置 | 目标 | 主要限制 |
|---|---|---|
c64u | C64 Ultimate、Ultimate 64 | 完整的 Ultimate REST 接口,包括机器输入和流式传输。 |
u2 | U2、U2+、U2+L | 共享的 REST 子集;不支持机器输入、调试寄存器、关机或流式传输。 |
vice | VICE 模拟器 | 由 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 则会重新启动。
提示词示例(通过 VS Code 中的 Copilot 发出,使用 GPT 5.4 Medium):
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
以下截图适用于支持帧捕获的两个后端。C64U 使用流式视频帧;VICE 会捕获并规范化其显示内容。U2 系列卡带不提供固件流式传输,因此没有对应的截图行。
| 后端 | 截图 |
|---|---|
| C64 Ultimate | ![]() |
| U2 系列 | 帧捕获不可用(不支持固件流式传输)。 |
| VICE | ![]() |
VS Code MCP 设置
本节介绍 VS Code 自带的 GitHub Copilot 集成。有关 Claude Code 的 VS Code 插件,请参阅 Claude Code——它读取 .mcp.json,而不是 .vscode/mcp.json。
如果已在本地检出此仓库,请打开准备好的 .vscode/mcp.json。
否则,请将以下内容放入你自己的 .vscode/mcp.json:
{
"servers": {
"c64bridge": {
"command": "npx",
"args": [
"-y",
"c64bridge@latest"
]
}
}
}
然后点击 c64bridge 条目上方显示的启动按钮。
现在,MCP 服务应该已启动:

有关详情,请参阅官方 VS Code MCP 服务文档。
启用 C64 Agent
服务启动后,在 VS Code 中切换到 C64 Agent。
此 Agent 已预先配置用于 Commodore 64 工作。它会引导 Copilot 使用 c64bridge 工作流处理 BASIC、6502 汇编、SID 音频、VIC-II 图形、内存检查、磁盘操作、打印、流式传输和设备控制。

可选覆盖项
你可以在 .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 专属覆盖项,例如 VICE_ARGS=-minimized、VICE_VISIBLE=false 或自定义 VICE 路径,请使用后端配置:VICE中的设置方式。
MCP 客户端配置中的环境变量
根目录 mcp.json 中记录的每个运行时环境变量都可以通过 MCP 客户端配置提供,包括 .vscode/mcp.json 中的 servers.c64bridge.env。
当环境变量对应某个 JSON 配置字段时,覆盖顺序始终如下:
- MCP 客户端配置或 Shell 中显式设置的环境变量
- 从
C64BRIDGE_CONFIG、仓库中的.c64bridge.json,然后~/.c64bridge.json加载并合并的 JSON 配置部分 - 编译到服务中的内置默认值
当环境变量没有对应的 JSON 配置项时,顺序如下:
- MCP 客户端配置或 Shell 中显式设置的环境变量
- 内置默认值
以下记录的运行时环境变量均统一遵循此规则。
示例:以最小化状态启动 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 配置文件用于后端端点,但在 VS Code 中覆盖诊断、轮询和 RAG 行为:
{
"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 中记录的每个运行时环境变量都可以在 MCP 客户端配置中设置,包括 .vscode/mcp.json 中的 servers.c64bridge.env。
服务运行时
| 变量 | 默认值 | JSON 配置键 | 说明 |
|---|---|---|---|
C64_MODE | c64u | — | 选择活动后端(c64u/U64 硬件、u2/U2 系列卡带,或 vice 模拟器) |
C64_TASK_STATE_FILE | auto | — | 覆盖用于持久化 MCP 后台任务状态的路径 |
C64BRIDGE_CONFIG | ~/.c64bridge.json | 配置路径 | 配置 JSON 的路径 |
C64BRIDGE_DIAGNOSTICS_DIR | ~/.c64bridge/diagnostics | — | 覆盖持久化 MCP 诊断文件的写入目录 |
C64BRIDGE_DISABLE_DIAGNOSTICS | 0 | — | 设为 1 可禁用持久化诊断日志记录 |
C64BRIDGE_POLL_INTERVAL_MS | 200 | — | 正常运行模式下,在程序输出验证期间两次屏幕轮询之间的间隔 |
C64BRIDGE_POLL_MAX_MS | 2000 | — | 正常运行模式下,程序输出验证超时前的最长轮询时间 |
C64BRIDGE_POLL_STABILIZE_MS | 100 | — | 成功匹配轮询结果后,在认定输出稳定前额外等待的时间 |
LOG_LEVEL | info | — | 日志记录器的详细程度(debug、info、warn、error) |
C64 Ultimate
| 变量 | 默认值 | JSON 配置键 | 说明 |
|---|---|---|---|
C64U_HOST | c64u | c64u.host | 覆盖 C64 Ultimate 主机名或 IP 地址 |
C64U_PASSWORD | c64u.networkPassword | 覆盖作为 X-Password 发送的 C64 Ultimate 网络密码 | |
C64U_PORT | 80 | c64u.port | 覆盖 C64 Ultimate REST 端口 |
U2 系列
| 变量 | 默认值 | JSON 配置键 | 说明 |
|---|---|---|---|
U2_HOST | u2.host | 当 C64_MODE=u2 时,覆盖 U2/U2+/U2+L 主机名或 IP 地址 | |
U2_PASSWORD | u2.networkPassword | 当 C64_MODE=u2 时,覆盖作为 X-Password 发送的 U2 系列网络密码 | |
U2_PORT | u2.port | 当 C64_MODE=u2 时,覆盖 U2 系列 REST 端口 |
VICE 运行时
| 变量 | 默认值 | JSON 配置键 | 描述 |
|---|---|---|---|
DISABLE_XVFB | 0 | — | 设为 1 可禁用 Xvfb 回退,仅使用当前显示器 |
FORCE_XVFB | 0 | — | 设为 1 可强制托管的 VICE 启动使用 Xvfb,即使检测到图形会话也是如此 |
VICE_ARGS | vice.args | 传递给托管的 VICE 启动进程的额外命令行参数,例如用于启动时最小化可见窗口的 -minimized | |
VICE_BINARY | x64sc | vice.exe | 用于启动托管模拟器会话和捕获音频的 VICE 二进制文件;仅当此覆盖值缺失或无效时才会自动搜索 |
VICE_DIRECTORY | 自动检测 | vice.directory | 覆盖用于查找 ROM 和 UI 资源的 VICE 资源目录;仅当此覆盖值缺失或无效时才会自动搜索 |
VICE_HOST | 127.0.0.1 | vice.host | 覆盖 VICE Binary Monitor 主机 |
VICE_PORT | 6502 | vice.port | 覆盖 VICE Binary Monitor 端口 |
VICE_PREWARM | 0 | vice.prewarm | 设为 1 可在 MCP 启动期间于后台启动或连接 VICE;默认禁用,因此 VICE 会在首次使用时延迟启动 |
VICE_VISIBLE | true | vice.visible | 为 true 时以桌面窗口启动 VICE;为 false 时使用无头模式/Xvfb 托管启动 |
VICE_WARP | 可见时为 false,无头模式时为 true | vice.warp | 为托管的 VICE 会话启用加速模式 |
VICE_XVFB_DISPLAY | :99 | — | 托管的 VICE 在 Xvfb 下启动时使用的显示编号 |
VICE 音频捕获
| 变量 | 默认值 | JSON 配置键 | 描述 |
|---|---|---|---|
VICE_LIMIT_CYCLES | 120000000 | — | VICE 生成音频时渲染的最大 CPU 周期数 |
VICE_MODE | ntsc | — | VICE 音频捕获的默认视频制式(ntsc|pal) |
VICE_RUN_TIMEOUT_MS | 10000 | — | 无头模式下 VICE 运行的超时时间,单位为毫秒 |
SID 播放
| 变量 | 默认值 | JSON 配置键 | 描述 |
|---|---|---|---|
SIDPLAY_BINARY | sidplayfp | — | 生成音频时要启动的 sidplayfp 二进制文件 |
SIDPLAY_LIMIT_CYCLES | 120000000 | — | sidplayfp 生成音频时渲染的最大 CPU 周期数 |
SIDPLAY_MODE | ntsc | — | 默认 SID 播放模式(ntsc|pal) |
SIDPLAYFP_BINARY | — | SIDPLAY_BINARY 的旧版别名(sidplayfp 可执行文件名称) |
RAG
| 变量 | 默认值 | JSON 配置键 | 描述 |
|---|---|---|---|
GITHUB_TOKEN | — | 用于通过 GitHub 可选地发现 RAG 内容的个人访问令牌 | |
RAG_BUILD_ON_START | 0 | — | 设为 1 可在服务启动时重建嵌入 |
RAG_DISCOVER_FORCE_REFRESH | 0 | — | 设为 1 可在获取外部文档时忽略缓存的发现结果 |
RAG_DOC_FILES | — | 要纳入 RAG 的额外文档,以逗号分隔 | |
RAG_EMBEDDINGS_DIR | data | — | 存放 RAG 嵌入 JSON 文件的目录 |
RAG_REINDEX_INTERVAL_MS | 0 | — | 定期重新索引的间隔,单位为毫秒(0 表示禁用) |
测试
| 变量 | 默认值 | JSON 配置键 | 描述 |
|---|---|---|---|
C64_TEST_TARGET | — | 覆盖集成测试,使其连接模拟或真实硬件(mock|real) |
Claude Code
Claude Code 作为一流的 MCP 客户端受到支持。它与其他客户端使用相同的标准启动命令,以及相同的后端配置文件和环境变量,只有发现文件不同。
Claude Code CLI — 只需一条命令即可注册已发布的服务:
claude mcp add c64bridge -- npx -y c64bridge@latest
使用 --scope user 可让所有项目都能使用它,使用 --scope project 则会在当前仓库旁写入 .mcp.json。后端选择(c64u、u2 或 vice)、主机、端口和密码均来自配置中说明的相同文件;针对各个 Shell 的覆盖值则来自运行时环境变量参考中的变量。
项目级发现 — 此仓库包含一份已提交的 .mcp.json,通过 node scripts/start.mjs 将 Claude Code 指向本地源代码。使用 claude(CLI 或 VS Code 插件)打开仓库时,Claude Code 会在首次运行时提示启用项目级服务。批准一次后,该工作区便可发现 c64_* 工具。
Claude Code VS Code 插件 — 该插件读取与 CLI 相同的 .mcp.json 和用户级 claude mcp add 注册信息。除安装插件并批准项目服务提示外,无需额外设置。现有的 .vscode/mcp.json 由 GitHub Copilot 读取,而非 Claude Code;这两个文件面向使用不同配置架构的不同客户端,因此可以共存且互不冲突。
验证是否正常 — 注册后,运行 claude mcp list(CLI)或打开 MCP 面板(插件),并查找 c64bridge。然后向 Claude Code 提出类似 “使用 vice:编写一个小型 BASIC 程序,清除屏幕并打印 HELLO CLAUDE” 的请求——它应会直接调用 c64_select_backend 和 c64_program。如果未显示工具,请确认 PATH 中有 Node 24+,已按要求的作用域批准服务,并且后端可根据配置一节正常访问。
示例工作流
使用 ChatGPT 和 VS Code 创作一首儿童歌曲:

然后为它绘制 PETSCII 艺术:

以下是预期工作流的示例:
- 让 MCP 客户端生成或改进面向 C64 的内容。
- 使用
c64_program、c64_graphics和c64_sound等分组工具执行内容。 - 通过读取屏幕、捕获帧、检查内存或分析音频来验证结果。
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(已发布的软件包)。
文档
- DeepWiki - 架构和实现概览
- doc/developer.md - 开发工作流和 RAG 详情
- data/context/bootstrap.md - 注入提示词前的入门指南
- doc/c64u/c64-openapi.yaml - REST 接口(OpenAPI 3.1)
- AGENTS.md - 面向大模型的快速设置、用法和角色说明
静态 MCP 接口
此仓库在 ./mcp 文件夹中包含一份 MCP 服务接口的自动生成静态镜像。
Agent 无需连接服务即可检查可用的工具、资源、提示词和架构。
MCP API 参考
此 MCP 服务提供 17 个工具、27 个资源和 10 个提示词,用于控制 Commodore 64。
工具
地址范围约定:address + length 表示起始地址加字节数;startAddress + endAddress 表示包含边界的范围。
c64_batch
在单个请求中执行多个 c64bridge 工具调用,降低多步骤工作流的延迟。
未定义任何操作。
c64_config
用于配置读取和写入、诊断及快照的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
batch_update | 在单个请求中应用多项配置更新。 | — | — | ✅ | ✅ | ✅ |
diff | 将当前配置与快照进行比较。 | path | — | ✅ | ✅ | ✅ |
get | 读取配置类别或特定项目。 | category | item | ✅ | ✅ | ✅ |
info | 获取 Ultimate 硬件信息和状态。 | — | — | ✅ | ✅ | ✅ |
list | 列出固件报告的配置类别。 | — | — | ✅ | ✅ | ✅ |
load_flash | 从闪存存储加载配置。 | — | — | ✅ | ✅ | |
read_debugreg | 读取 Ultimate 调试寄存器($D7FF)。 | — | — | ✅ | ||
reset_defaults | 将固件配置重置为出厂默认值。 | — | — | ✅ | ✅ | |
restore | 从快照文件恢复配置。 | path | applyToFlash=false | ✅ | ✅ | ✅ |
save_flash | 将当前配置保存到闪存存储。 | — | — | ✅ | ✅ | |
set | 在所选类别中写入配置值。 | category、item、value | — | ✅ | ✅ | ✅ |
shuffle | 搜索 PRG/CRT 文件,并运行每个文件,可选择截取屏幕画面。 | — | root="/"、extensions=["prg","crt"]、durationMs=5000、captureScreen=true、maxPrograms=10、outputPath、resetDelayMs=100 | ✅ | ✅ | |
snapshot | 将配置快照保存到磁盘,以便日后恢复或比较。 | path | — | ✅ | ✅ | ✅ |
version | 获取固件版本详情。 | — | — | ✅ | ✅ | ✅ |
write_debugreg | 向 Ultimate 调试寄存器($D7FF)写入十六进制值。 | value | — | ✅ |
c64_debug
用于执行 VICE 调试器操作(断点、寄存器、单步执行)的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
continue_execution | 退出 Binary Monitor 并恢复 CPU 执行(BM 0xAA Exit)。 | — | — | ✅ | ||
create_checkpoint | 在 VICE 中创建新的检查点(断点)。 | address | endAddress、stopOnHit=true、enabled=true、temporary=false、label、operations、memspace | ✅ | ||
delete_checkpoint | 按 ID 移除检查点。 | id | — | ✅ | ||
get_checkpoint | 按 ID 获取单个检查点。 | id | — | ✅ | ||
get_monitor_state | 读取 CPU 寄存器并返回当前监视器状态。 | — | memspace | ✅ | ||
get_registers | 读取寄存器值,可按名称或 ID 筛选。 | — | memspace、registers | ✅ | ||
list_checkpoints | 列出所有活动的 VICE 检查点(断点)。 | — | — | ✅ | ||
list_registers | 列出可用寄存器(元数据)。 | — | memspace | ✅ | ||
nuclear_reset | 终止并重新启动 VICE 进程(仅限受管理的实例)。 | — | — | ✅ | ||
set_condition | 为检查点附加条件表达式。 | id、expression | — | ✅ | ||
set_registers | 写入寄存器值。 | writes | memspace | ✅ | ||
step | 对 CPU 执行单步操作。 | — | count=1、mode | ✅ | ||
step_return | 继续执行,直到当前例程返回。 | — | — | ✅ | ||
toggle_checkpoint | 按 ID 启用或禁用检查点。 | id、enabled | — | ✅ | ||
wait_for_state | 轮询 CPU 寄存器,直到 PC 等于 expectedPC 或超时。 | — | expectedPC、timeoutMs=5000、pollMs=100 | ✅ |
c64_disk
用于磁盘挂载、列表、映像创建和程序发现的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
create_image | 创建指定格式的空白磁盘映像。 | format, path | diskname, tracks | ✅ | ✅ | |
file_info | 检查 Ultimate 文件系统中文件的元数据。 | path | — | ✅ | ✅ | |
find_and_run | 按名称子串搜索 PRG/CRT,并运行第一个匹配项。 | nameContains | root="/", extensions, caseInsensitive=true, sort="discovered", waitMs=0, captureCandidates=10 | ✅ | ✅ | |
list_drives | 列出 Ultimate 驱动器槽位及其已挂载的映像。 | — | — | ✅ | ✅ | ✅ |
mount | 挂载磁盘映像,可选择验证并重试。支持验证。 | drive, image | type, attachmentMode, driveMode, verify=false, powerOnIfNeeded=true, resetAfterMount=true, maxRetries=2, retryDelayMs=500 | ✅ | ✅ | ✅ |
unmount | 从 Ultimate 驱动器槽位中移除已挂载的映像。 | drive | — | ✅ | ✅ |
c64_drive
用于驱动器电源、模式、重置和 ROM 操作的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
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
用于精灵图/字符集提取、内存转储、文件系统统计和固件健康检查的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
charset | 在 RAM 中定位并提取 2KB 字符集。 | — | address, scanRange="common", outputPath, pauseDuringRead=true, minNonEmptyChars=32, minEntropy=0.3 | ✅ | ✅ | ✅ |
firmware_health | 执行固件就绪状态检查并报告状态指标。 | — | — | ✅ | ✅ | ✅ |
fs_stats | 遍历文件系统,并按扩展名汇总数量/字节数。 | — | root="/", extensions, includeContainers=true, maxSamplesPerExtension=3 | ✅ | ✅ | |
memory_dump | 将 RAM 范围转储到十六进制或二进制文件,并附带清单元数据。 | address, length, outputPath | format="hex", chunkSize=512, pauseDuringRead=true, retries=1 | ✅ | ✅ | ✅ |
sprites | 扫描 RAM 中的精灵图,并可选择导出 .spr 文件。 | address, length | stride=64, maxSprites=16, minNonZeroRows=4, minSetBits=12, includeBase64=true, outputDir, pauseDuringRead=true | ✅ | ✅ | ✅ |
c64_graphics
用于帧捕获和图形渲染工作流的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
capture_frame | 从活动后端捕获一个或多个完整视频帧。 | — | count=1、includePixels=true、encoding="base64" | ✅ | ✅ | |
get_display_state | 读取 VIC-II 和 CIA2 寄存器,以确定当前图形模式和内存布局。C64U/U64、U2 系列硬件和 VICE 使用相同的共享内存路径,因此响应结构相同。 | — | — | ✅ | ✅ | ✅ |
render_bitmap | 导入图像文件,将其转换为 VIC-II 位图内存,写入 RAM 并显示。 | imagePath、format | bitmapAddress=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 文本,并可选择边框和背景颜色。 | text | borderColor、backgroundColor | ✅ | ✅ | ✅ |
render_sprite | 通过直接写入内存并修补 VIC-II 寄存器,在指定位置以指定颜色显示提供的 63 字节精灵数据。 | sprite | index=0、x=100、y=100、color=1、multicolour=false | ✅ | ✅ | ✅ |
c64_input
跨平台 PETSCII 输入,以及原生 Ultimate 键盘和操纵杆事件。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
joystick | 模拟操纵杆输入。在 C64U/U64 上使用 machine:input。在 VICE 上,按下时会连接 VICE 的 I/O 模拟 joyport 设备;该设备还会将 CIA 第 5–7 线拉低,因此端口 1 会产生伪按键(例如 SHIFT+C=),而端口 2 的上方向读取值为 $1E,而非 $7E。在 VICE 上建议使用端口 2 并测试位 0–4。 | port、controls、action | durationMs=80 | ✅ | ✅ | |
key | 点击单个按键,或按住一段时间。 | key | durationMs=0、count=1 | ✅ | ✅ | ✅ |
keyboard | 通过 machine:input 发送实体 C64 键盘矩阵事件(需要提供该功能的 C64U 固件版本,或 U64 3.15+)。 | inputs、transition | — | ✅ | ||
release_all | 释放通过 machine:input 注入的所有按键和操纵杆控制(需要提供该功能的 C64U 固件版本,或 U64 3.15+)。 | — | — | ✅ | ||
state | 读取通过 machine:input 按住的按键和操纵杆控制(需要提供该功能的 C64U 固件版本,或 U64 3.15+)。 | — | — | ✅ | ||
write_text | 将文本字符串发送到键盘缓冲区,并展开 PETSCII 令牌。 | text | delayMs=0 | ✅ | ✅ | ✅ |
c64_memory
用于内存 I/O、屏幕读取和屏幕轮询的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
compare_memory | 逐字节比较两个内存区域并报告差异。 | address1、address2、length | maxDiffs=10 | ✅ | ✅ | ✅ |
copy_memory | 将一个 RAM 区域复制到另一个地址。 | source、dest、length | — | ✅ | ✅ | ✅ |
disassemble | 将一段内存反汇编为带注释的 6502/6510 指令,包括未公开操作码的规范名称。若有 .vs 文件,则会应用符号注释。适用于 C64U/U64、U2 系列硬件和 VICE。 | address | length=64、instructionCount | ✅ | ✅ | ✅ |
fill_memory | 使用重复字节模式填充一段内存范围。 | address、length、pattern | — | ✅ | ✅ | ✅ |
read | 读取一段字节并返回带地址元数据的十六进制转储。 | address | length=256 | ✅ | ✅ | ✅ |
read_screen | 将当前 40x25 文本屏幕转换为 ASCII 并返回。 | — | — | ✅ | ✅ | ✅ |
save_memory | 将一段内存范围转储到本地文件,可选择包含 PRG 加载地址头。 | startAddress、endAddress、filePath | asPrg=true | ✅ | ✅ | ✅ |
search_memory | 在一段内存范围内搜索字节模式并返回匹配地址。 | startAddress、endAddress、pattern | maxResults=10 | ✅ | ✅ | ✅ |
wait_for_text | 轮询屏幕,直到出现子字符串或正则表达式,或超时。 | pattern | isRegex=false、caseInsensitive=true、timeoutMs=3000、intervalMs=100 | ✅ | ✅ | ✅ |
write | 将十六进制字节序列写入 RAM。支持验证。 | address、bytes | verify=false、expected、mask、abortOnMismatch=true | ✅ | ✅ | ✅ |
c64_printer
用于 Commodore 和 Epson 打印辅助功能的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
define_chars | 定义自定义打印机字符(Commodore DLL 模式)。 | firstChar、chars | secondaryAddress | ✅ | ✅ | |
print_bitmap | 通过 Commodore(BIM)或 Epson ESC/P 工作流打印位图行。 | printer="commodore"、columns | repeats、useSubRepeat、secondaryAddress、ensureMsb=true、mode、density、timesPerLine | ✅ | ✅ | |
print_text | 生成可将文本打印到设备 4 的 BASIC 程序。 | text | target="commodore"、secondaryAddress、formFeed=false | ✅ | ✅ |
c64_program
用于程序上传、执行和批处理工作流的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
batch_run | 运行多个 PRG/CRT 程序并在运行后进行断言。 | programs | continueOnError=false、durationMs=2000、outputPath、resetDelayMs=100 | ✅ | ✅ | ✅ |
bundle_run | 将屏幕、内存和调试寄存器捕获到一个制品包中。 | runId、outputPath | captureScreen=true、memoryRanges、captureDebugReg | ✅ | ✅ | ✅ |
cross_platform_greeting | 在一个或多个已配置的后端上显示平台定制问候语、捕获屏幕截图并验证结果。支持验证。 | — | platforms、messageTemplate="HAVE A GREAT DAY, {PLATFORM}!"、verify=true、captureScreenshot=true、outputPath、restoreActiveBackend=true、timeoutMs=1500、pollIntervalMs=100 | ✅ | ✅ | ✅ |
load_prg | 从 Ultimate 存储加载 PRG,但不执行。 | path | symbolsFile | ✅ | ✅ | |
run_crt | 挂载并运行 CRT 卡带映像。 | path | — | ✅ | ✅ | |
run_prg | 在 C64U/U64 或 U2 系列硬件上从 Ultimate 可见的存储加载并执行 PRG,或在 VICE 上从主机本地路径加载并执行。 | path | symbolsFile | ✅ | ✅ | ✅ |
upload_run_asm | 汇编 6502/6510 源代码、上传 PRG 并执行。支持验证。 | program | verify=false | ✅ | ✅ | ✅ |
upload_run_basic | 上传 Commodore BASIC v2 源代码并立即执行。支持验证。 | program | verify=false | ✅ | ✅ | ✅ |
c64_rag
用于 BASIC 和汇编 RAG 查询的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
asm | 从本地知识库检索 6502/6510 汇编参考资料。 | q | k=3 | ✅ | ✅ | ✅ |
basic | 从本地知识库检索 BASIC 参考资料和代码片段。 | q | k=3 | ✅ | ✅ | ✅ |
c64_select_backend
在 C64U/U64 硬件、U2 系列卡带和 VICE 模拟器之间运行时切换活动后端。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
select | 切换活动运行时后端,无需重启 MCP 服务。 | backend | — | ✅ | ✅ | ✅ |
c64_sound
用于 SID 控制、播放、作曲和分析工作流的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
analyze | 请求验证时自动分析 SID 播放。 | request | durationSeconds、expectedSidwave | ✅ | ✅ | ✅ |
capture_samples | 从 C64 Ultimate 音频 UDP 流捕获原始立体声 PCM 样本。 | — | count=256、encoding="base64" | ✅ | ||
compile_play | 编译 SIDWAVE 或 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 | 触发 SID 声部,并可配置波形、ADSR 和音高。 | — | voice=1、note、frequencyHz、system="PAL"、waveform="pulse"、pulseWidth=2048、attack=1、decay=1、sustain=15、release=3 | ✅ | ✅ | ✅ |
pipeline | 编译 SIDWAVE 乐谱、播放并分析录音。支持验证。 | — | 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_file | 通过 Ultimate SID 播放器播放 MOD 音轨模块。 | path | — | ✅ | ✅ | |
play_preset | 编译并播放内置 SID 预设,例如贝多芬的 Für Elise。支持验证。 | — | preset="fuer_elise"、platforms、verify=true、analysisDurationSeconds=4、waitBeforeCaptureMs=400、restoreActiveBackend=true | ✅ | ✅ | ✅ |
play_sid_file | 播放存储在 Ultimate 文件系统中的 SID 文件。 | path | songnr | ✅ | ✅ | |
record_analyze | 录制固定时长的音频并返回 SID 分析指标。在 c64u 上使用 Ultimate 音频流,在其他后端上使用主机麦克风。 | durationSeconds | expectedSidwave | ✅ | ✅ | ✅ |
reset | 对 SID 寄存器执行软重置或硬重置,以清除异常。 | — | hard=false | ✅ | ✅ | ✅ |
set_volume | 设置 SID 主音量寄存器 $D418(0-15)。 | volume | — | ✅ | ✅ | ✅ |
silence_all | 静音所有 SID 声部,可选择进行音频验证。支持验证。 | — | verify=false | ✅ | ✅ | ✅ |
c64_stream
用于启动和停止 Ultimate 流会话的分组入口。
| 操作 | 描述 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
start | 启动向 host:port 目标传输的 Ultimate 流会话。 | stream、target | — | ✅ | ||
stop | 停止正在运行的 Ultimate 流会话。 | stream | — | ✅ |
c64_system
用于电源、重置、菜单和后台任务控制的分组入口。
| 操作 | 说明 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
list_tasks | 列出已知后台任务及其状态元数据。 | — | — | ✅ | ✅ | ✅ |
menu | 切换 Ultimate 菜单按钮以进行导航。 | — | — | ✅ | ✅ | |
pause | 暂停机器,直到恢复运行。 | — | — | ✅ | ✅ | |
performance_report | 汇总当前或最新 MCP 会话中的诊断跨度和工具延迟。 | — | scope="current"、includeTimeline=true、maxEntries=25 | ✅ | ✅ | ✅ |
power_cycle | 将活动后端恢复到全新状态。C64U/U64 工具菜单验证需要 machine:menu_screen(提供该功能的 C64U 固件版本,或 U64 3.15+);U2 系列通过 REST 重启。 | — | — | ✅ | ✅ | ✅ |
poweroff | 关闭 C64U/U64,或退出 VICE。U2 系列硬件无法关机。 | — | — | ✅ | ✅ | |
read_menu_screen | 通过 machine:menu_screen 读取活动 Ultimate 菜单的原始字符和颜色矩阵(提供该功能的 C64U 固件版本,或 U64/U2 3.15+)。 | — | — | ✅ | ✅ | |
reboot | 触发固件重启,以从故障中恢复。 | — | — | ✅ | ✅ | ✅ |
reset | 执行软重置,不切断电源。 | — | — | ✅ | ✅ | ✅ |
resume | 暂停后恢复 CPU 执行。 | — | — | ✅ | ✅ | |
start_task | 启动按间隔运行的指定后台任务。 | name、operation | arguments={}、intervalMs=1000、maxIterations | ✅ | ✅ | ✅ |
stop_all_tasks | 停止所有正在运行的后台任务并持久化状态。 | — | — | ✅ | ✅ | ✅ |
stop_task | 停止指定的后台任务并清除其计时器。 | name | — | ✅ | ✅ | ✅ |
c64_vice
用于读取和更新选定 VICE 资源的分组入口。
| 操作 | 说明 | 必需输入 | 可选输入 | C64U | U2 | VICE |
|---|---|---|---|---|---|---|
resource_get | 读取 VICE 配置资源(仅限安全前缀)。 | name | — | ✅ | ||
resource_set | 写入 VICE 配置资源(仅限安全前缀)。 | name、value | — | ✅ |
资源
| 名称 | 概要 |
|---|---|
c64://guide/index | 说明如何使用每个知识包,以及何时查阅。 |
c64://guide/bootstrap | 介绍在 C64 上进行安全自动化、验证和回滚的分步规则。 |
c64://guide/fast-paths | 精简的路由指南,介绍单次调用演示、后端切换,以及何时优先采用编排而非手动组合工具。 |
c64://vice/binary-monitor-spec | 介绍影响所有基于 VICE 的操作的传输帧格式、单客户端限制、命令语义和监视器副作用。 |
c64://basic/spec | 介绍 BASIC v2 的令牌定义、语法规则和设备 I/O 指南。 |
c64://basic/pitfalls | 速查指南,涵盖引号处理、行长、令牌化、变量名和其他 BASIC 陷阱。 |
c64://assembly/6510-spec | 介绍 6510 CPU 的官方操作码矩阵、寻址模式和零页策略。 |
c64://sound/sid/spec | 介绍富有表现力的 SID 播放所需的寄存器映射、波形行为和 ADSR 包络。 |
c64://sound/sidwave/spec | 定义 SID 作曲工作流使用的 SIDWAVE 交换格式。 |
c64://sound/sid/file-format | 介绍导入音乐的 PSID/RSID 标头、元数据块和兼容性说明。 |
c64://sound/sid/best-practices | 汇总悦耳 SID 音乐所用的可靠波形、ADSR 预设、乐句设计和验证工作流。 |
c64://graphics/vic/spec | 介绍 VIC-II 上的光栅时序、精灵控制、颜色 RAM 和位图模式。 |
c64://graphics/character-set | 介绍将 PETSCII 代码映射到屏幕代码、字形和键盘输入的字符代码表。 |
c64://graphics/petscii/style-guide | 介绍用于创作艺术且易读的 PETSCII 显示内容的调色板、可读性预设、抖动模式和最佳实践。 |
c64://graphics/sprite-charset/best-practices | 介绍硬件加速图形的精灵与字符集工作流、内存布局、VIC-II 配置、常见陷阱和可靠技巧。 |
c64://memory/map | 按页面介绍 64 KB 地址空间中的硬件、ROM 和 RAM 区域。 |
c64://memory/zero-page-and-workspace | 介绍零页变量、BASIC 指针和 KERNAL 工作区地址。 |
c64://basic/rom-routines | 映射 BASIC ROM 的关键位置、可复用的解释器例程、数值辅助例程、字符串辅助例程,以及 C64 专用的 BASIC 续接入口。 |
c64://kernal/rom-routines | 映射 KERNAL ROM 向量、跳转表条目、内部例程、串行/磁带/屏幕服务和重置处理程序。 |
c64://io/spec | 介绍 VIC-II、SID、CIA 和系统控制寄存器,包括地址范围和使用说明。 |
c64://io/cia/spec | 详细介绍 CIA 1/2 寄存器、计时器、中断和键盘矩阵布局。 |
c64://printer/spec | 介绍打印机的设备设置、控制码和 Ultimate 64 集成。 |
c64://printer/commodore/text | 介绍 Commodore MPS 文本输出的字符集、控制码和格式设置。 |
c64://printer/commodore/bitmap | 详细介绍 MPS 位图打印的位图模式、图形命令和数据布局。 |
c64://printer/epson/text | 列出 Epson FX 文本输出的 ESC/P 控制码和格式设置建议。 |
c64://printer/epson/bitmap | 介绍 Epson 位图作业的位图模式、密度选项和数据打包方式。 |
c64://printer/prompt-guide | 可复用的提示词模板,通过 MCP 服务处理复杂打印作业。 |
提示词
| 名称 | 描述 |
|---|---|
assembly-program | 将 6502/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-music | 将 SID 播放和作曲工作路由到规范 SID 技能。 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

