Skip to content

CLI Reference ​

Complete parameter reference for the Camel Integration Capability standalone application. The service uses picocli for command-line parsing.

Parameter Overview ​

Parameters are grouped by function: resource loading, MCP server configuration, Wanaku self-registration, and general settings.

Resource Loading Parameters ​

Control how the service loads routes and dependencies.

ParameterEnvironment VariableRequiredDefaultDescription
--service-catalogSERVICE_CATALOGNo-Name of the service catalog to use. Must match catalog.name in the catalog's index.properties. Mutually exclusive with --routes-ref and --dependencies.
--service-catalog-systemSERVICE_CATALOG_SYSTEMYes (if using catalog)-System name within the catalog. Must be listed in catalog.services in the catalog's index.properties.

Example:

bash
--service-catalog employee-system-v2 \
--service-catalog-system employee-system

The service will:

  1. Download employee-system-v2.zip from Wanaku's DataStore
  2. Extract the catalog's index.properties
  3. Locate the employee-system resources within the catalog
  4. Load routes and dependencies from the extracted files

See Serve a service catalog.

Individual File References Mode ​

ParameterEnvironment VariableRequiredDefaultDescription
--routes-refROUTES_PATHYes (if not using catalog)-Reference to the Apache Camel routes YAML file. Supports datastore:// and file:// schemes.
--dependenciesDEPENDENCIESNo-Reference to a text file containing a comma-separated or newline-separated list of Maven dependencies (GAV format). Supports datastore:// and file:// schemes.
--repositoriesREPOSITORIESNoMaven CentralComma-separated list of additional Maven repository URLs to use for downloading dependencies.

Supported URI Schemes:

  • datastore://: Downloads the file from Wanaku's DataStore. Example: datastore://routes.camel.yaml
  • file://: Loads the file from the local filesystem. Must be an absolute path. Example: file:///data/routes.camel.yaml

Example: DataStore References:

bash
--routes-ref datastore://employee-routes.camel.yaml \
--dependencies datastore://employee-deps.txt

Example: Local File References:

bash
--routes-ref file:///tmp/routes.camel.yaml \
--dependencies file:///tmp/deps.txt

Mutual Exclusivity ​

--service-catalog is mutually exclusive with --routes-ref and --dependencies. You must choose one mode:

Catalog mode:

bash
--service-catalog my-catalog \
--service-catalog-system my-system

Individual files mode:

bash
--routes-ref datastore://routes.camel.yaml \
--dependencies datastore://deps.txt

Git Initialization ​

ParameterEnvironment VariableRequiredDefaultDescription
--init-fromINIT_FROMNo-Git repository URL to clone during initialization (before resource download). Supports SSH and HTTPS formats. Cloned repository is placed in a subdirectory of --data-dir.

Example:

bash
--init-from git@github.com:wanaku-ai/wanaku-recipes.git \
--routes-ref file:///tmp/cloned-repo/routes/employee.camel.yaml

MCP Server Parameters ​

Control the built-in MCP server (streamable HTTP transport).

ParameterEnvironment VariableRequiredDefaultDescription
--mcp-portMCP_PORTNo9090Port the MCP server listens on. Clients connect to this port at the /mcp path. The same port serves the health endpoints (/observe/health, /observe/health/live, /observe/health/ready).
--mcp-tagsMCP_TAGSNowanakuComma-separated tags for MCP tool filtering. Only ai-tool: routes whose tags match are exposed as MCP tools. A route without tags is never exposed.

Example: Custom MCP Port:

bash
--mcp-port 9090

Example: Tag-Based Filtering:

bash
--mcp-tags hr,employee

This exposes only ai-tool: routes tagged with hr or employee.

Wanaku Self-registration Parameters ​

Register the capability as an MCP forward in Wanaku on startup, and remove the forward on shutdown. Self-registration is off by default. See Self-registration with Wanaku for the lifecycle, the ownership rules, and a Kubernetes example.

ParameterEnvironment VariableRequiredDefaultDescription
--registerWANAKU_REGISTERNofalseTurns on self-registration. Accepts --register, --register=true or --register=false.
--wanaku-urlWANAKU_URLYes (with --register)-Wanaku management API URL, for example http://wanaku:8080. Must be an http or https URL.
--namespaceWANAKU_NAMESPACENodefaultWanaku namespace of the forward.
--advertised-addressMCP_ADDRESSYes (with --register)-MCP URL that Wanaku uses to reach this capability, for example http://my-tool.tools.svc:9090/mcp. Must be an http or https URL.
--wanaku-token-envWANAKU_TOKEN_ENVNo-Name of the environment variable that contains a bearer token for the Wanaku API. The variable must be set and not empty.

With --register, --name is the forward name, and --retries and --wait-seconds also control the registration retries.

Example:

bash
export WANAKU_TOKEN=my-token
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --routes-ref file:///workspace/routes.camel.yaml \
  --name echo-tool \
  --register \
  --wanaku-url http://localhost:8080 \
  --advertised-address http://localhost:9090/mcp \
  --wanaku-token-env WANAKU_TOKEN

Server Configuration Parameters ​

ParameterEnvironment VariableRequiredDefaultDescription
--registration-urlREGISTRATION_URLYeshttp://localhost:8080The Wanaku Barn base URL used to download datastore:// resources and service catalogs. It does not register the capability (see --register).
--nameSERVICE_NAMENocamelService name identifier. The forward name with --register.
--retries-No12Maximum number of download retries. Also the maximum number of registration retries with --register.
--wait-seconds-No5Wait time between retries in seconds. Used as the initial delay for exponential backoff of downloads, and as the fixed wait between registration attempts.
--data-dirDATA_DIRNo/tmpDirectory where downloaded files (routes, dependencies) are saved. In Docker, the default is /data.
--fail-fast-NofalseIf true, the service fails immediately if any route fails to load. If false, route loading errors are logged and the service continues with successfully loaded routes.

Help ​

ParameterDescription
-h, --helpDisplay help message and exit.

Complete Examples ​

Minimal Configuration (Service Catalog) ​

bash
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --registration-url http://wanaku-server:8080 \
  --service-catalog employee-system-v2 \
  --service-catalog-system employee-system

Individual File References with Dependencies ​

bash
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --registration-url http://wanaku-server:8080 \
  --routes-ref datastore://employee.camel.yaml \
  --dependencies datastore://employee-deps.txt \
  --repositories https://my-repo.com/maven \
  --data-dir /data

Local Development ​

bash
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --registration-url http://localhost:8080 \
  --routes-ref file:///workspace/routes.camel.yaml \
  --mcp-port 9090

Git Initialization with File References ​

bash
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --registration-url http://wanaku-server:8080 \
  --init-from git@github.com:my-org/camel-routes.git \
  --routes-ref file:///tmp/cloned-repo/routes/production.camel.yaml \
  --dependencies file:///tmp/cloned-repo/deps/production.txt \
  --data-dir /tmp

Tag Filtering with Fail-Fast ​

bash
java -jar camel-integration-capability-main-*-jar-with-dependencies.jar \
  --registration-url http://wanaku-server:8080 \
  --fail-fast=true \
  --mcp-tags hr,employee \
  --service-catalog test-catalog-v1 \
  --service-catalog-system test-system

Environment Variables ​

The container image (quay.io/wanaku/camel-integration-capability) reads the environment variables in the tables above and gives them to the JAR as options. --fail-fast, --retries and --wait-seconds have no environment variable. When you run the JAR directly, use the command-line options. The JAR reads only one environment variable: the variable that --wanaku-token-env names.

Example in Kubernetes:

yaml
env:
  - name: REGISTRATION_URL
    value: "http://wanaku-server:8080"
  - name: SERVICE_CATALOG
    value: "employee-system-v2"
  - name: SERVICE_CATALOG_SYSTEM
    value: "employee-system"
  - name: MCP_PORT
    value: "9090"
  - name: MCP_TAGS
    value: "hr,employee"

Parameter Validation ​

The service validates parameters at startup. Common validation errors:

Mutually exclusive parameters:

text
--service-catalog is mutually exclusive with --routes-ref and --dependencies

Service catalog without system:

text
--service-catalog-system is required when --service-catalog is used

Routes reference missing (individual file mode):

text
Either --routes-ref or --service-catalog must be provided

Self-registration options:

text
--wanaku-url is required with --register
--advertised-address is required with --register
--name must contain only letters, digits, '.', '_' and '-' with --register: <name>
--register requires the MCP server (--mcp-port greater than 0)
The environment variable named by --wanaku-token-env is not set: <variable>

Validation errors cause the service to exit immediately with a non-zero status code (2 for usage errors). A failed self-registration causes the service to exit with status code 1.

Default Values Summary ​

ParameterDefault
--mcp-port9090
--mcp-tagswanaku
--namecamel
--registerfalse
--namespacedefault
--retries12
--wait-seconds5
--data-dir/tmp (CLI), /data (Docker)
--fail-fastfalse
--registration-urlhttp://localhost:8080

All other parameters have no default and must be provided (or are optional).

Next steps ​