Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

mcp-switchboard-server-harness

A first-party stdio MCP server that gives a coding agent the basics on a remote machine: filesystem, search, git and shell tools. It is a normal MCP server, so mcp-switchboard-client tunnels it like any other.

Tools (26; full schemas and behaviour in spec.md). The core set deliberately mirrors the tool suite a Claude Code / opencode-style agent already knows: bash, read, write, edit, glob, grep — plus the extras listed below.

  • Files: read (line-numbered N: output, paged with offset/limit, lists directories), write, edit (exact-string replace, returns a diff; dry_run, replace_all), apply_patch (unified diff, multi-file, all-or-nothing, dry_run), file_delete (directories need recursive=true unless empty), file_move
  • Search: glob (honours .gitignore, newest first), grep (regex over contents)
  • Run: bash (mode = full/head/tail/grep), run_tests (auto-detects pytest / go / npm / cargo, returns structured failures), output_read / output_grep (page through output that was cut; commands return an output_id), and process_start / process_read / process_kill for long-running work. Long waits are never blocking calls: wait_for_start + wait_for_poll watch a shell predicate harness-side (satisfied when it exits non-zero) so no hub per-call deadline can kill them; a blocked command that hits a timeout returns its partial output (timed_out, exit_code 124), never an error
  • When driving cluster or fleet CLIs through bash, prefer their machine-readable flags (--json / --parsable / -h) over default table output — Slurm table columns are misalignment-prone and mis-read silently
  • Git: git_status, git_diff, git_show, git_log, git_branch, git_add, git_checkout, git_commit, git_push — git_push declares itself irreversible (tool _meta), so the hub gates it even under approval=never; it takes no arguments, so there is no force-flag path, and a direct push to main/master is flagged in the output

Every tool carries read-only / destructive annotations, output is capped and always flagged when truncated, and commands run under a timeout that kills their whole process group.

File tools are confined to a root (default: the directory the client started in; change it with --root DIR or MCP_SWITCHBOARD_HARNESS_ROOT; --root / lifts it), plus two always-writable neighbours: the scratch directory (<root>/.harness/scratch by default, --scratch DIR or MCP_SWITCHBOARD_HARNESS_SCRATCH; created on first use, disposable) and the system temp directory ($TMPDIR, else /tmp). Cap output with --max-output N or MCP_SWITCHBOARD_HARNESS_MAX_OUTPUT.

Use

mcp-switchboard-client runs it by default as a server named harness; nothing to configure (--no-harness turns it off). To run it standalone or pin your own entry, add it to the mcp.json next to the client:

{
  "mcpServers": {
    "harness": { "command": "uvx", "args": ["mcp-switchboard-server-harness"] }
  }
}

or run it directly: mcp-switchboard-server-harness --name harness.

Security

The root/scratch/temp set only confines the file tools; run_command, run_python and process_start still run arbitrary commands as the user that started the client — anything that user can read (~/.git-credentials, ssh keys) is reachable, and the file-tool confines deliberately let through exactly what those can write, so the two paths never disagree. It is a guard against mistakes and path surprises, not a sandbox; a real one (mount namespace / separate uid) is a hub/OS feature, see docs/SANDBOX_PROPOSAL.md. Keep the hub's private listener unexposed, or set MCP_SWITCHBOARD_PRIVATE_TOKEN.

Metadata

Release files for mcp-switchboard-server-harness 0.4.0.dev6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-switchboard-server-harness 0.4.0.dev6
File Size Uploaded Provenance Actions
mcp_switchboard_server_harness-0.4.0.dev6.tar.gz 42.5 kB Without provenance Details for mcp_switchboard_server_harness-0.4.0.dev6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-switchboard-server-harness 0.4.0.dev6
File Interpreter ABI Platform Actions
mcp_switchboard_server_harness-0.4.0.dev6-py3-none-any.whl Python 3 none any Details for mcp_switchboard_server_harness-0.4.0.dev6-py3-none-any.whl

Total release size: 73.6 kB

Release files / mcp_switchboard_server_harness-0.4.0.dev6.tar.gz

Download URL mcp_switchboard_server_harness-0.4.0.dev6.tar.gz
Size 42.5 kB
Tags Source
SHA-256 checksum
How to use checksums
eb627580a9f6065e7aa5f2839065d4dc464c1dbdc9f71e6d65514a16c18ec2f3
BLAKE2b-256 checksum
How to use checksums
e8f3c656446a65ae1bd6b973f538908a026db0719ceac034efd2f25988c60373
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / mcp_switchboard_server_harness-0.4.0.dev6-py3-none-any.whl

Download URL mcp_switchboard_server_harness-0.4.0.dev6-py3-none-any.whl
Size 31.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f4703299c5b2d2756a67eb9a9bc1fd56463166c359422f410916bcd0f3c43630
BLAKE2b-256 checksum
How to use checksums
cb9e121faf2f87f322596313f37e8f0fe13afa345e2e1391a0d04e2c121327dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Security for mcp-switchboard-server-harness 0.4.0.dev6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page