dsh-rcon
将我的世界服务器控制台桥接至智能体对话中 适合需要通过智能体直接管理和控制 Minecraft 服务器的玩家或管理员。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:CaveNightingale/dsh-rcon说明文档
阅读完整 README ↗Configuration
The cordis.patch.yml shipped in this package deliberately carries no server and no credential: one insert row with an empty servers list, so loading it unconfigured fails immediately. The real configuration lives in the profile's own $DSH_HOME/profiles//cordis.patch.yml: outside every Session workspace, and its path is never given to the agent.
A patch replaces the whole row rather than deep-merging keys, so restate every key you want to keep:
- id: dsh-rcon
config:
servers:
- name: main # the model selects a server by this name
host: 127.0.0.1
port: 25575 # 25575 when omitted
password: ''
- name: creative
host: 10.0.0.5
password: ''
defaultServer: main # servers[0] when omitted
idleTimeoutMs: 18000000 # five hours when omitted
defaultWaitMs: 1000
feedbackBatchMs: 1000
connectTimeoutMs: 5000
allowedPrefixes: [list, say, time, weather]
otherwise: deny
| Field | Type | Default | Meaning |
|---|---|---|---|
servers | array | [] | Each entry { name, host, port?, password }. Names are unique; an empty list fails at load |
defaultServer | string | servers[0].name | Server used when a call names none; must be configured |
idleTimeoutMs | integer ≥1 | 18000000 (5h) | How long a link may go without traffic before it is reclaimed |
defaultWaitMs | integer ≥0 | 1000 | Wait window when a call omits wait_ms |
feedbackBatchMs | integer ≥0 | 1000 | Merge window for post-window feedback, anchored at that group's first message |
connectTimeoutMs | integer ≥1 | 5000 | Bound on the TCP connect plus login handshake |
allowedPrefixes | string array | [] | Command prefixes that skip approval, matched against the dispatcher form. An empty or padded entry is rejected rather than rewritten or ignored |
otherwise | ask | deny | deny | Policy for a command matching no prefix |
Misconfiguration fails loud at load: an empty server list, duplicate names, a missing host or password, or an out-of-range port or timing reports the offending field.
A connection is opened only the first time that server is used; with no message received and no command sent for idleTimeoutMs, it is closed and rebuilt by the next command (the reclaim timer is unref()'d, so an idle connection never holds the process open).