The internal mode read its endpoint and keys from MINIO_MCP_INTERNAL_* in the
container's environment. They now arrive per session as pinned headers -
x-minio-endpoint, x-minio-access-key, x-minio-secret-key and optionally
x-minio-region - sent by the catalog entry that opens the session, next to
x-minio-scope. That entry is where the platform's other credentials already
live, and the one place the flow author's choice of storage is made.
Each session builds and owns its client, closed with it, so there is no shared
client to configure. The endpoint is held to MINIO_MCP_ALLOWED_ENDPOINTS like an
external one: whoever holds the API key could otherwise send these headers and
point the server at any address.
The bucket prefix stays in the server's environment on purpose. It is the
boundary the caller must not be able to set, and it still cannot be emptied.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>