Cinch

io.github.yusufkadryPublished by GitHub account yusufkadryv0.1.1Updated Oct 24, 2026

Run AI-generated code safely. gVisor-isolated Python/JS sandboxes for any MCP client. Pay per run.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Lets an assistant run short Python or JavaScript programs in a remote gVisor-isolated sandbox and read back stdout, stderr, exit code, and duration.

What you can do
Exposes one tool, execute_code, which runs a self-contained Python or JavaScript program and returns stdout, stderr, exit code, and duration. Each call gets a clean, disposable sandbox on Cinch's infrastructure with no access to your machine, filesystem, or local network. The environment is deliberately minimal: Python 3.12 and Node 20, standard library only, no network, read-only root, a small writable /tmp, 256 MB memory, 0.5 CPU, and a 10-second limit. State does not persist between calls.
When to use it
Useful when you want an assistant to actually execute the code it writes and see real output, rather than handing you a snippet to run yourself. Fits small, self-contained calculations, parsing, or algorithm checks that need only the standard library. Not suitable for work needing third-party packages, network access, large memory, or long runtimes.
Requirements
A local Node.js runtime (Node 18 or newer) since it runs via npx as a stdio process. A Cinch API key supplied in the CINCH_API_KEY environment variable, obtained from cinch.codes. Network access to the Cinch API endpoint, overridable with CINCH_BASE_URL; optional client timeout via CINCH_TIMEOUT_MS. Desktop MCP clients only.
Before you install
Requires the secret CINCH_API_KEY, which is passed in the client config's env block and should be kept out of shared files. Execution is billed per run, so a drained balance can stop runs; out-of-credit responses are surfaced without retrying. Code and its output are sent to Cinch's servers, so avoid submitting sensitive data. Output is truncated at 20,000 characters per stream.

Installation

In SourceWeft

  1. Open Cinch in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@cinch-codes/mcp

MCP server for Cinch. Gives your AI assistant a real sandbox to run code in.

Without it, an assistant writes code and you run it yourself. With it, the assistant runs the code and reads the actual output — inside a gVisor-isolated container on Cinch's infrastructure, with no access to your machine, filesystem, or local network.

Pay per execution. No subscription floor.

Setup

Get an API key at cinch.codes, then add the server to your MCP client.

Claude Desktop — claude_desktop_config.json:

json
{  "mcpServers": {    "cinch": {      "command": "npx",      "args": ["-y", "@cinch-codes/mcp"],      "env": {        "CINCH_API_KEY": "cinch_live_..."      }    }  }}

Claude Desktop on Windows — same file, but Windows can't spawn npx directly, so wrap it with cmd /c:

json
{  "mcpServers": {    "cinch": {      "command": "cmd",      "args": ["/c", "npx", "-y", "@cinch-codes/mcp"],      "env": {        "CINCH_API_KEY": "cinch_live_..."      }    }  }}

Claude Code (macOS/Linux):

bash
claude mcp add --scope user cinch -e CINCH_API_KEY=cinch_live_... -- npx -y @cinch-codes/mcp

Claude Code (Windows):

cmd
claude mcp add --scope user cinch -e CINCH_API_KEY=cinch_live_... -- cmd /c npx -y @cinch-codes/mcp

Cursor — .cursor/mcp.json, same shape as the Claude Desktop config above.

Restart the client. That's it — no install step, npx fetches it on first run.

What it exposes

execute_code

Runs a self-contained Python or JavaScript program and returns stdout, stderr, exit code, and duration.

ParameterTypeDefaultDescription
codestring—The complete program to run. Must print to stdout to return anything.
languagepython | javascriptpythonRuntime to execute in.

Each call gets a clean sandbox. State does not persist between calls, so every snippet needs to stand on its own.

The sandbox environment

Deliberately minimal. Worth knowing before you wonder why an import failed:

RuntimesPython 3.12, Node 20
PackagesStandard library only. No pip or npm packages are installed, and none can be installed at runtime.
NetworkNone. HTTP, DNS, and package installs all fail.
FilesystemRoot is read-only. /tmp is writable (64 MB) and destroyed when the run ends.
Memory256 MB
CPU0.5 cores
Time limit10 seconds
IsolationgVisor (runsc), all capabilities dropped, no-new-privileges, non-root user, 64-process cap

The tool description tells the model all of this up front, so it writes stdlib-only code instead of reaching for numpy and failing on the first call.

Configuration

VariableRequiredDefaultDescription
CINCH_API_KEYyes—Your Cinch API key.
CINCH_TIMEOUT_MSno20000Client-side timeout in ms. The API caps execution at 10s regardless.
CINCH_BASE_URLnohttps://api.cinch.codesOverride the API endpoint.

Troubleshooting

Windows: "Failed to connect" in claude mcp list — you're missing the cmd /c wrapper. Windows resolves npx to a batch script that can't be spawned directly; re-add the server using the Windows command above.

Windows: npm error ENOENT ... AppData\Roaming\npm — some Node installs never create npm's global folder, and npx refuses to run without it. Create it once and retry:

cmd
mkdir %APPDATA%\npm

Server exits immediately with "CINCH_API_KEY is not set" — the env var didn't reach the server. In Claude Code, put -e CINCH_API_KEY=... before the server name in claude mcp add. In config files, check the env block is inside the cinch entry.

Debugging any connection failure — run the server directly to see the real error instead of a generic status:

bash
CINCH_API_KEY=cinch_live_... npx -y @cinch-codes/mcp   # macOS/Linux
cmd
set CINCH_API_KEY=cinch_live_... && cmd /c npx -y @cinch-codes/mcp   # Windows

Correct behavior is cinch-mcp ... ready followed by silence — an MCP server waits for a client. Anything else printed is the actual failure.

Why sandboxed execution

Code written by a model is untrusted code — nothing reviewed it before it ran. Executing it directly on your machine means handing it your filesystem, your network, and your credentials. Cinch runs it somewhere else entirely, in a disposable container with kernel-level isolation, and sends back only the output.

Notes

  • Requires Node 18 or newer.
  • Output is capped at 20,000 characters per stream to protect your context window; anything beyond that is truncated with a marker.
  • Runs that time out or exit non-zero are returned as tool errors, so the assistant knows the code failed and can correct it.
  • Out-of-credit responses are surfaced clearly and instruct the assistant not to retry, so a drained balance does not turn into a retry loop.

Links

MIT

Source: README.md at commit 2309d48

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.