Skip to content

CLI parameters

Every server starts with one or more tool blocks:

text
shell-is-all-you-need --tool --name NAME [TOOL_OPTIONS] --exec COMMAND [ARG_TEMPLATE ...] [--tool ...]

Options are scoped to the current tool. Except where marked repeatable, an option may appear only once per tool.

Tool definition

ParameterRequiredDescription
--toolYesStarts a tool definition and ends the preceding child argv
--name NAMEYesTool name exposed through MCP; 1–128 ASCII letters, digits, ., _, or -
--description TEXTNoModel-facing description; defaults to a generated description of the command
--input-schema JSON|@FILENoClosed, flat JSON Schema 2020-12 contract; inferred as required strings when omitted
--exec COMMAND [ARGS...]YesStarts the fixed child executable and argument templates

Everything after --exec is passed as child argv until the next exact --tool or end of input. The executable itself cannot contain a placeholder; placeholders belong in argument templates.

Filesystem policy

ParameterDefaultDescription
--fs-path-field FIELDNoneMarks a string placeholder as a path; repeatable
--fs-root DIRCurrent directoryAllows a root for marked paths; repeatable
--fs-deny-path PATHNoneDenies a path and all descendants; repeatable

Roots and denied paths require at least one path field. A path field must be a declared string placeholder. Denies take precedence over roots.

Process limits

ParameterDefaultDescription
--process-timeout-ms MILLISECONDSUnlimitedPositive per-call deadline; timeout terminates the child process tree
--process-output-limit-bytes BYTES1048576Positive cap applied separately to stdout and stderr
--process-max-concurrency COUNT1Positive number of simultaneous calls to this tool
--process-rate-limit-count COUNT60Positive number of admitted calls in one rate window
--process-rate-limit-window-ms MS60000Positive fixed-window duration

The two rate-limit options must be specified together when overriding defaults. Limits are independent per tool; total server throughput is the aggregate.

Task execution

ParameterDefaultDescription
--task-store-dir DIRDisabledEnables MCP Tasks and persists task records
--task-ttl-ms MILLISECONDSUnlimitedPositive retention time for terminal records
--task-poll-interval-ms MILLISECONDSServer-selectedPositive suggested client polling interval

Task timing options require a task store. Millisecond values must not exceed 9007199254740991, the maximum JSON-safe integer.

Other commands

ParameterDescription
-h, --helpPrint complete usage information
-V, --versionPrint the installed version

These commands must be used alone.

Parsing rules

  • The first argument of a configured server must be --tool.
  • Tool names must be unique within one process.
  • The exact child argument --tool is reserved and cannot be forwarded.
  • Numeric settings accept positive integers only—zero is invalid.
  • Child stdin is closed; stdout and stderr are captured separately.
  • Relative roots, denied paths, task stores, and child paths resolve from the server working directory.

Released under the MIT License.