dsh-xiaozhi
通过MCP协议将DSH接入小智语音助手 适合需要通过小智语音助手调用DSH各项能力的智能家居或语音控制场景。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:toddpan/dsh-xiaozhi說明文件
閱讀完整 README ↗8. Configuration
Precedence, lowest first:
- code defaults (
DEFAULTSinsrc/config.ts) - the plugin row's
config(the profile'scordis.patch.yml) - overrides saved by the settings page (
/settings.json)
| Option | Default | Meaning |
|---|---|---|
enabled | true | while off, no tool can run |
mode | endpoint | endpoint / server |
endpointUrl | '' | Xiaozhi MCP access point (ws:///wss://, must contain /mcp/) |
endpointHeaders | {} | extra request headers (merged on write) |
serverPath | /mcp/xiaozhi | server-mode path (must contain /mcp/) |
serverPort | 0 | 0 reuses the DSH web server; >0 also listens on 0.0.0.0 |
serverToken | '' | strongly recommended whenever serverPort > 0 |
toolMode | grouped | grouped / flat |
disabledGroups | [] | disabled capability areas |
allowWriteTools | true | allow write operations |
promptTimeoutMs | 120000 | voice wait limit (must stay below the REST layer's 180000) |
maxVoiceChars | 700 | reply clipping length |
listLimit | 10 | list page size |
heartbeatMs | 30000 | ping interval |
reconnectMinMs / reconnectMaxMs | 1000 / 30000 | reconnect backoff bounds |
apiPathPrefix | /dsh-xiaozhi/api | bundled REST layer prefix (the settings API is fixed at /dsh-xiaozhi/admin) |
exposeDshApi | true | mount the bundled DSH REST layer |
apiKey | '' | auth key for the bundled layer |
cors | false | allow cross-origin calls to the bundled layer |
defaultCwd | '' | default directory for created sessions |
maxUploadBytes | 104857600 | upload limit |
homeDir | '' | row config only (see below) |
logToolCalls | true | log every tool call |
sendInitializedNotification | true | send notifications/initialized after the handshake |
serverName | DSH | announced service name |
Why is
homeDirnot on the settings page? It decides where the override file lives, so honouring it from that file is circular — the page would show a new directory while overrides kept being written to the old one.homeDirtherefore comes only from the plugin rowconfig(or theDSH_XIAOZHI_HOMEenvironment variable) and the page shows it read-only.