Token导航 LogoToken导航TokenDH.com
Go Zork logo
运维云端stdio官方级别未说明来源级核验

Go Zork

MCP Server

一个用Go编写的Z-Machine解释器,用于运行经典的Infocom文本冒险游戏,提供命令行、浏览器UI和MCP服务器三种前端。

工具数

57

提示词数

0

GitHub Stars

0

资源数

0
GoClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

scottmbaker

提供方

scottmbaker

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -it smbaker/go-zork # play interactively

详细介绍

去佐克

用Go编写的Z-Machine解释器,运行经典的Infocom文本冒险游戏。带有三个前端:命令行播放器、基于浏览器的web UI和允许AI代理自主玩游戏的MCP服务器。

斯科特·贝克,https://github.com/scottmbaker/

基于 MojoZork 的 Ryan C.Gordon。

仅支持Z-Machine版本3的故事文件。佐克1(zork1.dat)包括在内。
AI工具(Claude Code、Google Antigravity、Microsoft Copilot)已被用于执行该项目中的一些任务。

______________________________________________________________________

建筑

make             # builds _build/zork, _build/web, _build/mcp
make play        # play Zork 1 interactively in the terminal
make test        # runs the full Zork 1 walkthrough and verifies a score of 350/350
make walkthrough # runs the full Zork 1 walkthrough and prints the output
make clean       # removes all built files

需要Go 1.21+。

码头工人

make docker-build                                         # builds image tagged smbaker/go-zork
docker run -it smbaker/go-zork                            # play interactively
docker run -p 8080:8080 smbaker/go-zork ./web             # web UI
docker run -p 8081:8081 smbaker/go-zork ./mcp --mode sse  # MCP SSE server

要推送到Docker Hub:

make docker-push    # tags as docker.io/smbaker/go-zork:1.0.0 and pushes

______________________________________________________________________

程序

_build/zork --CLI播放器

直接在终端中播放。

Usage: zork [options] [story_file]

Options:
  -seed int      RNG seed (0 = current time)
  -save string   save file path (default "save.dat")
./_build/zork zork1.dat
./_build/zork -seed 42 zork1.dat

______________________________________________________________________

_build/web --浏览器用户界面

通过HTTP提供两个基于web的UI。每个浏览器选项卡都有自己的独立游戏会话。

Usage: web [options]

Options:
  -story string   story file path (default "zork1.dat")
  -save  string   save file path  (default "save.dat")
  -port  string   listen address  (default ":8080")
./_build/web --story zork1.dat --port :8080
路线描述
/terminal全屏xterm.js终端(黑底绿,经典外观)
/chat轻量级聊天风格UI,无外部依赖
/wsWebSocket端点(每个连接一个ZMachine goroutine)
/重定向到 /terminal

______________________________________________________________________

_build/mcp --MCP服务器

将Zork动词暴露为 模型上下文协议 AI代理(Claude等)可以玩游戏。支持stdio和SSE传输。

Usage: mcp [options]

Options:
  -story    string   story file path (default "zork1.dat")
  -save     string   save file path  (default "save.dat")
  -mode     string   transport: stdio or sse (default "stdio")
  -port     string   listen address for SSE mode (default ":8081")
  -log               print all game input/output to stdout

stdio模式(克劳德桌面,本地代理)

./_build/mcp --story zork1.dat --mode stdio

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "zork": {
      "command": "/path/to/_build/mcp",
      "args": ["--story", "/path/to/zork1.dat", "--log"]
    }
  }
}

SSE模式(远程代理、HTTP客户端)

./_build/mcp --story zork1.dat --mode sse --port :8081

MCP工具

工具参数说明
get_intro--返回开场场景(先呼叫)
restart--将游戏重置为开始
look--描述当前位置
inventory--列出携带物品
score--显示分数和移动计数
wait--等一下
pray--祈祷
verbose / brief / superbrief--设置描述的详细程度
north south east west--向主要方向移动
northeast northwest southeast southwest--沿对角线移动
up / down--垂直移动
examine take drop open closeobject与单个对象交互
read eat drink turn_on turn_offobject更多单对象操作
push pull climb moveobject物理操作
light extinguish wave ring rubobject特殊互动
cross echo enter exit smell listenobject环境相互作用
windobject给发条装置上发条
putitem, container将物品放入/放在容器中
attacktarget, weapon (可选)攻击生物
throwitem, target向目标投掷物品
giveitem, recipient将物品赋予角色
unlock / lockobject, key用钥匙锁定或解锁
turnobject, tool用工具转动物体(例如带扳手的螺栓)
tieitem, target将物品绑在某物上
insertitem, container将物品插入容器
saytext, to (可选)说点什么
commandtext发送任何原始命令(包罗万象)

--log 标志对于观看AI游戏很有用:所有命令和响应都会实时打印到stdout。

______________________________________________________________________

Helm 图表

Helm图表提供于 helm/go-zork/ 用于将web或MCP服务器部署到Kubernetes。

安装

# Web UI (default)
helm install zork helm/go-zork

# MCP SSE server
helm install zork helm/go-zork \
  --set mode=mcp

# Expose via NodePort
helm install zork helm/go-zork \
  --set service.type=NodePort \
  --set service.nodePort=31080

# Expose via Ingress
helm install zork helm/go-zork \
  --set ingress.enabled=true \
  --set ingress.host=zork.example.com

核心价值观

默认值描述
image.repositorysmbaker/go-zork容器映像存储库
image.tag1.0.0图像标签
modeweb要运行的服务器: webmcp
web.port8080Web服务器容器端口
mcp.port8081MCP服务器容器端口
mcp.logfalse将游戏成绩单打印到stdout
service.typeClusterIPKubernetes服务类型
service.port80服务端口
service.nodePort""类型为时的节点端口号(30000–32767) NodePort
ingress.enabledfalse创建Ingress资源
ingress.host""入口主机名
replicaCount1pod副本数量

______________________________________________________________________

建筑

pkg/zork/          Z-Machine interpreter (version 3)
cmd/zork/          CLI front-end
cmd/web/           HTTP + WebSocket server; terminal.html and chat.html embedded via go:embed
cmd/mcp/           MCP server (stdio + SSE via mark3labs/mcp-go)

Z-Machine完全通过Go通道进行通信:

z.InputChan  <-chan string   // lines of user input sent to the interpreter
z.OutputChan chan<- []byte   // output chunks produced by the interpreter
done         <-chan error    // closed when the game ends

所有三个前端都遵循相同的模式:将它们的传输(stdin/stdout、WebSocket或MCP工具调用)桥接到这两个通道。MCP服务器通过互斥体串行化并发工具调用,因此每个命令/响应对都是原子性的。

______________________________________________________________________

测试

make test

运行完整的Zork 1演练(walkthrough.txt)使用固定的RNG种子,并断言最终得分为350/350(最大值)。

目录标签

目录标签

GoClaude云端部署文本冒险游戏本地部署游戏解释器AI游戏交互多前端支持

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

57

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP