Product
VS Code extension (perplexity-vscode)
Version
perplexity-user-mcp 0.8.39
MCP Client (if applicable)
Other
Perplexity tier
Pro
OS
Windows 11 Pro 10.0.26200
Browser used by the MCP server
Google Chrome 147.0.7727.139
What happened?
Environment:
Extension/MCP version: perplexity-user-mcp 0.8.39
OS: Windows 11 Pro 10.0.26200
Node.js: v24.13.1
Browser: Google Chrome 147.0.7727.139
IDE: VS Code with Antigravity extension (Claude Code)
Account tier: Pro
Transport: stdio — daemon proxy
Problem:
When using the stdio transport, the MCP daemon always fails to decrypt vault.enc with the following error:
[vault] getSavedCookies failed for profile personal: Vault decrypt failed: wrong passphrase or corrupted ciphertext.
The VS Code Extension encrypts vault.enc using VS Code SecretStorage internally. However, the stdio subprocess spawned by Claude Code has no access to VS Code SecretStorage and cannot decrypt the vault — regardless of what is set in PERPLEXITY_VAULT_PASSPHRASE.
Steps to reproduce:
Install the VS Code Extension, log in via Dashboard (Pro account)
Configure Claude Code with stdio — daemon proxy transport (via MCP Config Management)
Call perplexity_reason or perplexity_research from Claude Code
Error: requires an authenticated Pro account
What was tried:
Setting PERPLEXITY_VAULT_PASSPHRASE in the MCP env block → ignored (env vars not passed by Claude Code, see anthropics/claude-code#1254)
Setting PERPLEXITY_VAULT_PASSPHRASE as system-wide Windows User environment variable → env var reaches the process, but passphrase doesn't match vault.enc (Extension uses VS Code SecretStorage, not keytar directly)
Deleting vault.enc and re-logging in → new vault.enc still encrypted with VS Code SecretStorage key, not the keytar key
HTTP loopback transport → port changes on every daemon restart, configs become stale immediately despite "Auto Regenerate Stale Configs" being enabled
Expected behavior:
perplexity_reason and perplexity_research should work in Claude Code with a Pro account.
Workaround:
None found. perplexity_search works (anonymous mode).
Suggestion:
Either document clearly that authenticated Pro features only work via HTTP transport in VS Code itself (not in external MCP clients on Windows)
Or provide a stable port option (fixed port via config) so HTTP loopback remains usable across restarts
Doctor output (optional, recommended)
## [X] vault -- fail
- [OK] **encryption** -- AES-256-GCM (vault.enc)
- [OK] **unseal-path** -- env var (keychain unavailable — expected on headless Linux)
- [-] **keychain-preferred** -- keychain not applicable
- [X] **unseal-verify** -- vault.enc cannot be decrypted with any available unseal material
- Hint: The unseal material has changed since this blob was written.
Restore the original passphrase, or run 'perplexity-user-mcp logout --purge'
and log in again.
Active profile: personal
Platform: win32 x64
Node.js: v22.21.1
package-version: perplexity-user-mcp 0.0.0
Relevant logs or errors
[vault] getSavedCookies failed for profile personal: Vault locked: no keychain, no env var, no TTY.
[vault] getSavedCookies failed for profile personal: Vault decrypt failed: wrong passphrase or corrupted ciphertext.
[perplexity-mcp] Not authenticated (anonymous mode).
[perplexity-mcp] No authenticated session (anonymous mode)
The doctor confirms unseal-path = env var (the PERPLEXITY_VAULT_PASSPHRASE system env var is detected), but vault.enc was encrypted by the VS Code Extension using VS Code SecretStorage — a different key that the stdio subprocess cannot access. Setting PERPLEXITY_VAULT_PASSPHRASE to the keytar value (perplexity-user-mcp/vault-master-key from Windows Credential Manager) does not match the vault, because the Extension uses a different internal key for encryption.
Product
VS Code extension (perplexity-vscode)
Version
perplexity-user-mcp 0.8.39
MCP Client (if applicable)
Other
Perplexity tier
Pro
OS
Windows 11 Pro 10.0.26200
Browser used by the MCP server
Google Chrome 147.0.7727.139
What happened?
Environment:
Extension/MCP version: perplexity-user-mcp 0.8.39
OS: Windows 11 Pro 10.0.26200
Node.js: v24.13.1
Browser: Google Chrome 147.0.7727.139
IDE: VS Code with Antigravity extension (Claude Code)
Account tier: Pro
Transport: stdio — daemon proxy
Problem:
When using the stdio transport, the MCP daemon always fails to decrypt vault.enc with the following error:
[vault] getSavedCookies failed for profile personal: Vault decrypt failed: wrong passphrase or corrupted ciphertext.
The VS Code Extension encrypts vault.enc using VS Code SecretStorage internally. However, the stdio subprocess spawned by Claude Code has no access to VS Code SecretStorage and cannot decrypt the vault — regardless of what is set in PERPLEXITY_VAULT_PASSPHRASE.
Steps to reproduce:
Install the VS Code Extension, log in via Dashboard (Pro account)
Configure Claude Code with stdio — daemon proxy transport (via MCP Config Management)
Call perplexity_reason or perplexity_research from Claude Code
Error: requires an authenticated Pro account
What was tried:
Setting PERPLEXITY_VAULT_PASSPHRASE in the MCP env block → ignored (env vars not passed by Claude Code, see anthropics/claude-code#1254)
Setting PERPLEXITY_VAULT_PASSPHRASE as system-wide Windows User environment variable → env var reaches the process, but passphrase doesn't match vault.enc (Extension uses VS Code SecretStorage, not keytar directly)
Deleting vault.enc and re-logging in → new vault.enc still encrypted with VS Code SecretStorage key, not the keytar key
HTTP loopback transport → port changes on every daemon restart, configs become stale immediately despite "Auto Regenerate Stale Configs" being enabled
Expected behavior:
perplexity_reason and perplexity_research should work in Claude Code with a Pro account.
Workaround:
None found. perplexity_search works (anonymous mode).
Suggestion:
Either document clearly that authenticated Pro features only work via HTTP transport in VS Code itself (not in external MCP clients on Windows)
Or provide a stable port option (fixed port via config) so HTTP loopback remains usable across restarts
Doctor output (optional, recommended)
Relevant logs or errors