Skip to content

Server configuration

The server uses stdio by default. This preserves the existing launcher contract:

uv run python -m justpen_utility_mcp

To run Streamable HTTP on the loopback interface:

uv run python -m justpen_utility_mcp \
  --transport http \
  --host 127.0.0.1 \
  --port 8933

The MCP endpoint is http://127.0.0.1:8933/mcp. The HTTP listener has no authentication, so keep it on a trusted loopback interface unless an authenticated gateway protects it.

Command-line options take precedence over environment variables, which take precedence over the defaults.

Command-line option Environment variable Default
--transport UTILITY_MCP_TRANSPORT stdio
--host UTILITY_MCP_HOST 127.0.0.1
--port UTILITY_MCP_PORT 8933
--log-level UTILITY_MCP_LOG_LEVEL INFO
--workspace-dir UTILITY_MCP_WORKSPACE_DIR unset

Transport accepts stdio or http. Host accepts an IP address or DNS hostname, without a URL scheme or port. Port must be between 1 and 65535. Log level accepts DEBUG, INFO, WARNING, ERROR or CRITICAL, case-insensitively. Invalid settings stop startup before the listener starts.

The workspace directory is where render_burp_screenshot writes evidence images. It must be an absolute path without .. segments; an empty value counts as unset. Startup rejects a relative or .. path. When unset, or when the directory does not exist at call time, the tool returns CONFIGURATION: and the other tools are unaffected. The tool only writes new .png files below this directory.

Application logs go to stderr. Stdio stdout remains reserved for the MCP protocol. HTTP and stdio expose the same generate_totp, decode_qr and render_burp_screenshot schemas and the same status: ok / status: error response envelopes.