Docs
Server & runners
For shared capacity, run a server and connect one or more runners.
CLI ───▶ Server ───▶ Runner
───▶ Runner
The server
The server is a gRPC orchestrator with an HTTP API. It keeps the job queue, tracks which runners are healthy, and assigns work.
# Generate a starting configuration
contigra-server --generate-config > contigra-server.toml
# Start with mutual TLS enabled
contigra-server --config contigra-server.toml --enable-mtls --mtls-domain contigra.example.com
| Flag | Description |
|---|---|
--config |
Path to the configuration file. |
--grpc-port, --http-port |
Override the configured ports. |
--log-level |
Override the logging level. |
--enable-mtls |
Require mutual TLS. |
--mtls-domain |
Domain name for mTLS certificates. |
--generate-config |
Print a sample configuration and exit. |
--enable-mcp |
Run the MCP server alongside. |
Runners
Runners register with the server, report their health, and execute the jobs they receive. Tags describe what a runner can do, so jobs land on suitable machines.
contigra-runner \
--server http://localhost:50051 \
--tags rust,docker \
--max-jobs 4
| Flag | Environment variable | Default |
|---|---|---|
--server |
CONTIGRA_SERVER_URL |
http://localhost:50051 |
--tags |
CONTIGRA_RUNNER_TAGS |
none |
--max-jobs |
CONTIGRA_MAX_JOBS |
4 |
--runner-id |
CONTIGRA_RUNNER_ID |
auto-generated |
--log-level |
RUST_LOG |
info |
Run as many runners as you need.
MCP server
contigra-mcp-server exposes Contigra to AI tools over the Model Context Protocol. It speaks over stdio by default; use HTTP for network access:
contigra-mcp-server --transport http --port 3000