Fly.io

More setup than Railway or Render, but gives fine-grained control over region, scaling, and resources.

1

Install flyctl and log in

brew install flyctl # macOS
fly auth login
2

Initialize the app

From the repo root:

fly launch --no-deploy

Accept the generated fly.toml. Pick a region close to you.

3

Set your secrets

fly secrets set \
MCP_TRANSPORT=streamable-http \
MCP_PORT=8080 \
PARADEX_ENVIRONMENT=prod
4

Configure and deploy

Confirm the [[services]] block in fly.toml listens on port 8080 with health check path /health:

[[services]]
internal_port = 8080
protocol = "tcp"
[[services.tcp_checks]]
grace_period = "10s"
interval = "30s"
restart_limit = 0
timeout = "5s"
[[services.http_checks]]
interval = "10s"
grace_period = "5s"
method = "GET"
path = "/health"
protocol = "http"
timeout = "2s"

Then deploy:

fly deploy

Your endpoint will be https://<app-name>.fly.dev/mcp.

5

Connect your AI client

Paste the URL into your AI client’s MCP settings. See the Remote MCP quickstart for client-specific instructions.


Fly.io keeps one VM running by default (no cold starts). Use fly scale count 0 to pause billing, fly scale count 1 to resume. fly logs streams live logs.