On-premise MCP Servers
Outcomes
An on-premises server deployment allows you to execute tools in your own environment while still leveraging Arcade’s cloud Engine infrastructure. This gives you the flexibility to access private resources, maintain data security, and customize your environment while leveraging Arcade’s management and federation capabilities.
You will Learn
- How to run your server with HTTP transport
- How to create a secure tunnel to expose it publicly
- How to register your server in Arcade
- How to test your server with the Arcade Playground
Prerequisites
How on-premises MCP servers work
You can 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.
The on-premises server model uses a bidirectional connection between your local environment and Arcade’s cloud engine:
- You run the Arcade server in your environment (on-premises, private cloud, etc.)
- Your server is exposed to Arcade’s cloud engine using a public URL
- The Arcade cloud engine routes tool calls to your server
- Your server processes the requests and returns responses to the engine
Benefits of on-premises MCP servers
- Resource access: Access private databases, APIs, and other resources not accessible from Arcade’s cloud
- Data control: Keep sensitive data within your environment while still using Arcade’s capabilities
- Custom environments: Use specific dependencies or configurations required by your
- Compliance: Meet regulatory requirements by keeping data processing within your infrastructure
Setting up an on-premises MCP server
Setup your MCP Servers
Follow the Creating a MCP Server guide to create your Server.
Start your local MCP Server
Ensure you are logged in to Arcade:
CLI
arcade login
Start your server with HTTP transport:
# 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.
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.
- Cloudflare Tunnel provides persistent URLs and advanced features.
- Tailscale Funnel is ideal for sharing within a team or organization.
ngrok (Recommended for Getting Started)
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:
Terminalngrok http 8000
-
Copy your URL: Look for the “Forwarding” line in the ngrok output:
PLAINTEXTForwarding 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
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.
-
Navigate to the Servers page in your Arcade dashboard
-
Click “Add Server”
-
Fill in the registration form:
- ID: Choose a unique identifier (e.g.,
my-mcp-server
) - Server Type: Select “Arcade”
- URL: Enter your public tunnel URL from Step 2
- Secret: Enter a secret for your server (or use
dev
for testing) - Timeout: Configure request timeout (default: 30s)
- Retry: Configure retry attempts (default: 3)
- ID: Choose a unique identifier (e.g.,
-
Click “Create”
Here’s an example of a configuration:
ID: my-mcp-server
Server Type: Arcade
URL: https://abc123.ngrok-free.app
Secret: my-secure-secret-123
Timeout: 30s
Retry: 3
Test the connection to your MCP Server
You can now test your Server by making requests using the Playground, or an MCP client:
Playground
-
Go to the Arcade Playground
-
Select your server from the dropdown
-
Choose a from your server
-
Execute the with test parameters
-
Verify the response:
- Check that the response is correct
- View request logs in your local server terminal
- Inspect the tunnel dashboard for request details
Key Concepts
- HTTP Transport Run your server with HTTP transport to expose your via a REST/SSE API
- Secure Tunnels Create a secure tunnel to expose your server publicly
- Arcade Registration Register your server in Arcade to make it accessible through the Arcade API
- Playground Testing Test your server with the Arcade Playground
Best practices
- Persistent URLs: For production use, set up a persistent public URL rather than ephemeral ones
- TLS: Use a TLS-enabled URL for production use
- Monitoring: Set up monitoring for your Server to ensure availability
Troubleshooting
- Connection issues: Ensure your public URL is accessible and that your local Server is running
- Timeout errors: If your Server takes too long to respond, increase the timeout value in the configuration
Next steps
- Create custom tools for your Server
- Set up authentication for secure access to resources
- Configure secrets for your Server