Labsco
MCP SERVER

Run shell commands and get structured JSON back instead of text to parse — behind an execution guard you can test a command against before running it.

Editors, Terminals & Local Dev EnvironmentVerified
Summary
Structured shell output, with the trade-off published rather than hidden: it costs more tokens and stops the agent misreading the result.

The project benchmarked itself and printed the number that argues against it — JSON output averaged 205% heavier than raw text, with ls -la over 200 files coming to 15,531 tokens against 5,807 raw. The counterweight is the misread rate it measured on raw text: 4.18% on average, rising to 28.6% on filenames containing spaces. It also reports the context spent explaining output formats falling by an average of 61%, because the JSON describes its own shape. Whether the trade pays depends on whether the output feeds a next step or is simply read once.

What it is

A shell execution gateway. Commands run through a guard and the output comes back as structured data alongside the original text: a directory listing arrives as objects with permissions, owner, size and modification time rather than a line to split. The parser is chosen for the operating system, so the same command reads the same way on macOS and on Linux.

What you get
  • run executes a command through the guard and returns structured output, with the raw text always kept beside the parsed form
  • run_paged returns paginated stdout for commands with large output — ps aux, find, a recursive grep — with page_info reporting the total so nothing is silently cut
  • dry_run checks whether a command would pass the guard without running it, so a risky call can be validated before it happens
  • describe reports the environment: which commands are allowed, which parsers exist, what the guard restricts, and which version is running
  • A consistent response shape — ok and exitCode are always in the same place, so an agent branches on a field instead of reading stderr to guess
  • duration_ms on every response, so slow commands are visible rather than inferred
  • includeDiff is off by default on run and run_paged and fills in created, deleted and modified files when switched on, so the snapshot cost is not paid on calls that do not need it
  • Raw is always preserved: parsed is the bonus, raw is the fallback when no parser exists for a command or a parser gets it wrong
Requirements

Published as @nerdvana/parism and launched over stdio. It executes shell commands on the machine it runs on, behind a whitelist and injection filtering — describe reports what the current configuration permits and dry_run tests a specific command against it. The primary documentation and specification are written in Korean, with an English README alongside.

Setup effort

One command — npx -y @nerdvana/parism