Server Map
| Server | MCP URL | Health URL | Auth |
|---|
| Dataloader | https://market-data-loader-production.up.railway.app/mcp/dataloader | https://market-data-loader-production.up.railway.app/health | optional bearer |
| Fama-French Replicate | https://fama-french-factors-production.up.railway.app/mcp/fama_french_replicate | https://fama-french-factors-production.up.railway.app/health | optional bearer |
| Statistical Factor Models | https://backend-production-c775c.up.railway.app/mcp/statistical-factor-models | https://backend-production-c775c.up.railway.app/health | optional bearer |
| Jump Models | https://mcp-production-11da.up.railway.app/mcp/jump-models | https://mcp-production-11da.up.railway.app/health | no bearer |
| Wavelet Mean Reversion | https://wavelet-mean-reversion-production.up.railway.app/mcp/waveletmeanreversion | https://wavelet-mean-reversion-production.up.railway.app/health | optional bearer |
| Parallax ExtremeHurst | coming soon | https://parallax-hurst-signals-production.up.railway.app/health | optional bearer |
| EP Ratio Screener | https://ep-ratio-screener-production.up.railway.app/mcp/epratioscreener | https://ep-ratio-screener-production.up.railway.app/health | optional bearer |
| Volatility Scaling Lab | https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility | https://volatility-scaling-lab-production.up.railway.app/health | optional bearer |
Shared Assumptions
- If bearer auth is disabled, clients can connect directly without auth.
- If bearer auth is enabled, use a client that supports custom
Authorization headers.
- Tool calls use the generated request envelope:
{"request": {...}}.
- Verify
/health before wiring the MCP URL into a production client.
- Direct streamable HTTP calls require a session handshake before
tools/list or tools/call.
Cursor
Cursor reads MCP config from either project-local .cursor/mcp.json or global ~/.cursor/mcp.json.
{
"mcpServers": {
"dataloader": {
"url": "https://market-data-loader-production.up.railway.app/mcp/dataloader"
},
"fama-french-replicate": {
"url": "https://fama-french-factors-production.up.railway.app/mcp/fama_french_replicate"
},
"statistical-factor-models": {
"url": "https://backend-production-c775c.up.railway.app/mcp/statistical-factor-models"
},
"jump-models": {
"url": "https://mcp-production-11da.up.railway.app/mcp/jump-models"
},
"wavelet-mean-reversion": {
"url": "https://wavelet-mean-reversion-production.up.railway.app/mcp/waveletmeanreversion"
},
"parallax-extreme-hurst": {
"url": "coming soon"
},
"ep-ratio-screener": {
"url": "https://ep-ratio-screener-production.up.railway.app/mcp/epratioscreener"
},
"volatility-scaling-lab": {
"url": "https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility"
}
}
}
{
"mcpServers": {
"dataloader": {
"url": "https://market-data-loader-production.up.railway.app/mcp/dataloader",
"headers": {
"Authorization": "Bearer ${env:DATALOADER_MCP_TOKEN}"
}
},
"fama-french-replicate": {
"url": "https://fama-french-factors-production.up.railway.app/mcp/fama_french_replicate",
"headers": {
"Authorization": "Bearer ${env:FAMA_FRENCH_REPLICATE_MCP_TOKEN}"
}
},
"statistical-factor-models": {
"url": "https://backend-production-c775c.up.railway.app/mcp/statistical-factor-models",
"headers": {
"Authorization": "Bearer ${env:STATISTICAL_FACTOR_MODELS_MCP_TOKEN}"
}
},
"jump-models": {
"url": "https://mcp-production-11da.up.railway.app/mcp/jump-models"
},
"wavelet-mean-reversion": {
"url": "https://wavelet-mean-reversion-production.up.railway.app/mcp/waveletmeanreversion",
"headers": {
"Authorization": "Bearer ${env:WAVELET_MEAN_REVERSION_MCP_TOKEN}"
}
},
"parallax-extreme-hurst": {
"url": "coming soon",
"headers": {
"Authorization": "Bearer ${env:PARALLAX_EXTREME_HURST_MCP_TOKEN}"
}
},
"ep-ratio-screener": {
"url": "https://ep-ratio-screener-production.up.railway.app/mcp/epratioscreener",
"headers": {
"Authorization": "Bearer ${env:EP_RATIO_SCREENER_MCP_TOKEN}"
}
},
"volatility-scaling-lab": {
"url": "https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility",
"headers": {
"Authorization": "Bearer ${env:VOLATILITY_SCALING_LAB_MCP_TOKEN}"
}
}
}
}
If a server is authless, omit the headers block for that entry.
Claude Desktop
Claude Desktop uses remote connectors for remote MCP servers.
- Open Settings > Connectors.
- Choose Add custom connector.
- Enter a connector name and the remote MCP URL.
- Connect and enable the tools you want.
Claude remote connectors support authless and OAuth-based remote MCP servers. They are not a good fit for static bearer-header-only auth configured manually in local JSON. For protected endpoints, use an OAuth-capable gateway, a trusted network path, or an authless connector-facing endpoint with a limited tool surface and rate limiting.
Generic HTTP / Streamable MCP Clients
Health Check
curl -fsS https://volatility-scaling-lab-production.up.railway.app/health
tmp_headers=$(mktemp)
tmp_body=$(mktemp)
curl -sS -D "$tmp_headers" -o "$tmp_body" \
-X POST https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer <volscale_token>" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0.1"}}}'
SESSION_ID=$(awk 'tolower($1)=="mcp-session-id:" {gsub("\r","",$2); print $2}' "$tmp_headers")
curl -sS -o /dev/null \
-X POST https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer <volscale_token>" \
-H "MCP-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
curl -sS \
-X POST https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer <volscale_token>" \
-H "MCP-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
rm -f "$tmp_headers" "$tmp_body"
Python FastMCP Client
import asyncio
from fastmcp import Client
async def main() -> None:
async with Client("https://volatility-scaling-lab-production.up.railway.app/mcp/qca-open-loop-volatility") as client:
result = await client.call_tool(
"compute-ewma-volatility-series",
{"request": {"ticker": "SPY", "start_date": "2020-01-01", "halflife": 252, "annualize": True}},
)
print(result)
asyncio.run(main())
Verification Checklist
/health responds successfully.
tools/list returns the expected server-specific tools.
- Auth behavior matches the selected client.
- One small deterministic tool call succeeds before the server is used in a longer workflow.