MCP-openMSX
_“编排一部二进制歌剧,由AI指挥,MCP解释,openMSX扮演8位天后。”_
 
](https://github.com/nataliapc/mcp-openmsx/stargazers/)\ ](https://www.npmjs.com/package/@nataliapc/mcp-openmsx?activeTab=versions) ](<>)
该服务器通过标准化的MCP协议为MSX软件开发、测试和自动化提供了全面的工具。
🎁🎁 _如果你觉得这个项目有用,请考虑通过以下方式捐款 PAYPAL链接 或 _
______________________________________________________________________
目录
- 快速安装 VSCode - 基本安装 克劳德桌面版 - 环境变量
项目概述
该项目通过提供以下功能,在现代人工智能辅助开发(如GitHub Copilot、Claude Desktop)和逆向计算(MSX系统)之间架起了一座桥梁:
- 模拟器控制:启动、配置、管理openMSX实例和回放时间线。
- 媒体管理:处理ROM盒式磁带、软盘和盒式磁带。
- 基本程序设计支持:促进BASIC语言编程和开发的工具。
- 调试工具:完整的CPU调试,包括断点、内存检查和步骤执行。
- 视频控制:VDP寄存器操作和屏幕截图。
- 内存操作:读/写RAM、VRAM和I/O端口访问。
- 自动化:键盘输入模拟和保存管理。
- 矢量数据库集成:使用MSX资源查询嵌入式矢量数据库以获得开发支持。
- 混合模式:此MCP服务器支持混合访问模式(_工作室_ 和 _超文本传输协议_ 运输)。
建筑
flowchart TB
%%{init: {'flowchart': {'curve':'monotoneX' }}}%%
subgraph yourComputerGroup[" "]
HOST["Your AI dev companion
(MCP Client support)"]
EMU["openMSX emulator
(local instance)"]
subgraph mcpGroup["**mcp-openmsx**"]
MCP["MCP Server
stdio / http"]
TOOLS["MCP Tools"]
VECTORDB[("Embeddings RAG
(Vector Database)")]
RESOURCES["MCP Resources"]
LOCALDATA["Local data
(inner documentation)"]
end
EXTDATA["External data
(webpages)"]
HOST MCP
MCP TOOLS & RESOURCES
TOOLS VECTORDB
TOOLS EMU
RESOURCES EXTDATA
RESOURCES LOCALDATA
end
HOST@{ shape: rounded }
MCP@{ shape: rounded }
EMU@{ shape: rounded }
LOCALDATA@{ shape: docs }
EXTDATA@{ shape: docs }
style yourComputerGroup color:#fff,fill:#4444,text-align:left
style mcpGroup color:#fff,fill:#4444
style HOST color:#000000,fill:#BBDEFB,stroke-width:4px,stroke-dasharray:0
style MCP color:#000000,fill:#FFF9C4
style EMU color:#FFFFFF,fill:#0000FF,stroke-width:4px,stroke-dasharray:0MCP服务器将Copilot AI的高级自然语言命令翻译成 TCL 控制命令 openMSX,实现自动化MSX软件测试和调试。
可用的MCP工具
仿真器控制工具
emu_control:控制openMSX仿真器: _launch,close,powerOn,powerOff,reset,getEmulatorSpeed,setEmulatorSpeed,machineList,extensionList,wait_.emu_replay:控制仿真时间线: _start,stop,status,goBack,absoluteGoto,advanceFrame,reverseFrame,truncate,saveReplay,loadReplay_.emu_info:获取有关当前仿真机器的信息: _getStatus,getSlotsMap,getIOPortsMap_.emu_media:管理ROM、磁盘和磁带介质: _tapeInsert,tapeRewind,tapeEject,romInsert,romEject,diskInsert,diskInsertFolder,diskEject_.emu_vdp:管理VDP(视频显示处理器): _getPalette,getRegisters,getRegisterValue,setRegisterValue,screenGetMode,screenGetFullText_.
编程工具
basic_programming:基本工具: _isBasicAvailable,newProgram,runProgram,setProgram,getFullProgram,getFullProgramAdvanced,listProgramLines,deleteProgramLines_.
调试工具
debug_run:控制执行: _break,isBreaked,continue,stepIn,stepOut,stepOver,stepBack,runTo_.debug_cpu:读/写CPU寄存器、CPU信息、堆栈堆和反汇编代码: _getCpuRegisters,getRegister,setRegister,getStackPile,disassemble,getActiveCpu_.debug_memory:RAM内存操作: _selectedSlots,getBlock,readByte,readWord,writeByte,writeWord,searchBytes_.debug_vram:VRAM操作: _getBlock,readByte,writeByte,searchBytes_.debug_breakpoints:断点管理: _create,remove,list_.
自动化工具
emu_keyboard:将文本或组合键发送到模拟器: _sendText,sendKeyCombo_.emu_savestates:保存和恢复机器状态: _load,save,list_.screen_shot:捕获模拟器屏幕: _as_image,to_file_.screen_dump:将屏幕数据导出为BASIC BSAVE指令。msxdocs_resource_get:检索不支持MCP资源的MCP客户端的MCP资源。
文档工具
vector_db_query:查询Vector DB资源以获取有关MSX系统、墨盒和其他开发资源的信息。msxdocs_resource_get:检索不支持MCP资源的MCP客户端的MCP资源。
可用MCP资源
什么是MCP资源?
MCP资源是扩展MCP服务器功能的结构化数据集、文档和辅助文件。它们提供了机器定义、扩展列表、媒体模板和编程示例等基本信息,使MCP openMSX环境中的MSX软件能够实现更强大的自动化、测试和开发工作流程。
可用资源
有60多种可用资源,其中一些直接包含在MCP中,另一些在查询时可通过下载访问。它们分为以下几类:
Processors(Z80,R800)Bios(生物ROM、DOS ROM、SUBROM等)SystemAudioVideoProgramming(ASM,基本,…)MSX-DOSMSX-UNAPIMSX BASIC
书籍和手册:
MSX2 Technical HandbookThe MSX Red BookSDCC Compiler
资源来源:
感谢这些资源的作者,他们根据各种许可证提供了这些资源。此MCP服务器包括其中一些资源,以增强开发体验。
\[!重要\]\ 这些资源的权利属于其各自的作者,并根据他们定义的许可证进行分发。
快速开始
您可以通过以下基本方式使用此MCP服务器 .
使用VSCode快速安装

在VSCode中安装MCP服务器的步骤:
- 安装
- (
npx命令必须在PATH中可用)。 - 安装反MCP服务器:
- 使用 安装MCP服务器 单击上面的按钮,在VSCode设置中安装MCP服务器。 - 或添加到您的 _工作区文件夹_ 名为的文件 .vscode/mcp.json 下面是json配置。
STDIO模式(推荐)
{
"servers": {
"mcp-openmsx": {
"command": "npx",
"args": ["@nataliapc/mcp-openmsx"],
"env": {
"OPENMSX_SHARE_DIR": "C:\\the\\location\\of\\your\\openmsx\\share\\folder"
}
}
}
}\[!注意\]\ 环境变量是可选的。根据需要进行自定义。
流式HTTP模式(更高级)
{
"servers": {
"mcp-openmsx": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": { }
}
}
}\[!注意\]\ MCP HTTP服务器必须在同一台计算机或另一台计算机上独立运行(make run_http).使用Claude Desktop进行基本安装
跟随 这些指示 访问克劳德的 claude_desktop_config.json 文件。
编辑它以包含以下JSON条目:
{
"mcpServers": {
"mcp-openmsx": {
"command": "npx",
"args": ["@nataliapc/mcp-openmsx"],
"env": {
"OPENMSX_SHARE_DIR": "C:\\the\\location\\of\\your\\openmsx\\share\\folder"
}
}
}
}\[!注意\]\ 环境变量是可选的。根据需要进行自定义。
环境变量
| 变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
OPENMSX_EXECUTABLE | openMSX可执行文件的路径或命令 | 自动检测到: openmsx (Linux), /Applications/openMSX.app/Contents/MacOS/openmsx (macOS), openmsx.exe (Windows) | /usr/local/bin/openmsx 或 C:\Program Files\openMSX\openmsx.exe |
OPENMSX_SHARE_DIR | 包含openMSX数据文件(机器、扩展名等)的目录 | 取决于系统 | /home/myuser/.openmsx/share |
OPENMSX_SCREENSHOT_DIR | 保存屏幕截图的目录 | openmsx的默认目录 | /myproject/screenshots |
OPENMSX_SCREENDUMP_DIR | 保存屏幕转储的目录 | openmsx的默认目录 | /myproject/screendumps |
OPENMSX_REPLAYS_DIR | 保存重播文件的目录 | openmsx的默认目录 | /myproject/replays |
MCP_TRANSPORT | 运输方式(stdio 或 http) | stdio | http |
MCP_HTTP_PORT | HTTP传输模式的端口号 | 3000 | 8080 |
MCP_ALLOWED_ORIGINS | HTTP传输允许的源列表,以逗号分隔 | 所有允许的源为空 | http://localhost,http://mydomain.com |
高级手动使用
\[!重要\]\ 使用MCP服务器不需要这样做,但如果要手动安装,请按照以下步骤操作。
MCP服务器在Linux、macOS和Windows上运行。从源代码构建需要Node.js>=18和TypeScript。
手动安装
npm install -g @nataliapc/mcp-openmsx手动设置环境变量
设置可选环境变量以自定义服务器:
export OPENMSX_EXECUTABLE="openmsx"
export OPENMSX_SHARE_DIR="/usr/share/openmsx"
export OPENMSX_SCREENSHOT_DIR="/my_project/screenshots"
export OPENMSX_SCREENDUMP_DIR="/my_project/screendumps"
export OPENMSX_REPLAYS_DIR="/my_project/replays"
export MCP_HTTP_PORT=3000
export MCP_ALLOWED_ORIGINS="http://localhost,http://mydomain.com"作为MCP服务器(stdio)
mcp-openmsx作为HTTP服务器
MCP_TRANSPORT=http mcp-openmsx
# or
mcp-openmsx http发展
\[!重要\]\ 使用MCP服务器不需要这样做,但如果您想贡献或修改代码,请按照以下步骤操作。
构建的先决条件
- Node.js>=18.0.0
- TypeScript
- 已安装openMSX模拟器
建筑
git clone https://github.com/nataliapc/mcp-openmsx.git
cd mcp-openmsx/mcp-server
npm install
npm run build在发展中奔跑
npm run dev许可证
GPL2许可证-请参阅 许可证 文件以获取详细信息。
支持
如果您需要帮助,或有任何问题或建议,请在 页面或查看项目讨论。
贡献
欢迎投稿!请随时提交拉取请求。
更多的明星!
请给我们一颗星 如果你喜欢这个项目。

明星历史
______________________________________________________________________
