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