Desktop proxy for MCPBundles - tunnels cloud requests to local services
Project description
MCPBundles Desktop Proxy
Tunnel cloud requests from MCPBundles.com to local services on your machine.
Connect your local databases, APIs, and services to the MCPBundles platform without exposing them to the internet. The proxy runs in the background and securely forwards requests over an encrypted WebSocket tunnel.
Features
- Secure OAuth2 authentication
- Auto-reconnection with exponential backoff
- Encrypted token storage
- Dynamic port forwarding to any localhost service
- Local browser service (optional) - Control a real browser on your machine from the cloud
- Background daemon with status monitoring
- Comprehensive logging
- Fast and lightweight (~5MB)
Installation
Basic Installation
pip install mcpbundles-proxy
With Browser Service
pip install mcpbundles-proxy[browser]
# After installation, install Playwright browsers
playwright install chromium
Full Installation (All Features)
pip install mcpbundles-proxy[all]
playwright install chromium
Quick Start
1. Authenticate
mcpbundles-proxy login
This opens your browser to authenticate with MCPBundles.com. Once complete, you can close the browser.
2. Start the tunnel
mcpbundles-proxy start
The tunnel runs in the background. You can close your terminal - it keeps running.
3. Check status
mcpbundles-proxy status
Example output:
✅ Running (PID: 12345)
Uptime: 2:30:15
Tunnel: 🟢 connected
Commands
| Command | Description |
|---|---|
login |
Authenticate with MCPBundles |
start |
Start tunnel daemon in background |
stop |
Stop tunnel daemon |
restart |
Restart tunnel daemon |
status |
Show connection status |
logs |
View tunnel logs |
logs -f |
Follow logs in real-time |
logout |
Remove stored credentials |
How It Works
- You create a provider on MCPBundles.com with base URL like
localhost:5432 - When you run a tool from that provider, the request is sent through the tunnel
- The desktop proxy receives it and forwards to your local service
- The response flows back through the tunnel to the cloud
MCPBundles Backend (Cloud)
↓ WebSocket Tunnel (encrypted)
Desktop Proxy (Your Machine)
↓ HTTP
Local Service (localhost:XXXX)
Local Browser Service
The proxy can run a local browser (Chromium) that cloud tools can control. Perfect for web scraping, testing, and automation.
Enable from web:
- Go to MCPBundles.com → Settings
- Toggle "Browser Service" on
- Choose "Show browser window" or "Hidden mode"
- Browser starts automatically on your machine
Benefits:
- 🖥️ Visible mode: Watch the browser in action on your screen
- 🕶️ Hidden mode: Run in background for pure automation
- 🌍 Use your IP: Browse from your location
- 🔒 Secure: Browser runs locally, controlled via tunnel
- 📸 Full control: Screenshots, PDFs, form filling, JavaScript execution
Cloud tools can:
- Scrape websites using your IP/location
- Test web apps on your machine
- Fill forms and submit data
- Take screenshots and PDFs
- Execute JavaScript
All controlled from MCPBundles.com web interface!
Configuration
All configuration is stored in ~/.mcpbundles/:
token.json- Encrypted OAuth tokenstunnel.pid- Process ID of running daemontunnel.log- Log file
Security
- ✅ Only forwards to
localhost- never to your network - ✅ OAuth2 authenticated tunnel
- ✅ All traffic encrypted over WSS (WebSocket Secure)
- ✅ Tokens stored encrypted with machine-specific key
- ✅ File permissions set to user-only (0600)
Requirements
- Python 3.8+
- macOS or Linux (Windows support coming soon)
Troubleshooting
Tunnel won't start
# Check if already running
mcpbundles-proxy status
# View logs for errors
mcpbundles-proxy logs
# Try re-authenticating
mcpbundles-proxy logout
mcpbundles-proxy login
mcpbundles-proxy start
Can't connect to local service
Make sure your local service is running:
# Example: Check if PostgreSQL is running on port 5432
curl http://localhost:5432
# or
lsof -i :5432
The proxy only forwards to services that are already running locally.
View detailed logs
# Last 100 lines
mcpbundles-proxy logs -n 100
# Follow in real-time
mcpbundles-proxy logs -f
Development
Install from source
git clone https://github.com/mcpbundles/desktop-proxy.git
cd desktop-proxy
pip install -e .
Run tests
pytest
Support
- 📧 Email: support@mcpbundles.com
- 💬 Discord: https://discord.gg/mcpbundles
- 📖 Docs: https://mcpbundles.com/docs
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcpbundles_proxy-0.1.1.tar.gz.
File metadata
- Download URL: mcpbundles_proxy-0.1.1.tar.gz
- Upload date:
- Size: 30.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3bb4ca3748a4e8d16db5eddc347524777fcbc4260a9e2d238d2891daf4ebd78
|
|
| MD5 |
202b24976ec7d18b8211f72947d51ffc
|
|
| BLAKE2b-256 |
bf286c0a46184a3662fabf86658cd5fb6d85173c6ba8441bb8c2ceceeb65e73d
|
Provenance
The following attestation bundles were made for mcpbundles_proxy-0.1.1.tar.gz:
Publisher:
publish.yml on thinkchainai/mcpbundles-proxy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpbundles_proxy-0.1.1.tar.gz -
Subject digest:
f3bb4ca3748a4e8d16db5eddc347524777fcbc4260a9e2d238d2891daf4ebd78 - Sigstore transparency entry: 645612697
- Sigstore integration time:
-
Permalink:
thinkchainai/mcpbundles-proxy@ea419d3d8b690848f1cb09e6f8d013b0e6722247 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/thinkchainai
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea419d3d8b690848f1cb09e6f8d013b0e6722247 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcpbundles_proxy-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mcpbundles_proxy-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cea35597b85310831c755569286a2a9a72cb9e2bb5a8ca51a7c7c4bc431fa38f
|
|
| MD5 |
791e6d0a1f76a361303849a73ae97d48
|
|
| BLAKE2b-256 |
3c621954dec35c57bb9ad6c786eda40c7c446f43b70d2322f1bdfc8ad6da8661
|
Provenance
The following attestation bundles were made for mcpbundles_proxy-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on thinkchainai/mcpbundles-proxy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpbundles_proxy-0.1.1-py3-none-any.whl -
Subject digest:
cea35597b85310831c755569286a2a9a72cb9e2bb5a8ca51a7c7c4bc431fa38f - Sigstore transparency entry: 645612711
- Sigstore integration time:
-
Permalink:
thinkchainai/mcpbundles-proxy@ea419d3d8b690848f1cb09e6f8d013b0e6722247 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/thinkchainai
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea419d3d8b690848f1cb09e6f8d013b0e6722247 -
Trigger Event:
release
-
Statement type: