Documentation Index
Fetch the complete documentation index at: https://docs.langsight.dev/llms.txt
Use this file to discover all available pages before exploring further.
One command starts everything
As of v0.9.0,langsight serve embeds the monitor loop. A single command starts:
- The REST API on port 8000
- The background health check loop (every 60 seconds by default)
- The dashboard on port 3003 (via Docker)
langsight serve for the API and langsight monitor for continuous health checks. Now they are unified. The embedded monitor runs in a background thread inside the API process and requires no separate process, supervisor entry, or cron job.
The embedded monitor writes health check results to the same ClickHouse and
Postgres instances as the API. Dashboard data is always current — no sync
delay between a standalone monitor process and the API.
Environment variables
| Variable | Default | Description |
|---|---|---|
LANGSIGHT_MONITOR_ENABLED | true | Set false to disable the embedded monitor loop |
LANGSIGHT_MONITOR_INTERVAL_SECONDS | 60 | Seconds between health check cycles |
LANGSIGHT_API_KEYS | (empty) | Comma-separated API keys. When set, all routes require X-API-Key. |
LANGSIGHT_* variables can also be set via .langsight.yaml. See Configuration Reference.
Docker Compose — HTTP and SSE servers
The standard production deployment for teams using remote MCP servers (streamable HTTP or SSE transport).http://localhost:3003 (Docker Compose nginx reverse proxy). Without Docker: dashboard at localhost:3002, API at localhost:8000. Health checks start running automatically — no extra commands needed.
See Docker Compose for the full stack setup including ClickHouse, Postgres, and the OTEL Collector.
stdio servers in Docker
stdio MCP servers run as subprocesses spawned by LangSight. When running LangSight inside Docker, the required runtimes (Node.js fornpx/mcp-remote, Python packages for uvx) must be present in the container image.
Build a custom image that extends the base:
mcp-remote), the ~/.mcp-auth token cache must be accessible inside the container. Mount it as a read-only volume:
Advanced: separate monitor process
The embedded monitor (default) is the right choice for most deployments. Use a separate monitor process only in specific high-availability scenarios where you want the health check loop to restart independently of the API process.API only (no embedded monitor)
Dedicated monitor with custom interval
When to use a separate monitor
- High-availability setups where the API and monitor have independent restart policies
- Environments where the API pod cannot be given the permissions needed to spawn stdio subprocesses (e.g. restricted Kubernetes namespaces)
- Situations where you want the monitor to run at a faster cadence than the API response SLA allows
CI/CD pre-deploy health check
Uselangsight monitor --once to block a deployment when any MCP server is unhealthy:
--once runs a single health check cycle across all configured servers and exits. The exit code:
| Exit code | Meaning |
|---|---|
0 | All servers up |
1 | One or more servers down or degraded |
Upgrade
Related
- Docker Compose — full stack setup with all services
- Configuration Reference — all environment variables
- langsight serve — CLI reference for the API server command
- langsight monitor — CLI reference for the standalone monitor daemon