Environment Variables
dmx reads configuration from environment variables at startup. Pass them in your IDE's MCP server config or as shell environment variables when running dmx directly.
REQUIRE_API_KEY / MCP_API_KEY
Type: String
Default: None (authentication disabled)
Bearer token auth for HTTP+SSE transport. Set REQUIRE_API_KEY=true and MCP_API_KEY={token} to require Authorization: Bearer {token} on all HTTP requests. dmx exits at startup if REQUIRE_API_KEY=true but MCP_API_KEY is unset.
Only relevant when running with --http. Ignored for stdio transport.
REQUIRE_API_KEY=true MCP_API_KEY=your-secret-token uvx --from deepmodel-dmx dmx serve --http --port 8080Internal overrides
DMX_SKILLS_DIR and DMX_RULES_DIR (and the matching --skills-dir and --rules-dir arguments) are internal extension points, not supported configuration. Each one replaces dmx's bundled skills or rules entirely rather than adding to them: setting DMX_SKILLS_DIR removes the bundled /dmx/* commands, and setting DMX_RULES_DIR removes dmx's system prompt. If either is set in your IDE config, remove it.
To add or override skills, use .dmx/skills/ in your repo or a shared source.
CLI arguments
These are passed as arguments to dmx serve (i.e. after uvx --from deepmodel-dmx dmx serve), not as environment variables:
| Argument | Default | Description |
|---|---|---|
--http | off (stdio) | Use HTTP+SSE transport instead of stdio |
--port | 8080 | Port for HTTP+SSE transport (--http only) |
--watch | off | Hot-reload on file change (requires the watch extra) |
The HTTP+SSE transport binds 0.0.0.0 on the given --port.
IDE config examples
For stdio (the default):
{
"mcpServers": {
"dmx": {
"command": "uvx",
"args": ["--from", "deepmodel-dmx@latest", "dmx", "serve"]
}
}
}For HTTP transport:
{
"mcpServers": {
"dmx": {
"url": "http://your-dmx-server:8080/sse",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}