> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcp-use.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sandbox

> Sandbox connector for MCP implementations API Documentation

export const RandomGradientBackground = ({className, color, children, grayscaled = false}) => {
  const saturation = useMemo(() => {
    if (color) {
      const values = color.split("(")[1].split(")")[0].trim().split(/\s+/);
      return parseFloat(values[1] || "0");
    }
    return grayscaled ? 0 : 0.2;
  }, [color, grayscaled]);
  const lightness = useMemo(() => {
    if (color) {
      const values = color.split("(")[1].split(")")[0].trim().split(/\s+/);
      return parseFloat(values[0] || "0.5");
    }
    return grayscaled ? 0.3 : 0.4;
  }, [color, grayscaled]);
  const randomHue = useMemo(() => {
    if (color) {
      const values = color.split("(")[1].split(")")[0].trim().split(/\s+/);
      return parseFloat(values[2] || "0");
    }
    return Math.floor(Math.random() * 360);
  }, [color]);
  const randomColor = useMemo(() => {
    if (color) {
      return color;
    }
    return `oklch(${Math.min(lightness, 1)} ${saturation} ${randomHue})`;
  }, [randomHue, saturation, lightness]);
  const lightColor = useMemo(() => {
    return `oklch(${Math.min(lightness * 2, 1)} ${saturation} ${randomHue})`;
  }, [randomHue, saturation, lightness, color]);
  const direction = useMemo(() => {
    return Math.floor(Math.random() * 360);
  }, [randomHue]);
  const brightnessFilter = useMemo(() => {
    return "1000%";
  }, []);
  return <div className={`relative overflow-hidden ${className || ""}`} style={{
    background: `${lightColor}`,
    minHeight: '100%',
    width: '100%'
  }}>
      <div className="absolute inset-0 w-full h-full" style={{
    background: `linear-gradient(${direction}deg, ${randomColor}, transparent), url(https://grainy-gradients.vercel.app/noise.svg)`,
    filter: `contrast(120%) brightness(${brightnessFilter})`,
    backgroundSize: 'cover',
    backgroundRepeat: 'no-repeat'
  }} />
      {children && <div className="relative z-10 w-full h-full">{children}</div>}
    </div>;
};

<Callout type="info" title="Source Code">
  View the source code for this module on GitHub: <a href="https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/client/connectors/sandbox.py" target="_blank" rel="noopener noreferrer">[https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp\_use/client/connectors/sandbox.py](https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/client/connectors/sandbox.py)</a>
</Callout>

Sandbox connector for MCP implementations.

This module provides a connector for communicating with MCP implementations
that are executed inside a sandbox environment (currently using E2B).

## SandboxConnector

<div>
  <RandomGradientBackground className="rounded-lg p-4 w-full h-full rounded-full">
    <div className="text-black">
      <div className="text-black font-bold text-xl mb-2 mt-8"><code className="!text-black">class</code> SandboxConnector</div>

      Connector for MCP implementations running in a sandbox environment.

      This connector runs a user-defined stdio command within a sandbox environment,
      currently implemented using E2B, potentially wrapped by a utility like 'supergateway'
      to expose its stdio.
    </div>
  </RandomGradientBackground>

  ```python theme={null}
  from mcp_use.client.connectors.sandbox import SandboxConnector
  ```

  <Card type="info">
    ### `method` **init**

    Initialize a new sandbox connector.

    **Parameters**

    > <ParamField body="command" type="str" required="True">   String value </ParamField>
    > <ParamField body="args" type="list[str]" required="True">   List of items </ParamField>
    > <ParamField body="env" type="dict[str, str] | None" default="None">   Environment variables for the user's MCP server command. </ParamField>
    > <ParamField body="e2b_options" type="mcp_use.client.connectors.sandbox.SandboxOptions | None" default="None">   Configuration options for the E2B sandbox environment. </ParamField>
    > <ParamField body="timeout" type="float" default="5">   Timeout for the sandbox process in seconds. </ParamField>
    > <ParamField body="sse_read_timeout" type="float" default="300">   Timeout for the SSE connection in seconds. </ParamField>
    > <ParamField body="sampling_callback" type="mcp.client.session.SamplingFnT | None" default="None">   Optional sampling callback. </ParamField>
    > <ParamField body="elicitation_callback" type="mcp.client.session.ElicitationFnT | None" default="None">   Optional elicitation callback. </ParamField>
    > <ParamField body="message_handler" type="mcp.client.session.MessageHandlerFnT | None" default="None">   Optional callback to handle messages. </ParamField>
    > <ParamField body="logging_callback" type="mcp.client.session.LoggingFnT | None" default="None">   Optional callback to handle log messages. </ParamField>
    > <ParamField body="middleware" type="list[mcp_use.client.middleware.middleware.Middleware] | None" default="None">   Optional list of middleware. </ParamField>
    > <ParamField body="roots" type="list[mcp.types.Root] | None" default="None">   Optional initial list of roots to advertise to the server. </ParamField>
    > <ParamField body="list_roots_callback" type="mcp.client.session.ListRootsFnT | None" default="None">   Optional custom callback to handle roots/list requests. </ParamField>

    **Signature**

    ```python wrap theme={null}
    def __init__(command: str, args: list[str], env: dict[str, str] | None = None, e2b_options: mcp_use.client.connectors.sandbox.SandboxOptions | None = None, timeout: float = 5, sse_read_timeout: float = 300, sampling_callback: mcp.client.session.SamplingFnT | None = None, elicitation_callback: mcp.client.session.ElicitationFnT | None = None, message_handler: mcp.client.session.MessageHandlerFnT | None = None, logging_callback: mcp.client.session.LoggingFnT | None = None, middleware: list[mcp_use.client.middleware.middleware.Middleware] | None = None, roots: list[mcp.types.Root] | None = None, list_roots_callback: mcp.client.session.ListRootsFnT | None = None):
    ```
  </Card>

  <Card type="info">
    ### `method` wait\_for\_server\_response

    Wait for the server to respond to HTTP requests.

    **Parameters**

    > <ParamField body="base_url" type="str" required="True">   The base URL to check for server readiness </ParamField>
    > <ParamField body="timeout" type="int" default="30">   Maximum time to wait in seconds </ParamField>

    **Returns**

    > <ResponseField name="returns" type="bool">True if server is responding, raises TimeoutError otherwise</ResponseField>

    **Signature**

    ```python wrap theme={null}
    def wait_for_server_response(base_url: str, timeout: int = 30):
    ```
  </Card>
</div>

## SandboxOptions

<div>
  <RandomGradientBackground className="rounded-lg p-4 w-full h-full rounded-full">
    <div className="text-black">
      <div className="text-black font-bold text-xl mb-2 mt-8"><code className="!text-black">class</code> SandboxOptions</div>

      Configuration options for sandbox execution.

      This type defines the configuration options available when running
      MCP servers in a sandboxed environment (e.g., using E2B).
    </div>
  </RandomGradientBackground>

  ```python theme={null}
  from mcp_use.client.connectors.sandbox import SandboxOptions
  ```

  <Card type="info">
    **Attributes**

    >

    <ParamField body="api_key" type="str" required="True">   String value </ParamField>
    <ParamField body="sandbox_template_id" type="NotRequired" required="True">   Parameter value </ParamField>
    <ParamField body="supergateway_command" type="NotRequired" required="True">   Parameter value </ParamField>
  </Card>

  <Card type="info">
    ### `method` **init**

    Initialize self.  See help(type(self)) for accurate signature.

    **Parameters**

    > <ParamField body="args" required="True">   Parameter value </ParamField>
    > <ParamField body="kwargs" required="True">   Parameter value </ParamField>

    **Signature**

    ```python wrap theme={null}
    def __init__(args, kwargs):
    ```
  </Card>
</div>
