Upgrading to v0.9.0
http or sse transport.
Update the npm package
npm install argocd-mcp@0.9.0
# or, if invoked via npx
npx argocd-mcp@0.9.0 <command>Update the Docker image
docker pull ghcr.io/argoproj-labs/mcp-for-argocd:0.9.0
# or
docker pull quay.io/argoprojlabs/mcp-for-argocd:0.9.0If you reference :latest in a Kubernetes manifest, Compose file, or similar, redeploy to pick up the new image — pinning to 0.9.0 explicitly is recommended.
Changes
- The
http/sselistener now binds127.0.0.1by default, not every interface. If your deployment relied on the previous default (reachable from outside the container/host with no other config), it will stop being reachable after upgrading — this is intentional; see below to restore access safely. - A same-Pod sidecar or co-located process is unaffected. Loopback is shared within a Pod's network namespace, so a caller in the same Pod (e.g. an auth proxy sidecar) still reaches the listener with no change on your part — no new configuration is needed if you don't change the bind address.
MCP_AUTH_TOKENis a new credential, separate fromARGOCD_API_TOKEN— the latter authenticates this server to ArgoCD and never authenticated callers, even before this fix. WhenMCP_AUTH_TOKENis set, callers must sendAuthorization: Bearer <inbound_token>.
MCP_AUTH_TOKENis only required if you widen the bind address (MCP_BIND_ADDRESS/--bind-addressset to anything other than loopback, e.g.0.0.0.0) — the server refuses to start otherwise. At the default loopback bind, no token is required to start. Note this is about the requirement, not enforcement: if you setMCP_AUTH_TOKENanyway while staying on loopback, it is still checked on every request — there's no bind-address exemption for an already-configured token. To keep the listener reachable via a published port or across hosts, set both:
-e MCP_BIND_ADDRESS=0.0.0.0 -e MCP_AUTH_TOKEN=<inbound_token>- If something else already authenticates callers (a reverse proxy, service mesh, network policy) and you don't want to manage
MCP_AUTH_TOKEN, use--allow-unauthenticatedinstead when widening the bind. - Widening the bind without either
MCP_AUTH_TOKENor--allow-unauthenticatednow refuses to start (non-zero exit, with the reason logged) rather than silently running exposed.
Full configuration reference: Network Exposure in the README, and Operator Notes in SECURITY.md.
Contributions
- feat: add a new tool to fetch AppProject resources by @leoluz in #133
- fix: bind loopback by default and authenticate inbound requests by @hwwn in 28d15ca
Full Changelog: v0.8.0...v0.9.0