dmx
Reference

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 8080

Internal 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:

ArgumentDefaultDescription
--httpoff (stdio)Use HTTP+SSE transport instead of stdio
--port8080Port for HTTP+SSE transport (--http only)
--watchoffHot-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"
      }
    }
  }
}

On this page