Updated
Security
The values of your Environments are encrypted in your browser and the server cannot read them. Notes, logs and issues are not end-to-end encrypted, because your AIs have to be able to read them through MCP. This page says what protects what so you can decide what to store where.
What is protected and how
| Data | Server can read it? | AI can read it via MCP? | Protection |
|---|---|---|---|
| Environment values | No | No | Encrypted in your browser with your master key (zero-knowledge) |
| Passwords (vault) | No | No | Encrypted in your browser with AES-256-GCM and a key derived from your master key (PBKDF2, 600,000 iterations); outside MCP’s reach |
| Notes, logs, issues, tasks, records | Yes | Yes | Access with your account or API key |
| Shared folders (notes, issues, logs, tasks) | Yes | Yes, for people with access | Only with accepted friends and by role; the AI shares only if you ask |
| Environment and variable names | Yes | Yes (names only) | Visible so the AI knows what exists |
Separated API keys
- An MCP key never reaches environment data.
- A CLI key never reaches notes, logs, issues or records.
- Keys can be revoked at any time in Settings.
- Keys in the URL are stripped from md-doc’s access logs.
What your machine stores (CLI)
Only the environments key, in the system keyring (gnome-keyring/KWallet, Keychain or Credential Manager). If there is no keyring, it uses a file with 600 permissions. That key does not open the vault passwords.
Honest limits
mddoc runmasking prevents accidental leaks, not deliberate ones.- If you use an API key in a client’s URL, it may appear in logs outside md-doc.
- Anyone with your master key and your session can decrypt your environments: protect them.
What we cannot promise
We do not say everything is end-to-end encrypted, because it is not. md-doc exists so your AIs can read your notes, and for that the server has to be able to read them.
Frequently asked questions
Are md-doc secrets end-to-end encrypted?
The values of your Environments are encrypted in your browser with your master key and the server only stores encrypted data (zero-knowledge). Notes, logs and issues are not end-to-end encrypted, because the server and your AI have to be able to read them.