# contrib — companion helpers for driving remote tools through sic Optional POSIX-sh helpers that pair `sic` with an **[lmcp](https://git.reauktion.de/marfrit/lmcp)** server (a lightweight Lua MCP server). Install any of them on the hosts you reach with sic and call them as `sic ...`. None of these are required by sic itself. ## `lmcp-tool` Call a host's lmcp (MCP) tools over a single stateless HTTP `tools/call`, with no persistent MCP session: ``` sic lmcp-tool list # discover the tools this host offers sic lmcp-tool web_search "query=today's news" # call one, args as key=value sic lmcp-tool fetch url="https://example.com" ``` The `key=value` form is the important bit: a model never has to embed JSON in a shell string, so apostrophes (`today's`, `what's`) ride safely inside double quotes and `lmcp-tool` does the JSON-encoding. Raw JSON (`lmcp-tool '{"k":"v"}'`) still works. Host/port/token are read from `$LMCP_HOST/$LMCP_PORT/$LMCP_TOKEN` or the local `lmcp.service` systemd unit. See the [lmcp project](https://git.reauktion.de/marfrit/lmcp) for the server side. ## `sicwrite` / `sicedit` `sicd` consumes stdin for the netstring frame, so a remote command can't be fed content via a pipe. These pass content as **argv** instead (which sic delivers losslessly): ``` sic sicwrite # write a file sic sicedit # replace one exact occurrence ```