Sandboxes (extension)
use_sandbox
Select which launched sandbox execute_code should use instead of kernels.
Select which launched sandbox execute_code should use instead of kernels.
destructive: yes · idempotent: yes · open-world: no
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
sandbox_name | string | null | no | null | Sandbox name to activate for execute_code. Pass null/empty to disable sandbox routing and return to Jupyter kernels. |
Output
{
"properties": {
"kind": {
"description": "What this result is — 'cell.read', 'notebooks.list' and so on. Lets a client tell one answer from another without matching prose.",
"title": "Kind",
"type": "string"
},
"result": {
"default": null,
"description": "The answer itself: a message, the rows of a listing, or the outputs of an execution in order.",
"title": "Result"
}
},
"required": [
"kind"
],
"type": "object",
"additionalProperties": true,
"description": "What every tool of this server answers with.\n\nDeclared so the shape is *advertised* rather than merely produced. A tool\nthat returns structure without saying what it will return leaves a client\nnothing to validate against and the generated reference nothing to show —\nthe call works and the contract is invisible, which is the worst of both.\n\nExtra fields are allowed on purpose. A tool that already answers with a\nmapping keeps its own keys (see :func:`_default_shape`), and those are the\ninteresting part of its answer; forbidding them would mean either\nflattening every tool into one shape or declaring nothing at all.",
"title": "ToolAnswer"
}Call it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "use_sandbox",
"arguments": {
"sandbox_name": null
}
}
}result = await session.call_tool("use_sandbox", arguments={"sandbox_name": None})Source
Registered by the @mcp.tool decorator on use_sandbox in extensions/sandboxes/jupyter_mcp_sandboxes/extension.py.
