Skip to Content
ReferenceArcade MCPPythonSharing

Sharing your MCP server

Make your server accessible to others by exposing it through a secure tunnel and registering it with Arcade. This allows remote users and services to interact with your without deploying to a cloud platform.

Overview

By default, your server runs locally on localhost:8000. To share it:

  1. Run your server with HTTP transport
  2. Create a secure tunnel to expose it publicly
  3. Register your server in Arcade
  4. Share the with others

Step 1: Run your server

First, start your server with HTTP transport:

Terminal
# Navigate to your server directory cd my_server # Run with HTTP transport (default) uv run server.py uv run server.py http

Your server will start on http://localhost:8000. Keep this terminal running.

Step 2: Create a secure tunnel

Open a separate terminal and create a tunnel using one of these options:

ngrok is easy to set up and works across all platforms.

Install ngrok:

Terminal
# macOS brew install ngrok # Or download from https://ngrok.com/download

Create a tunnel:

Terminal
ngrok http 8000

Copy your URL: Look for the “Forwarding” line in the ngrok output:

PLAINTEXT
Forwarding https://abc123.ngrok-free.app -> http://localhost:8000

Copy the https://abc123.ngrok-free.app URL - this is your public URL.

Pros:

  • Quick setup, no required for basic use
  • Automatic HTTPS
  • Web dashboard to inspect requests

Cons:

  • Free tier URLs change on each restart
  • May show interstitial page for free tier

Option B: Cloudflare Tunnel

Cloudflare Tunnel provides persistent URLs and advanced features.

Install cloudflared:

Terminal
# macOS brew install cloudflare/cloudflare/cloudflared # Or download from https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/

Create a tunnel:

Terminal
cloudflared tunnel --url http://localhost:8000

Copy your URL: Look for the “Your quick Tunnel has been created” message with your URL.

Pros:

  • Free tier includes persistent URLs (with setup)
  • Built-in DDoS protection
  • Access control features

Cons:

  • Requires Cloudflare for persistent URLs
  • More complex setup for advanced features

Option C: Tailscale Funnel

Tailscale Funnel is ideal for sharing within a team or organization.

Install Tailscale:

Terminal
# macOS brew install tailscale # Or download from https://tailscale.com/download

Authenticate:

Terminal
tailscale up

Create a funnel:

Terminal
tailscale funnel 8000

Get your URL: Tailscale will display your funnel URL (e.g., https://my-machine.tail-scale.ts.net)

Pros:

  • Persistent URLs tied to your machine
  • Private by default (only shared with specified )
  • No bandwidth limits

Cons:

  • Requires Tailscale
  • Best for team/organization use cases

Step 3: Register your MCP server in Arcade

Once you have a public URL, register your server in the Arcade dashboard to make it accessible through the Arcade API.

Register your server

  1. Navigate to the Servers page in your Arcade dashboard
  2. Click “Add Server”
  3. Fill in the registration form:
    • ID: Choose a unique identifier (e.g., my-mcp-server)
    • Server Type: Select “HTTP/SSE”
    • URL: Enter your public tunnel URL from Step 2 with /mcp appended
      • Example: https://abc123.ngrok-free.app/mcp
      • Example: https://my-tunnel.trycloudflare.com/mcp
      • Example: https://my-machine.tail-scale.ts.net/mcp
    • Secret: Enter a secret for your server (or use dev for testing)
    • Timeout: Configure request timeout (default: 30s)
    • Retry: Configure retry attempts (default: 3)
  4. Click “Create”

Configuration example

PLAINTEXT
ID: my-mcp-server Server Type: HTTP/SSE URL: https://abc123.ngrok-free.app Secret: my-secure-secret-123 Timeout: 30s Retry: 3

Step 4: Test your MCP server

Verify that your server is accessible and working correctly.

Using the Arcade Playground

  1. Go to the Arcade Playground
  2. Select your server from the dropdown
  3. Choose a from your server
  4. Execute the with test parameters
  5. Verify the response:
    • Check that the response is correct
    • View request logs in your local server terminal
    • Inspect the tunnel dashboard for request details
Last updated on