Skip to main content
Glama
Rail1bc

WorlditorMCP

by Rail1bc

WorlditorMCP

一行命令部署的世界服务:MCP 为第一公民协议,任意 agent 框架(AstrBot / Claude / Cursor / 自建 agent…)都可接入;自带 WebUI——人类玩家登录游玩、 拥有者经独立管理端口可视化管理(双端口,D16)。

内核纯数据:世界/组织树/地块/连接/实体/物品定义/玩法数据,行为由玩法包 承载(社区包放 <数据目录>/plays/;内置领域包开发中,见 DESIGN.md §6)。

快速开始(本地)

pip install -e .          # 或 uv sync;Docker 见下节
worlditor serve

启动后:

入口

地址

玩家端口:WebUI(登录/游玩)+ MCP + 快照/SSE

http://localhost:6288

MCP streamable HTTP

http://localhost:6288/world/mcp

管理端口:管理 REST + 管理 WebUI(拥有者)

http://127.0.0.1:6289(仅本机)

任意 MCP client 以 Authorization: Bearer <token> 连接后即可游玩 (本地 agent 与远程 agent 同走 streamable HTTP,无需额外进程); agent 注册:POST /auth/agent-register {"name": "..."}(凭邀请码或开放)。

Related MCP server: Agentic AI System MCP Server

云服务器部署(Docker,推荐)

镜像经 GitHub Actions 自动发布到 ghcr.io/rail1bc/worlditor(打版本标签即发布)。

# 1. 服务器装 Docker(Ubuntu/Debian)
curl -fsSL https://get.docker.com | sh

# 2. 拉取仓库的 compose.yml(修改 ADMIN_KEY / AUTH_MODE)后启动
docker compose up -d
  • 玩家端口 6288:公网开放(WebUI + MCP + 注册)

  • 管理端口 6289:compose 里只映射到宿主机 127.0.0.1——永不出公网, 用 SSH 隧道访问:

ssh -L 6289:127.0.0.1:6289 user@你的服务器
# 本地浏览器打开 http://127.0.0.1:6289
  • 数据持久化:数据卷 worlditor-data(world.db / 账户 / 玩法包), 重建容器不丢数据;备份 = 打包数据卷或 docker run --rm -v worlditor-data:/data \ -v $(pwd):/backup alpine tar czf /backup/worlditor-backup.tgz -C /data .

更新(一条命令,数据不丢):

docker compose pull && docker compose up -d

首次部署后请到 GitHub Packages 页确认 worlditor 包可见性为 Public (否则服务器 pull 需要登录);建议生产环境设 WORLDITOR_AUTH_MODE=invite 并用 WORLDITOR_ADMIN_KEY 锁定管理员注册。

配置(环境变量 WORLDITOR_*,全部有默认值)

变量

默认

说明

WORLDITOR_DATA_DIR

./data

数据目录(world.db / plays/)

WORLDITOR_HOST / WORLDITOR_PORT

0.0.0.0 / 6288

玩家端口监听地址

WORLDITOR_ADMIN_HOST / WORLDITOR_ADMIN_PORT

127.0.0.1 / 6289

管理端口(0 = 关闭)

WORLDITOR_AUTH_MODE

open

open / invite / closed

WORLDITOR_ADMIN_KEY

管理员注册密钥(空 = 首个注册者为 admin)

WORLDITOR_ALLOW_AGENT_REGISTER

1

是否允许 agent 自助注册

WORLDITOR_ALLOWED_ORIGINS

CORS 允许来源(逗号分隔)

WORLDITOR_STATIC_DIR

自动探测

WebUI 构建产物目录

CLI 参数(worlditor serve --port 6288 --admin-port 6289 --admin-key xxx) 优先于环境变量。

玩法包

行为、规则、工具与界面全部由玩法包提供(内核纯数据 + 原语 + 注册表)。 一个最小的玩法包(<数据目录>/plays/worlditor_play_hello/):

play.yaml          # name/display_name/version/requires
main.py            # setup(api, context):注册 kind/交互/事件/工具/视图

玩法包可:注册实体 kind(含字段声明)、交互、事件订阅、MCP 工具 (参数支持 array,G11)、WebUI 视图、覆盖/禁用行为原语(override/ disable/过滤器链,D11/G14)、跨包服务(M3)、spawn/编辑实体与地图(D14)、 读写实体字段与按世界隔离的 KV。

  • docs/PLAY_DEV.md:玩法包开发指南(API 全量 + 约定 + 示例)

  • DESIGN.md:设计/协议/路线(唯一权威)

  • GAPS.md:平台缺口清单(历史与观察项)

  • 内置 5 个领域包(worlditor_mcp/builtin_plays/)即参考实现

开发

uv sync                  # 或 pip install -e ".[dev]"
pytest                   # 全量测试
ruff check . && ruff format --check .
cd webui && npm install && npm run build   # 前端构建(dist 提交跟踪)

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rail1bc/WorlditorMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server