DigitalOcean App Platform provides a quick way to get a public HTTPS URL for testing your MCP server with web-based LLMs.
Use the deploy button in the main README - it automatically uses the app.yaml in this repo for proper configuration.
- Push your repo to GitHub
- In DO → App Platform → Create App → GitHub repo
- When it detects Node.js, set:
- Build command:
npm ci && npm run build - Run command:
node dist/src/http-server.js
- Build command:
- Environment Variables (Service → Settings → Environment Variables):
HOST=0.0.0.0← important for platform networkingAUTH_MODE=test(orauthlessto start)AUTH_TOKEN=demo-secret(if usingtest)FPE_KEY=00112233445566778899aabbccddeeffFPE_TWEAK=abcdef12345678
- Deploy. DO will give you an HTTPS URL like
https://fpe-demo-mcp-xxxxx.ondigitalocean.app.
The repo includes app.yaml for automatic configuration:
name: fpe-demo-mcp
services:
- name: app
environmentSlug: node-js
github:
repo: your-user/your-repo
branch: main
deployOnPush: true
buildCommand: "npm ci && npm run build"
runCommand: "node dist/src/http-server.js"
httpPort: 8765
instanceCount: 1
instanceSizeSlug: basic-xxs
routes:
- path: /
envs:
- key: HOST
value: "0.0.0.0"
- key: AUTH_MODE
value: "test"
- key: AUTH_TOKEN
value: "demo-secret"
- key: FPE_KEY
value: "00112233445566778899aabbccddeeff"
- key: FPE_TWEAK
value: "abcdef12345678"# Initialize connection
curl -i https://<your-app>.ondigitalocean.app/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'Authorization: Bearer demo-secret' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# List tools (reuse MCP-Session-ID from previous response)
curl -s https://<your-app>.ondigitalocean.app/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'Authorization: Bearer demo-secret' \
-H 'MCP-Session-ID: <paste from previous>' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'- Server URL:
https://<your-app>.ondigitalocean.app/mcp - Header (if AUTH_MODE=test):
Authorization: Bearer demo-secret
- Bind to 0.0.0.0 (set
HOST=0.0.0.0) so the platform proxy can reach your app - App Platform provides automatic HTTPS - no certificate management needed
- Check App Platform pricing - dynamic Node services typically require a paid tier
- For $0 demos, consider using Cloudflare Tunnel instead
npm run start:httpCORS_ORIGIN=https://playground.ai.cloudflare.com npm run start:http# Debug mode
AUTH_MODE=debug npm run start:http
# Test mode with shared secret
AUTH_MODE=test AUTH_TOKEN=your-secret npm run start:http
# Production mode (requires JWT)
AUTH_MODE=production npm run start:httpYour deployed server includes a health endpoint:
curl https://<your-app>.ondigitalocean.app/healthReturns server status, auth mode, available tools, and CORS configuration.