Skip to Content
MCP ServerHosted Setup (SSE)

Hosted Setup (SSE)

Connect to the VelaFlows MCP server remotely via Server-Sent Events (SSE). This is required for desktop apps like Claude Desktop and ChatGPT Desktop that can’t run local processes.

Server URL

https://mcp-server-production-c72e.up.railway.app/sse

Health check:

curl https://mcp-server-production-c72e.up.railway.app/health # {"status":"ok","service":"velaflows-mcp","connections":0}

Prerequisites

  • A VelaFlows API token (sk_live_...) — create one in your dashboard under Developer → API Tokens
  • Claude Desktop or ChatGPT Desktop installed

Step 1: Get Your API Token

  1. Go to your VelaFlows dashboard
  2. Navigate to Developer → API Tokens
  3. Click + Create Token
  4. Name it (e.g., “MCP Server - Desktop”)
  5. Select scopes (or all for full access)
  6. Click Create — copy the token immediately

Step 2: Configure Your Desktop App

Claude Desktop

  1. Open Claude Desktop
  2. Go to Settings → Developer → MCP Servers
  3. Click Edit Config (opens claude_desktop_config.json)
  4. Add the VelaFlows server:
{ "mcpServers": { "velaflows": { "url": "https://mcp-server-production-c72e.up.railway.app/sse", "headers": { "Authorization": "Bearer sk_live_your_token_here" } } } }
  1. Save the file and restart Claude Desktop

ChatGPT Desktop

  1. Open ChatGPT Desktop
  2. Go to Settings → MCP Servers (or Connections)
  3. Add a new MCP server:
    • Name: VelaFlows
    • URL: https://mcp-server-production-c72e.up.railway.app/sse
    • Headers: Authorization: Bearer sk_live_your_token_here
  4. Save and restart

Any SSE-Compatible Client

The server exposes two endpoints:

EndpointMethodPurpose
/sseGETSSE event stream — client connects here
/messagesPOSTClient-to-server RPC messages
/healthGETHealth check

Connection flow:

  1. Client opens SSE connection to GET /sse with Authorization: Bearer sk_live_... header
  2. Server sends a sessionId in the SSE stream
  3. Client sends JSON-RPC requests to POST /messages?sessionId={id}
  4. Server responds via the SSE stream

Step 3: Verify It Works

After configuring and restarting your desktop app:

  1. Try: “List all VelaFlows services” — should return 34 services with endpoint counts
  2. Try: “What workflow nodes are available for sending messages?” — should search the node catalog
  3. Try: “List my inbox conversations” — should make a live API call (requires valid token)

How Authentication Works

Desktop App → SSE Connection → MCP Server → VelaFlows API │ │ │ Authorization: │ Authorization: │ Bearer sk_live_... │ Bearer sk_live_... │ │ │ (token passed through) │ (same token forwarded)
  • Your API token is sent as a header when the SSE connection is established
  • The MCP server extracts it and uses it for all live API calls
  • Reference tools (search, list, get details) work even without a token — they use bundled data
  • Live API tools and workflow tools require a valid token

Without a Token

You can connect without a token to use reference tools only:

{ "mcpServers": { "velaflows": { "url": "https://mcp-server-production-c72e.up.railway.app/sse" } } }

This gives you read-only access to:

  • Search across 1,093 API endpoints
  • Browse 464 workflow node definitions
  • Explore 392 subscribable events
  • Read authentication and workflow guides

Live API calls and workflow building will return an error asking you to provide a token.

Troubleshooting

”Connection refused” or timeout

  1. Check the server is healthy:
    curl https://mcp-server-production-c72e.up.railway.app/health
  2. If it returns an error, the server may be restarting — wait 30 seconds and try again

”Session not found” errors

This happens if the SSE connection was dropped and the client is trying to send messages on a stale session. Fix: restart your desktop app to establish a fresh connection.

Tools work but API calls fail

  1. Verify your token: try it with cURL:
    curl -H "Authorization: Bearer sk_live_your_token" \ -H "x-workspace-id: your_workspace_id" \ https://api.velaflows.com/api/v1/auth/me
  2. Check the token hasn’t been revoked in your dashboard
  3. Check the token has the required scopes

”Unauthorized” from the AI tool

Make sure the Authorization header is set correctly in your MCP config:

  • Must be Bearer sk_live_... (with the Bearer prefix)
  • Must be in the headers object, not in env

Security Notes

  • The hosted MCP server does not store your token — it’s held in memory for the duration of your SSE session and discarded on disconnect
  • Each SSE connection creates an isolated session — your token is never shared with other connections
  • All communication uses HTTPS
  • The server is stateless — no data persists between sessions