Skip to main content

Security

mcpzip handles OAuth tokens, API keys, and MCP server credentials. Here is how it keeps them safe.

Credential Storage

Config File

Your main config at ~/.config/compressed-mcp-proxy/config.json may contain API keys and tokens.

Protect Your Config File
chmod 600 ~/.config/compressed-mcp-proxy/config.json

Never commit this file to version control.

OAuth Tokens

Stored at ~/.config/compressed-mcp-proxy/auth/{hash}.json, where the hash is derived from the server URL.

chmod 700 ~/.config/compressed-mcp-proxy/auth/
chmod 600 ~/.config/compressed-mcp-proxy/auth/*.json

Tool Cache

The cache at ~/.config/compressed-mcp-proxy/cache/tools.json contains tool names, descriptions, and parameter schemas. It does not contain credentials or user data.

File Permission Summary

PathContains SecretsRecommended
config.jsonYes (API keys, tokens)600
auth/*.jsonYes (OAuth tokens)600
auth/Directory700
cache/tools.jsonNo644

OAuth Security

mcpzip implements OAuth 2.1 with these security measures:

FeatureDescription
PKCEProof Key for Code Exchange prevents code interception
Code verifier128-character random string, never transmitted
State parameterPrevents CSRF attacks on the callback
Localhost callbackRuns on localhost only, not externally accessible
Dynamic portRandom available port to avoid conflicts
TLSToken exchange happens over HTTPS
Why PKCE Matters

Without PKCE, an attacker who intercepts the authorization code could exchange it for tokens. With PKCE, the code is useless without the original code verifier, which never leaves mcpzip's process memory.

Process Isolation

Each stdio upstream server runs as a separate OS process:

  • Processes are isolated from each other
  • Each process gets only its own env variables
  • Processes are killed on mcpzip shutdown
  • A compromised server process cannot access other servers' credentials

Network Security

TransportProtocolNotes
stdioLocal pipesNo network traffic
HTTPHTTPS (TLS 1.2+)System certificate store
SSEHTTPSSame as HTTP

Reporting Vulnerabilities

If you discover a security vulnerability:

  1. Do not open a public GitHub issue
  2. Email security concerns to the Hypercall team
  3. We will acknowledge within 48 hours