LabscoMCP early access ↗
brunorozendoMCP SERVER

MCP Command Server

One run_command tool — shell commands with a working directory and stdin, over stdio, HTTP or SSE.

by brunorozendo ↗Editors, Terminals & Local Dev EnvironmentCommunity

LABSCO SUMMARY

Shell access with three transports and a hard timeout.

The stdin parameter is what lifts this above a simple command runner — you can pipe a script or a document into a command instead of escaping it into an argument. Take the obvious precaution: anything your user can run, this can run, so keep it to a machine you are willing to have driven. The 60-second ceiling also means long builds belong elsewhere; run those directly and use this for the short commands.

What it is

A Java MCP server that executes shell commands on the host system, built as separate modules so you can pick the transport your client needs.

What you get

  • run_command — a required command, plus optional workdir and stdin to pipe input in
  • Structured results: stdout, stderr, a message when it fails, and an isError flag
  • Three transports built from one repository: stdio for desktop clients, plus HTTP and SSE
  • Commands time out after 60 seconds, so a hung process does not hold the client
  • Enhanced handling for the Fish shell, and cross-platform support across macOS, Linux and Windows
  • Logback logging with configurable levels and optional rolling files, set through LOG_DIR and LOG_LEVEL
  • An optional GraalVM native binary if you would rather not launch a JVM per session

Requirements

Java 25 or higher, and Gradle to build from source. ./gradlew build produces a jar per transport; point Claude Desktop at the stdio one with an absolute path, or at the native executable if you compiled it.

Setup effort

Build from source — git clone https://github.com/brunorozendo/mcp-server-command.git