mcpField
C
cinch

cinch

Local
github.com/yusufkadryDeveloper Tools0Updated 14w ago

About cinch

cinch is an MCP server that lets AI assistants run Python or JavaScript in gVisor-isolated containers on Cinch infrastructure. It returns actual program output, with a fresh sandbox for each run and no access to the local machine or network.

Key features

  1. 01Run Python and JavaScript
  2. 02Use gVisor-isolated containers
  3. 03Return stdout, stderr, and exit code
  4. 04Start each run in a clean sandbox
  5. 05Restrict network, filesystem, and resources

Use cases

  1. 01Check the actual output of generated code
  2. 02Run untrusted code in an isolated environment
  3. 03Execute snippets that use only the standard library

MCP support

The MCP server exposes an `execute_code` tool for running Python or JavaScript programs and returning their execution results.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"yusufkadry-cinch": {
"command": "npx",
"args": [
"-y",
"@cinch-codes/mcp"
],
"env": {
"CINCH_API_KEY": "<CINCH_API_KEY>"
}
}
}
}
Run commandnpx -y @cinch-codes/mcp
Environment variables to set
CINCH_API_KEYSecretCinch API key from cinch.codes

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@cinch-codes/mcp0.1.1

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
codestringYesA complete, self-contained program using only the standard library. Must print results to stdout.
languageenumNoRuntime to execute the code in. Python 3.12 or Node 20.python | javascript

Details

From the project 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:

{
  "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:

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

Claude Code (macOS/Linux):

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

Claude Code (Windows):

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:

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:

CINCH_API_KEY=cinch_live_... npx -y @cinch-codes/mcp   # macOS/Linux
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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.