Skip to content
THE MANUAL / v0.4.0

Configuration reference ​

These 21 application settings apply to CLI, MCP stdio and Streamable HTTP as appropriate. Values follow defaults → optional dotenv → environment → flags. See configuration for file selection and override semantics.

Global flags go before a tool or serve; HTTP-only flags go after serve http. A dash in the flag column means there is no corresponding CLI flag: inject that value through the environment or selected dotenv file.

Google access and tool execution ​

Environment variableDefaultCLI flagMeaning and accepted values
GOOGLE_MAPS_API_KEYUnset—Restricted Google API key. Required in api-key mode and for this implementation’s key-only endpoints, including when OAuth mode is selected. Never a tool argument.
GOOGLE_MAPS_AUTH_MODEapi-key--auth-modeapi-key or oauth. OAuth supports Places (New), Routes, Weather, Air Quality, Address Validation and Places Aggregate.
GOOGLE_APPLICATION_CREDENTIALSADC discovery—Readable service-account or supported ADC JSON file path. Relative paths use the working directory. Leave unset for local ADC or metadata discovery.
GOOGLE_CLOUD_QUOTA_PROJECTUnset—Required consumer billing/quota project ID or number for OAuth calls. The service account needs serviceusage.services.use in that project.
GOOGLE_MAPS_LANGUAGEen--languageLanguage code for language-aware Google responses. Independent of this manual’s language selector.
GOOGLE_MAPS_TIMEOUT30--timeoutPer-request timeout in seconds, integer 1–600. Includes queueing, retries, backoff and response reads; OAuth acquisition has its own bound using the same value.
GOOGLE_MAPS_ENABLED_TOOLSAll (*)--enabled-toolsComma-separated maps_* names or *. Unknown names fail startup. Disabled tools are absent from discovery and cannot be called.
GOOGLE_MAPS_MAX_REQUESTS200--max-requestsGoogle HTTP attempt budget per tool invocation, integer 1–10000. Shared across composite branches; retries consume attempts.
GOOGLE_MAPS_MAX_RETRIES2--max-retriesAdditional transient attempts per Google request, integer 0–5. Zero means one initial attempt. Retries remain within timeout and budget.
GOOGLE_MAPS_TOOL_TIMEOUT120--tool-timeoutOverall tool deadline in seconds, integer 1–3600. Includes credential acquisition, queueing, API calls and retries.

Five Google HTTP requests can execute concurrently per process. The attempt budget limits requests rather than currency; one matrix request can bill multiple elements. Some composites return per-item errors when a branch exhausts its budget or deadline. See production limits.

HTTP listener and access ​

Environment variableDefaultHTTP flagMeaning and accepted values
MCP_HTTP_TOKENUnset—Shared bearer token for MCP clients. Required for non-loopback binds. Separate from Google credentials and still required with native mTLS.
MCP_HTTP_LISTEN127.0.0.1:3000--listenListener IP address and port. The Docker image sets the environment value to 0.0.0.0:3000.
MCP_HTTP_ALLOWED_HOSTSLoopback hosts--allowed-hostComma-separated accepted HTTP Host values. Repeat the flag for several values; flags replace the whole file/environment list. Include the relevant port.
MCP_HTTP_ALLOWED_ORIGINSNone--allowed-originComma-separated allowed browser origins. Present Origin headers are rejected unless allowed. Specify ports explicitly; repeated flags replace the list.
MCP_HTTP_RATE_LIMIT120--rate-limitAuthenticated /mcp requests per minute per process, integer 0–1000000. Zero disables. Burst capacity equals the rate; continuous refill.
MCP_METRICS_ENABLEDfalse--metrics [true|false]Enable Prometheus /metrics. A bare --metrics means true. Uses the same bearer credential when configured; native mTLS also applies.
MCP_TLS_CERTUnset--tls-certPEM server leaf certificate plus intermediate chain. Must be supplied together with a matching private key.
MCP_TLS_KEYUnset--tls-keyPEM server private key path. Keep readable by the runtime identity and out of source/images.
MCP_TLS_CLIENT_CAUnset--tls-client-caPEM client CA bundle enabling mandatory client certificates on every listener path. Does not replace the bearer token.

The HTTP token bucket is global to the process, not per user/IP. Unauthorized requests do not consume it; health and metrics are exempt. Rejections return 429 with Retry-After. The request-body limit is 12 MiB. See MCP access and TLS operations.

Diagnostic events ​

Environment variableDefaultCLI flagMeaning and accepted values
RUST_LOGwarn—Diagnostic log filter. info enables tool completion events; arguments and Google response bodies are not logged.
MCP_LOG_FORMATtext--log-formattext or json. Diagnostics always go to stderr, leaving stdout for CLI JSON or MCP traffic.

File selection and output controls ​

File selection happens before the application layers above. MCP_ENV_FILE chooses a dotenv path; global --env-file PATH takes precedence. An explicitly selected file must exist. --no-env-file disables all dotenv loading and conflicts with --env-file. Without a selection, only the working directory’s optional .env is read.

An explicitly empty environment value still overrides a file value. It can clear an optional token, TLS path or allowlist; it does not make an empty numeric setting valid. Loaded file values do not mutate the process environment.

doctor --live opts into potentially billable probes; ordinary doctor is offline. Tool --output PATH saves JSON, or raw PNG for static-map. These are command controls, not additional environment settings.

Application settings and credential-file changes require a restart. On Linux/macOS, SIGHUP can reload native TLS certificate/key/client-CA files together; failed reloads preserve the previous TLS configuration. See configuration and production operations.