Why Passthrough Tokens are an Anti-Pattern in MCP

This title was summarized by AI from the post below.

🔐 5 Days of MCP Server Downstream [Anti] Patterns 👉 Day 2: Client Acquires External Token → Passthrough via MCP → External API Here’s how it works: 🔹 User acquires secrets (tokens/keys/passwords) for a downstream API 🔹 User gives these secrets to the MCP client 🔹 MCP client calls the MCP server with those secrets 🔹 MCP server passes them along to the downstream API 🔹 Downstream API thinks it’s talking to the user ⚖️ Pros ✅ Easy to implement/convenient ✅ Can be done right now (doesn't need spec updates) ✅ Eliminates all-access admin tokens from the MCP server (see Day 1 pattern) ⚠️ Cons ❌ Disconnect MCP validation and policy enforcement from downstream usage ❌ Unclear security boundaries: who was the token issued to? are they authorized to make these calls? if handed off, is the recipient allowed to make calls? Can the downstream API trust that there has not been a compromise? ❌ In some cases, the MCP clients/agents are public/third-party and should not be trusted with sensitive downstream API tokens, even for passthrough ❌ MCP server gets tricked into doing something with a co-opted/stolen token or co-opting an in-progress session with passed through token (confused deputy) ❌ Auditing and attribution becomes messy. Where did these calls come from? 🚫 Recommendation: 𝐃𝐎 𝐍𝐎𝐓 𝐃𝐎 𝐓𝐇𝐈𝐒. ✨ In Day 1, we saw the “god token” problem. ✨ In Day 2, we see why passthrough tokens are just as bad. Neither of these are great. In fact, they could be considered "anti-patterns". What to do? More to explore in the coming days. Connect and Follow along! #modelcontextprotocol #mcp #downstream #security #antipattern #pattern

  • diagram
See more comments

To view or add a comment, sign in

Explore content categories