Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Extended CLI and MCP profiles

The primary entry point is jacs mcp, from cargo install jacs-cli. Both JACS command-line programs are written in Rust. The focused jacs binary provides portable signing, verification, encrypted keys and MCP. The extended jacs-compat binary provides the broader integration commands, including agreements, A2A, text/media, attestations and trust operations:

cargo install jacs-cli-compat --locked
jacs-compat mcp
Rust packageExecutableCLI scope
jacs-clijacsPortable document/key operations and focused MCP
jacs-cli-compatjacs-compatExtended integration commands and its separately scoped MCP server

The 0.15 package split isolates the portable dependency graph from the broader integration dependencies. It does not make either program a different language, and it does not deprecate the direct libraries. Email signing is available through the Rust library; there is no dedicated email CLI command.

From this checkout, make build-jacs-compat builds that binary and make mcp-compat starts it without writing Make output to protocol stdout. It uses the separate archive/native workspace; the portable dependency graph is unchanged.

Server/profileRuntime toolsRequired host configuration
Portable jacs mcp, default1: document verificationExplicit public evidence in each request
Portable jacs mcp --profile local-sign7: portable vault lifecycle and document operationsOne selected encrypted vault and host-held passwords
Extended jacs-compat mcp, default1: document verificationExplicit public evidence in each request
Extended local-sign9: document sign/verify plus seven agreement-v2 operationsExisting signed local config, matching unlocked key, offline process
Extended local-sign with a content directory14: the nine above plus five text/image toolsExplicit JACS_MCP_BASE_DIR, confined separately from config/key storage

The extended CLI compiles the full tool families, but runtime authorization restricts the advertised and callable subset. To select an existing local agent:

jacs-compat mcp --profile local-sign --config /path/to/jacs.config.json

For local text/image signing, verification and extraction:

JACS_MCP_BASE_DIR=/path/to/content \
  jacs-compat mcp --profile local-sign --config /path/to/jacs.config.json

Use the existing password prompt or designated password environment variable. Keep network capability flags unset. File arguments are relative to the selected content directory; config and key directories cannot be used as content roots. The selected process can sign as this agent; it does not provide per-call human approval. Ordinary HAI photo policy remains an application decision.

The 42-name native contract is a compiled inventory. A2A, attestation, trust administration, W3C signing and key administration are not all enabled by local-sign. trust-admin and legacy-core still refuse startup because the capability/status/approval broker they require is absent. Preparing a broader profile means implementing that authority boundary and testing advertisement, dispatch, revocation and expiry together. Adding names to an allowlist would bypass that requirement.

See the extended MCP protocol and authorization details. make test-jacs-mcp-compat exercises the native profiles and contract with full-tools; make test-jacs-mcp tests the portable server.