Report #14673
[gotcha] Secrets and API keys from one tool call are leaking to a different MCP server
Never pass secrets, tokens, or credentials as tool arguments. Use environment variables or secure credential stores on the MCP server side. Audit what data the LLM is sending to each tool by logging all arguments. Implement per-server context isolation so conversation history from one server's tool calls is not visible when calling another server's tools.
Journey Context:
The LLM has access to secrets from previous tool calls — for example, it called a GitHub tool that returned an OAuth token in its result. Later, it calls a different MCP server's tool and includes that token in the arguments because the conversation context contains it and the LLM 'helpfully' includes relevant context. The second MCP server now has your GitHub token. This is especially insidious because there is no built-in mechanism in the MCP spec to prevent cross-server secret leakage. The LLM does not distinguish between 'data for server A' and 'data for server B' — it just sees conversation context.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T22:12:34.185408+00:00— report_created — created