VICE Next MCP

VICE Next MCP

Enables interaction with VICE emulators for Commodore systems through binary monitor protocol, supporting keyboard matrix injection and IEC observers for targets like C64, VIC-20, etc.

Category
访问服务器

README

VICE Next MCP

See MANUAL.md for the publication manual, protocol model, and instrumented-capability rules. This project is GPLv2-or-later; see COPYING.

Keyboard matrix injection covers C64/C128, VIC-20, Plus/4/C16, PET, CBM-II, CBM 5x0, C64DTV, and SCPU64 targets. IEC observers cover C64, C64DTV, Plus/4, and VIC-20; PET is explicitly excluded.

Experimental Wave 2 transport and MCP schema with supervised lifecycle and batch execution. Hardware/protocol evidence remains separately gated.

Install and quick start

Python 3.11+ is required. From a clean checkout:

py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install -e .
py -m pytest

Set the appropriate VICE executable (x64sc, x128, xvic, xplus4, or xpet) from the official SDL2 VICE 3.10 Windows release. ProcessController.validate() enforces that the executable matches c64 (x64sc) or c128 (x128), and launches the binary monitor on an automatically reserved loopback port.

The current MCP surface is constructed with McpServer(resolver). A resolver returns an Instance (instance id, generation, lease token, capabilities and a ViceTransport). Call initialize, then tools/list/tools/call; each call must include operation_id, target and deadline_ms.

Example Codex MCP configuration (adapt the working directory as needed):

{"mcpServers":{"vice-next":{"command":"py","args":["-m","vice_next_mcp.server"]}}}

The package provides a supervised launcher and batch CLI. Run one live instance with py examples/single_smoke.py, or run a JSON matrix:

vice-next batch --cases examples/cases.json --workers 2 --base-port 6510

Use VICE_MCP_BASE_PORT=0 (or omit --base-port) for ephemeral ports. Each case receives a stable id, a fresh artifact directory and a serial reproduction hint in results.json.

Experimental replacement for the embedded VICE MCP build. This project keeps the existing vice-mcp installation untouched and uses VICE's version-2 binary monitor as the control boundary.

Evidence for the replacement

  • Official SDL2 VICE 3.10 completed 1,000 native-monitor transactions with no failures at 15,630 transactions/second.
  • The MCP-packaged VICE 3.10 completed the same direct test with no failures at 10,709 transactions/second.
  • The packaged executable produced a Windows null-read application error when invoked through an ordinary direct/version-probing path.
  • MCP snapshot restore, trace-file creation, and drive-memory extraction have independently produced missing or contradictory evidence.

The emulator's native monitor is therefore the reference transport. A future MCP adapter should translate MCP calls into binary-monitor requests and must not access VICE internals from the HTTP server thread.

Runtime

The validated runtime is official SDL2VICE-3.10-win64.zip, release 3.10.0, from VICE-Team/svn-mirror. The runtime is deliberately not checked into this folder. Set VICE_X64SC to its x64sc.exe path.

Test

From the multi repository:

py -m tests.vice_direct_reliability --vice $env:VICE_X64SC --samples 500

The reusable protocol client is multi/tests/vice_binary_monitor.py.

MCP adapter acceptance criteria

  1. 10,000 mixed main/drive reads with zero transport errors.
  2. Snapshot round trips reproduce main and every enabled drive's memory.
  3. Trace start either creates a readable file or returns a hard error.
  4. Every response includes its target memspace and paused/running state.
  5. No modal Windows error boxes; child crashes become structured MCP errors.
  6. Communication experiments must produce the same bytes through direct and MCP paths before MCP results are accepted as evidence.

CPU stepping

ice.step.instruction and ice.step.over accept a bounded count (1-100000). Both issue VICE binary-monitor command 0x71 once per instruction and leave the monitor paused. The primitive is CPU-neutral and works for 6502-family machines and the C128 Z80. VICE's binary monitor has no distinct source-level ext command, so step.over is intentionally instruction stepping with explicit evidence.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选