Skip to main content
Pre-release

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

mcp-switchboard-client

The client half of mcp-switchboard.

It reads an mcp.json, spawns the local stdio MCP servers it describes, and opens a single outbound WebSocket to an mcp-switchboard-hub, multiplexing every server over that one connection. No inbound port is ever opened, so it works from behind NAT with nothing forwarded.

The client speaks no MCP itself — it is a pipe, shuttling each server's stdin/stdout across the tunnel. All MCP logic lives in the hub. That is why its only own dependencies are websockets and certifi (plus the harness package, which brings the mcp SDK) (a bundled CA bundle, because uvx's portable Pythons often cannot find a system certificate store).

Running

uvx mcp-switchboard-client --hub-url wss://switchboard.example.com --token "$TOKEN"

or bootstrap uvx/npx first with the installer:

curl -fsSL https://akospapp.github.io/mcp-switchboard/install.sh | sh -s -- \
  --hub-url wss://switchboard.example.com --token "$TOKEN"

mcp.json uses the familiar shape, resolved from the current directory. It is optional: without one, the client tunnels just the built-in coding harness (see below):

{
  "mcpServers": {
    "git": { "command": "uvx", "args": ["mcp-server-git", "--repository", "."] }
  }
}

An entry may set "project" to group it under a project name (a top-level "project" is the default for all entries). The client sends it to the hub, which uses it in tool names and project-scoped endpoints. Names must not contain __.

A first-party coding harness (file, search, git and shell tools) is added as a server named harness by default, confined to the directory you start the client in. Turn it off with --no-harness or MCP_SWITCHBOARD_HARNESS=false; an mcp.json entry named harness replaces it.

Settings can also come from MCP_SWITCHBOARD_* environment variables or a .env file (HUB_URL, TUNNEL_TOKEN, LABEL, CONFIG, …). Any value that starts with / and points at an existing regular file is read from that file, so a token can be passed as a path.

LABEL defaults to the machine's hostname and is how the hub tags this machine's tools, so consumers can tell which host a tool lives on.

See the main README for the full picture.

Metadata

Release files for mcp-switchboard-client 0.3.0.dev3

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-client 0.3.0.dev3
File Size Uploaded Provenance Actions
mcp_switchboard_client-0.3.0.dev3.tar.gz 28.7 kB Without provenance Details for mcp_switchboard_client-0.3.0.dev3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-switchboard-client 0.3.0.dev3
File Interpreter ABI Platform Actions
mcp_switchboard_client-0.3.0.dev3-py3-none-any.whl Python 3 none any Details for mcp_switchboard_client-0.3.0.dev3-py3-none-any.whl

Total release size: 52.2 kB

Release files / mcp_switchboard_client-0.3.0.dev3.tar.gz

Download URL mcp_switchboard_client-0.3.0.dev3.tar.gz
Size 28.7 kB
Tags Source
SHA-256 checksum
How to use checksums
986cab2bafa08d95b5759714225c640400e57dfc1f50637ab64f01cdce88ba9a
BLAKE2b-256 checksum
How to use checksums
5eb6a740b17eff4be122ffe9138a81d82a61e3ba1511f32500a472192192e420
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_client-0.3.0.dev3-py3-none-any.whl

Download URL mcp_switchboard_client-0.3.0.dev3-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adea51fd43f00e9ed22eb510efcf27315b484773c111300582411972691fb042
BLAKE2b-256 checksum
How to use checksums
302b2bc1c5919f9c8fac367b08154cf141c56aef9fd83b9d5857b6f299417650
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-client 0.3.0.dev3

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