shellLABSCO SUMMARY
Isolation is the feature; the preinstalled toolchain is why it is usable.
An agent that can run code is far more capable and far more dangerous, and containerising it is the honest answer to that. What makes this one practical rather than theoretical is that three language runtimes and the usual command-line tools are already in the image, so the first task does not begin with twenty minutes of installs. Go execution is compiled with cgo disabled, which is why snippets that would otherwise need a toolchain still run.
What it is
An execution sandbox for agents, packaged as a Docker container. Three tools: run a shell command, run a code snippet in one of three languages, or install a package. Because it all happens inside the container, a bad command hits the container rather than your filesystem.
What you get
shellruns a bash command with atimeoutand a working directory, under safety controlsexecute_coderuns a Python, Node.js or Go snippet, creating and cleaning up the temporary files itself and returning compilation as well as runtime errorsinstall_packageadds a dependency throughpip,npmor go modules, with an optional version- A prepared environment rather than a bare image: Ubuntu 22.04 with Python 3.13.3, Node.js 20.19.2 and Go 1.23.4, plus git, curl, wget, build-essential, jq, ripgrep, fd-find and htop
- Safety controls that come with the container — non-root execution, timeouts and concurrency limits
- Two transports: stdio for a local client, and SSE for HTTP deployment
Requirements
Docker. A Makefile wraps the setup — make quick-start builds the container and runs it with SSE transport, and other targets handle the Claude Desktop config. For local development the project uses uv sync and runs the module directly, with MCP_TRANSPORT=sse to switch transport. The SSE endpoint is http://localhost:8000/sse. The server implements the MCP 2024-11-05 specification.
Setup effort
Build from source
USE CASES
Letting an agent test its own code
Run the snippet in the container and read the real compilation or runtime error rather than guessing.
Running a command without touching your machine
Shell work happens inside the container, under a timeout and as a non-root user.
Trying a library before committing to it
Install the package inside the container, run a snippet against it, and throw the container away.
Comparing an approach across languages
Run the same idea in Python, Node.js and Go without setting up three toolchains.
3 tools
Listed in project docs. Your client may show a different list.
execute_codeinstall_packageBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
- Docker (for containerized deployment)
- Python 3.12+ (for local development)
- UV package manager (for dependency management)
- Node.js and npm (for Claude Desktop integration)
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/realugbun/AgentExecMCP
cd AgentExecMCPFirst time setup
make quick-start
make install-claude-configMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"AgentExecMCP": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8000/sse"
]
}
}
}