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.