Remote MCP Server¶
Web-based AI platforms (ChatGPT, Claude.ai, Bedrock, Gemini Enterprise) require Salient's MCP server over HTTP. The remote MCP server provides the same 44+ tools and compiled twin resources as the local stdio server, served via Streamable HTTP with bearer token authentication.
When You Need This¶
| Platform | Transport | Needs Remote? |
|---|---|---|
| Claude Code | stdio | No |
| Claude Desktop | stdio | No |
| Gemini CLI | stdio | No |
| Cursor, VS Code, Windsurf, Cline, JetBrains | stdio | No |
| ChatGPT | HTTP only | Yes |
| Claude.ai (web) | HTTP only | Yes |
| Gemini Enterprise | HTTP only | Yes |
| Amazon Bedrock | HTTP only | Yes |
Endpoint¶
If you're running the production stack, the remote MCP endpoint is:
For example: https://mcp.salient.zeroperse.com/mcp
Verify the endpoint
Should return:{"status": "ok", "server": "salient-mcp-http", "transport": "streamable-http"} Self-Hosted Setup¶
The remote MCP server runs as a separate container alongside the backend:
1. Generate an auth token¶
2. Add to your .env¶
3. Add DNS record¶
Point mcp.yourdomain.com to your droplet IP (Cloudflare A record, DNS only).
4. Deploy¶
The production Docker Compose includes the mcp-http service. Caddy auto-provisions TLS for the mcp. subdomain.
Architecture¶
mcp.yourdomain.com (Caddy auto-TLS)
→ MCP HTTP server (:8080, bearer auth)
→ Salient backend API (:8000)
→ SQLite + twin data
The MCP HTTP server is stateless, lightweight (128MB limit), and shares the same tools/resources as the stdio server. It forwards all tool calls to the backend API.
Authentication¶
Every request must include:
Clients that omit the header get 401 Unauthorized. Invalid tokens get 403 Forbidden.
Using the Endpoint¶
Developer Mode → Create App → enter https://mcp.yourdomain.com/mcp
Settings → Connectors → Add custom connector → enter URL + auth
AgentCore Gateway target → point to https://mcp.yourdomain.com/mcp
Cloud Console → custom MCP connector → enter URL
Docker Standalone¶
If you want to run just the MCP HTTP server (without the full production stack):
docker build -t salient-mcp -f tools/mcp-ttx/Dockerfile .
docker run -d \
-p 8080:8080 \
-e SALIENT_API_URL=http://your-backend:8000 \
-e MCP_AUTH_TOKEN=your-token \
-e MCP_REQUIRE_AUTH=true \
salient-mcp
Security¶
HTTPS is required
Never expose the MCP server over plain HTTP. Auth tokens are sent in every request header.
- Use a dedicated token (not your personal JWT)
- Rotate tokens regularly
- Caddy provides auto-TLS — no manual cert management
- The MCP server only reads from the backend — it never writes twin data to external systems
- All tool calls are logged