Las/Docs

How tools are declared and federated

Las exposes one stdio JSON-RPC/MCP endpoint (protocol 2024-11-05). Signed child tools appear as `surface__tool`; calls route to the owning child after policy-controlled argument injection and validation.

Federated surfaces#

The current source registry knows twelve surfaces: weles (browser executor), skarbiec (capability broker, with strict local schema/taxonomy/result validation), tama (hook catalogue/inspection, read-oriented tool allowlist), stado (compute status/cost/quota/schedule), lem (research registry/provenance), echo (growth/content dashboard), most (communications health/diagnostics), probierz (cross-platform quality), byk (founder-strategy/Oko), brama (model gateway detect/list), warsztat (repository proposal workflow, explicit proposal-tool allowlist), and finance (separate local policy and exact configuration required).

Descriptions are operator hints, not authorization contracts. The signed manifest, local special policy, advertised schema verification, argument policy, and child server enforcement determine the callable surface.

MCP transport#

Las reads one JSON-RPC request per stdin line and writes one response per stdout line. Supported methods: `initialize` (exactly once), `ping`, `tools/list`, and `tools/call` — not the entire MCP protocol surface. Requests before initialization fail, and a later request may not replace `agentId`; when Skarbiec is active, initialization must provide the exact `SKARBIEC_MCP_AGENT_ID`.

`tools/list` includes the product-owned `las__onboarding` tool, whose actions execute the same persisted first-use journey as the CLI.

Namespacing#

Las removes ambiguity with a double-underscore separator. The remote child still receives its original tool name.

A child tool `health` from surface `most`
most__health

Operator filters#

`LAS_ONLY` and `LAS_SKIP` only subtract from eligible configured surfaces. They cannot add an unsigned surface or bypass local configuration.

Subtractive filters
LAS_ONLY=tama,brama las list
LAS_SKIP=weles,finance las list

Failure behavior#

  • Federation tolerates an unavailable child by omitting its tools and logging only its static surface name — a partial catalogue is possible, and clients must not interpret a missing tool as an empty or healthy downstream resource.
  • Failures return generic Las errors; child-controlled diagnostics are intentionally not forwarded into the parent protocol stream.
  • Child requests have no Las-imposed timeout; a child that never responds keeps the operation in flight until the process exits or is externally interrupted.
  • The first federation result is memoized for one Las process; child changes are not hot-reloaded.
  • Spawned children are cleaned up after stdin closes and in-flight requests settle.