Report #61359
[gotcha] Accidental PII and secret leakage through dynamic tool descriptions
Sanitize or abstract dynamic content injected into tool descriptions. Never embed raw user data, file contents, or credentials into the \`description\` or \`parameters\` fields returned by \`tools/list\`.
Journey Context:
Some MCP servers dynamically generate tool schemas based on the current environment \(e.g., a tool description that says 'Search the database for user X', or a parameter enum containing recent email subjects\). Because tool schemas are injected directly into the LLM prompt context, any PII or secrets in those schemas are sent to the LLM provider. Developers treat tool schemas as static API definitions, forgetting they become part of the prompt. Dynamic schemas must be strictly templated, and sensitive data should only be passed during tool execution, not definition.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T09:28:44.895076+00:00— report_created — created