mcpbundles-proxy


Namemcpbundles-proxy JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryDesktop proxy for MCPBundles - tunnels cloud requests to local services
upload_time2025-10-30 22:48:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords mcp proxy tunnel websocket
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
pip install mcpbundles-proxy
```

Browser automation is included - just install and go! (Uses your installed Google Chrome)

## Quick Start

### 1. Authenticate

```bash
mcpbundles-proxy login
```

This opens your browser to authenticate with MCPBundles.com. Once complete, you can close the browser.

### 2. Start the tunnel

```bash
mcpbundles-proxy start
```

The tunnel runs in the background. You can close your terminal - it keeps running.

### 3. Check status

```bash
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

1. You create a provider on MCPBundles.com with base URL like `localhost:5432`
2. When you run a tool from that provider, the request is sent through the tunnel
3. The desktop proxy receives it and forwards to your local service
4. 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 your local Google Chrome browser that cloud tools can control. Perfect for web scraping, testing, and automation.

**Enable from web:**
1. Go to MCPBundles.com → Settings
2. Toggle "Browser Service" on
3. Choose "Show browser window" or "Hidden mode"
4. 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 tokens
- `tunnel.pid` - Process ID of running daemon
- `tunnel.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)
- Google Chrome (for browser service feature)

## Troubleshooting

### Tunnel won't start

```bash
# 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:
```bash
# 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

```bash
# Last 100 lines
mcpbundles-proxy logs -n 100

# Follow in real-time
mcpbundles-proxy logs -f
```

## Development

### Install from source

```bash
git clone https://github.com/mcpbundles/desktop-proxy.git
cd desktop-proxy
pip install -e .
```

### Run tests

```bash
pytest
```

## Support

- 📧 Email: support@mcpbundles.com
- 💬 Discord: https://discord.gg/mcpbundles
- 📖 Docs: https://mcpbundles.com/docs

## License

MIT License - see LICENSE file for details


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcpbundles-proxy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "mcp, proxy, tunnel, websocket",
    "author": null,
    "author_email": "MCPBundles <support@mcpbundles.com>",
    "download_url": "https://files.pythonhosted.org/packages/e3/52/f38c5e6af3ff0548c904e67c9a9b127e5e1946d1f2486e8ab9b951479a1c/mcpbundles_proxy-0.3.1.tar.gz",
    "platform": null,
    "description": "# MCPBundles Desktop Proxy\n\n**Tunnel cloud requests from MCPBundles.com to local services on your machine.**\n\nConnect 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.\n\n## Features\n\n- **Secure OAuth2 authentication**\n- **Auto-reconnection** with exponential backoff\n- **Encrypted token storage**\n- **Dynamic port forwarding** to any localhost service\n- **Local browser service** (optional) - Control a real browser on your machine from the cloud\n- **Background daemon** with status monitoring\n- **Comprehensive logging**\n- **Fast and lightweight** (~5MB)\n\n## Installation\n\n```bash\npip install mcpbundles-proxy\n```\n\nBrowser automation is included - just install and go! (Uses your installed Google Chrome)\n\n## Quick Start\n\n### 1. Authenticate\n\n```bash\nmcpbundles-proxy login\n```\n\nThis opens your browser to authenticate with MCPBundles.com. Once complete, you can close the browser.\n\n### 2. Start the tunnel\n\n```bash\nmcpbundles-proxy start\n```\n\nThe tunnel runs in the background. You can close your terminal - it keeps running.\n\n### 3. Check status\n\n```bash\nmcpbundles-proxy status\n```\n\nExample output:\n```\n\u2705 Running (PID: 12345)\n   Uptime: 2:30:15\n   Tunnel: \ud83d\udfe2 connected\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `login` | Authenticate with MCPBundles |\n| `start` | Start tunnel daemon in background |\n| `stop` | Stop tunnel daemon |\n| `restart` | Restart tunnel daemon |\n| `status` | Show connection status |\n| `logs` | View tunnel logs |\n| `logs -f` | Follow logs in real-time |\n| `logout` | Remove stored credentials |\n\n## How It Works\n\n1. You create a provider on MCPBundles.com with base URL like `localhost:5432`\n2. When you run a tool from that provider, the request is sent through the tunnel\n3. The desktop proxy receives it and forwards to your local service\n4. The response flows back through the tunnel to the cloud\n\n```\nMCPBundles Backend (Cloud)\n  \u2193 WebSocket Tunnel (encrypted)\nDesktop Proxy (Your Machine)\n  \u2193 HTTP\nLocal Service (localhost:XXXX)\n```\n\n## Local Browser Service\n\nThe proxy can run your local Google Chrome browser that cloud tools can control. Perfect for web scraping, testing, and automation.\n\n**Enable from web:**\n1. Go to MCPBundles.com \u2192 Settings\n2. Toggle \"Browser Service\" on\n3. Choose \"Show browser window\" or \"Hidden mode\"\n4. Browser starts automatically on your machine\n\n**Benefits:**\n-  **Visible mode**: Watch the browser in action on your screen\n-  **Hidden mode**: Run in background for pure automation\n-  **Use your IP**: Browse from your location\n-  **Secure**: Browser runs locally, controlled via tunnel\n-  **Full control**: Screenshots, PDFs, form filling, JavaScript execution\n\n**Cloud tools can:**\n- Scrape websites using your IP/location\n- Test web apps on your machine\n- Fill forms and submit data\n- Take screenshots and PDFs\n- Execute JavaScript\n\nAll controlled from MCPBundles.com web interface!\n\n## Configuration\n\nAll configuration is stored in `~/.mcpbundles/`:\n- `token.json` - Encrypted OAuth tokens\n- `tunnel.pid` - Process ID of running daemon\n- `tunnel.log` - Log file\n\n## Security\n\n- \u2705 Only forwards to `localhost` - never to your network\n- \u2705 OAuth2 authenticated tunnel\n- \u2705 All traffic encrypted over WSS (WebSocket Secure)\n- \u2705 Tokens stored encrypted with machine-specific key\n- \u2705 File permissions set to user-only (0600)\n\n## Requirements\n\n- Python 3.8+\n- macOS or Linux (Windows support coming soon)\n- Google Chrome (for browser service feature)\n\n## Troubleshooting\n\n### Tunnel won't start\n\n```bash\n# Check if already running\nmcpbundles-proxy status\n\n# View logs for errors\nmcpbundles-proxy logs\n\n# Try re-authenticating\nmcpbundles-proxy logout\nmcpbundles-proxy login\nmcpbundles-proxy start\n```\n\n### Can't connect to local service\n\nMake sure your local service is running:\n```bash\n# Example: Check if PostgreSQL is running on port 5432\ncurl http://localhost:5432\n# or\nlsof -i :5432\n```\n\nThe proxy only forwards to services that are already running locally.\n\n### View detailed logs\n\n```bash\n# Last 100 lines\nmcpbundles-proxy logs -n 100\n\n# Follow in real-time\nmcpbundles-proxy logs -f\n```\n\n## Development\n\n### Install from source\n\n```bash\ngit clone https://github.com/mcpbundles/desktop-proxy.git\ncd desktop-proxy\npip install -e .\n```\n\n### Run tests\n\n```bash\npytest\n```\n\n## Support\n\n- \ud83d\udce7 Email: support@mcpbundles.com\n- \ud83d\udcac Discord: https://discord.gg/mcpbundles\n- \ud83d\udcd6 Docs: https://mcpbundles.com/docs\n\n## License\n\nMIT License - see LICENSE file for details\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Desktop proxy for MCPBundles - tunnels cloud requests to local services",
    "version": "0.3.1",
    "project_urls": {
        "Documentation": "https://mcpbundles.com/docs",
        "Homepage": "https://mcpbundles.com",
        "Repository": "https://github.com/mcpbundles/desktop-proxy"
    },
    "split_keywords": [
        "mcp",
        " proxy",
        " tunnel",
        " websocket"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b30d952852666740eab644af1e453685183fcea97a374fbbc219e4f94acd4952",
                "md5": "341205565de5aebef60668848092ff3a",
                "sha256": "9c73218d3f8be2273171522a9a5fa580b38d56f66ca42a10989bd40db9f08257"
            },
            "downloads": -1,
            "filename": "mcpbundles_proxy-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "341205565de5aebef60668848092ff3a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 24877,
            "upload_time": "2025-10-30T22:48:36",
            "upload_time_iso_8601": "2025-10-30T22:48:36.132553Z",
            "url": "https://files.pythonhosted.org/packages/b3/0d/952852666740eab644af1e453685183fcea97a374fbbc219e4f94acd4952/mcpbundles_proxy-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e352f38c5e6af3ff0548c904e67c9a9b127e5e1946d1f2486e8ab9b951479a1c",
                "md5": "76a0a300333986a6da2224a9db153be8",
                "sha256": "48202a194ebb1e653b67487313192d85842315cb3cb380d1d9552356353cf708"
            },
            "downloads": -1,
            "filename": "mcpbundles_proxy-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "76a0a300333986a6da2224a9db153be8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 34566,
            "upload_time": "2025-10-30T22:48:37",
            "upload_time_iso_8601": "2025-10-30T22:48:37.422636Z",
            "url": "https://files.pythonhosted.org/packages/e3/52/f38c5e6af3ff0548c904e67c9a9b127e5e1946d1f2486e8ab9b951479a1c/mcpbundles_proxy-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-30 22:48:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mcpbundles",
    "github_project": "desktop-proxy",
    "github_not_found": true,
    "lcname": "mcpbundles-proxy"
}
        
Elapsed time: 2.58353s