MCP server exposing a hosted boxkite control-plane (sandbox lifecycle, exec, files) as native tools for MCP-compatible clients (Claude Code, Claude Desktop, Codex, Cursor, etc.).
Project description
boxkite-mcp
An MCP server over a hosted boxkite control-plane — lets any MCP-compatible client (Claude Code, Claude Desktop, Codex, Cursor, etc.) attach a real sandboxed code-execution backend as a native tool source, zero custom integration code.
Prefer no local install? A control-plane deployment built from this repo also exposes a remote Streamable HTTP MCP endpoint directly at
https://your-control-plane.example.com/mcp/— add that URL to your MCP client's config instead of installing this package. Seedocs/HOSTED-MCP-DESIGN.md. Use this package when you want the MCP server process running on your own machine instead.
Install
pip install boxkite-mcp
# or, to run it as a standalone MCP server without a project venv:
pipx install boxkite-mcp
Configuration
Two required environment variables:
| Variable | Meaning |
|---|---|
BOXKITE_BASE_URL |
Base URL of the boxkite control-plane |
BOXKITE_API_KEY |
A bxk_live_... API key for your account |
Run
BOXKITE_BASE_URL=https://your-control-plane.example.com \
BOXKITE_API_KEY=bxk_live_... \
boxkite-mcp
Speaks MCP over stdio — point an MCP client's config at the boxkite-mcp command.
Tools
Sandbox lifecycle and exec/file tools — create_sandbox, destroy_sandbox,
get_sandbox, list_sandboxes, exec, file_create, view, str_replace,
ls, glob, grep — every per-sandbox tool takes session_id as a
parameter, so the calling agent owns the full lifecycle within one
conversation.
Custom image tools (build a sandbox image with extra packages baked in,
then pass its id as create_sandbox's image_id) — create_sandbox_image,
get_sandbox_image, list_sandbox_images, delete_sandbox_image.
Independent storage volume tools (create persistent storage mountable into
one or more sandboxes via create_sandbox's volume_mounts) —
create_sandbox_volume, get_sandbox_volume, list_sandbox_volumes,
delete_sandbox_volume.
Outbound-MCP connection tools (grant a sandbox network egress to a curated
MCP catalog entry via create_sandbox's mcp_connection_names — see
docs/OUTBOUND-MCP-DESIGN.md;
there is no MCP-proxy transport yet, so this only widens network reachability,
it doesn't yet let the sandbox speak MCP protocol to the destination) —
create_mcp_connection, list_mcp_connections, delete_mcp_connection.
Language-server (LSP) tools for code intelligence inside a sandbox — start a
language server, open a file into it, request completions at a position, then
stop it — lsp_start, lsp_open, lsp_completion, lsp_stop. Like the other
per-sandbox tools, each takes session_id.
That's 26 tools in total.
Security
exec runs arbitrary shell commands with no client-side allowlist — the
isolation boundary is the sandbox itself (see the root repo's SECURITY.md),
not these MCP tools' argument validation. exec/view results are returned
to the calling LLM as plain, unsanitized text — treat sandbox output as
untrusted input, the same as a web-fetch or file-read tool's result.
Related tools
Moving an in-progress local Claude Code/Codex CLI/opencode session (full
conversation history) into a fresh boxkite sandbox is not something
this MCP server can do as a tool call: a handoff adapter needs to read
local, on-disk CLI session state (e.g. Claude Code's
~/.claude/projects/... files) on the user's own machine, while an MCP
tool call runs wherever the MCP client invokes it, and boxkite-mcp itself
is a thin proxy to the hosted control-plane with no access to the calling
agent's local filesystem. That's handled instead by a separate, local-only
companion CLI, boxkite-handoff — see
../docs/handoff-adapters.md and
../handoff-cli/README.md for how it works.
Not yet published to PyPI.
Development
pip install -e ".[dev]"
pytest tests/
See the root README for what boxkite is and the full self-hosting story.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file boxkite_mcp-0.2.1.tar.gz.
File metadata
- Download URL: boxkite_mcp-0.2.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e612ffb38a85ec371126aaaf28b778a2223d1455dfdb74542c6143c8d4ae2a2
|
|
| MD5 |
ed83d15690d4ba61a8f339d916f43476
|
|
| BLAKE2b-256 |
a8d15125d6651cc9daca8b4d8a7013c99e81dd7228865eb25f30f68dd0f4f310
|
File details
Details for the file boxkite_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: boxkite_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36c27650209fabb653f87e0554ad86a04613595415d0bc4f828b2e3bb6bc9f7b
|
|
| MD5 |
b2b0af853667520d6d07d8a55a505fb9
|
|
| BLAKE2b-256 |
15513b5692ce8b5ef3753e9c96a38ce4f5727bc94389c4994d761d8cad0d0971
|