mcp-exec MCP
An open-source MCP server that provides a single 'exec' tool to run caller-supplied Python code within a secure, network-isolated sandbox. It supports stdio, HTTP, and SSE transports, enforcing strict security invariants such as no network access, non-root execution, and resource limits to safely execute code without flooding the agent's context with multiple tool schemas.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 1 GitHub star
What you can do with it
- Execute Python scripts in a secure sandbox
- Run data analysis code with numpy/pandas
- Generate plots using matplotlib safely
- Orchestrate agent tasks via code execution
Source and maintenance
- Last repository push
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
docker.io/idconstruct/mcp-exec:v0.5.4
{
"transport": "stdio",
"identifier": "docker.io/idconstruct/mcp-exec:v0.5.4",
"runtimeHint": "docker",
"registryType": "oci",
"runtimeArguments": [
{
"name": "--network",
"type": "named",
"value": "none",
"description": "No network for the sandbox (stdio posture)."
},
{
"name": "--read-only",
"type": "named",
"description": "Read-only root filesystem."
},
{
"name": "--cap-drop",
"type": "named",
"value": "ALL",
"description": "Drop all Linux capabilities."
},
{
"name": "--security-opt",
"type": "named",
"value": "no-new-privileges",
"description": "Block privilege escalation."
},
{
"name": "--user",
"type": "named",
"value": "65532:65532",
"description": "Run as the non-root sandbox user."
},
{
"name": "--tmpfs",
"type": "named",
"value": "/tmp:rw,noexec,nosuid,size=64m",
"description": "Writable ephemeral workspace (rootfs is read-only)."
},
{
"name": "--memory",
"type": "named",
"value": "256m",
"description": "Memory limit."
},
{
"name": "--pids-limit",
"type": "named",
"value": "128",
"description": "PID limit."
},
{
"name": "--cpus",
"type": "named",
"value": "1",
"description": "CPU limit."
}
],
"environmentVariables": [
{
"name": "MCP_EXEC_TRANSPORT",
"default": "stdio",
"description": "MCP transport. Must be 'stdio' for direct docker/stdio use."
},
{
"name": "MCP_EXEC_DEFAULT_TIMEOUT_S",
"default": "30",
"description": "Default wall-clock timeout per exec, seconds."
},
{
"name": "MCP_EXEC_MAX_TIMEOUT_S",
"default": "300",
"description": "Maximum wall-clock timeout a caller may request, seconds."
},
{
"name": "MCP_EXEC_MAX_OUTPUT_BYTES",
"default": "1048576",
"description": "Cap on combined stdout/stderr before truncation."
},
{
"name": "MCP_EXEC_MAX_STDIN_BYTES",
"default": "1048576",
"description": "Cap on stdin passed to the sandboxed code."
},
{
"name": "MCP_EXEC_AUTH_TOKEN",
"description": "Optional X-MCP-AUTH token (http/sse transports only)."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"mcp-exec-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_EXEC_TRANSPORT=<YOUR_MCP_EXEC_TRANSPORT>",
"-e",
"MCP_EXEC_DEFAULT_TIMEOUT_S=<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_TIMEOUT_S=<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_OUTPUT_BYTES=<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"-e",
"MCP_EXEC_MAX_STDIN_BYTES=<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"-e",
"MCP_EXEC_AUTH_TOKEN=<YOUR_MCP_EXEC_AUTH_TOKEN>",
"docker.io/idconstruct/mcp-exec:v0.5.4"
],
"env": {
"MCP_EXEC_TRANSPORT": "<YOUR_MCP_EXEC_TRANSPORT>",
"MCP_EXEC_DEFAULT_TIMEOUT_S": "<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"MCP_EXEC_MAX_TIMEOUT_S": "<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"MCP_EXEC_MAX_OUTPUT_BYTES": "<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"MCP_EXEC_MAX_STDIN_BYTES": "<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"MCP_EXEC_AUTH_TOKEN": "<YOUR_MCP_EXEC_AUTH_TOKEN>"
}
}
}
}Cline
{
"mcpServers": {
"mcp-exec-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_EXEC_TRANSPORT=<YOUR_MCP_EXEC_TRANSPORT>",
"-e",
"MCP_EXEC_DEFAULT_TIMEOUT_S=<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_TIMEOUT_S=<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_OUTPUT_BYTES=<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"-e",
"MCP_EXEC_MAX_STDIN_BYTES=<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"-e",
"MCP_EXEC_AUTH_TOKEN=<YOUR_MCP_EXEC_AUTH_TOKEN>",
"docker.io/idconstruct/mcp-exec:v0.5.4"
],
"env": {
"MCP_EXEC_TRANSPORT": "<YOUR_MCP_EXEC_TRANSPORT>",
"MCP_EXEC_DEFAULT_TIMEOUT_S": "<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"MCP_EXEC_MAX_TIMEOUT_S": "<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"MCP_EXEC_MAX_OUTPUT_BYTES": "<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"MCP_EXEC_MAX_STDIN_BYTES": "<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"MCP_EXEC_AUTH_TOKEN": "<YOUR_MCP_EXEC_AUTH_TOKEN>"
}
}
}
}VS Code
{
"servers": {
"mcp-exec-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_EXEC_TRANSPORT=<YOUR_MCP_EXEC_TRANSPORT>",
"-e",
"MCP_EXEC_DEFAULT_TIMEOUT_S=<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_TIMEOUT_S=<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_OUTPUT_BYTES=<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"-e",
"MCP_EXEC_MAX_STDIN_BYTES=<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"-e",
"MCP_EXEC_AUTH_TOKEN=<YOUR_MCP_EXEC_AUTH_TOKEN>",
"docker.io/idconstruct/mcp-exec:v0.5.4"
],
"env": {
"MCP_EXEC_TRANSPORT": "<YOUR_MCP_EXEC_TRANSPORT>",
"MCP_EXEC_DEFAULT_TIMEOUT_S": "<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"MCP_EXEC_MAX_TIMEOUT_S": "<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"MCP_EXEC_MAX_OUTPUT_BYTES": "<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"MCP_EXEC_MAX_STDIN_BYTES": "<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"MCP_EXEC_AUTH_TOKEN": "<YOUR_MCP_EXEC_AUTH_TOKEN>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"mcp-exec-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_EXEC_TRANSPORT=<YOUR_MCP_EXEC_TRANSPORT>",
"-e",
"MCP_EXEC_DEFAULT_TIMEOUT_S=<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_TIMEOUT_S=<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"-e",
"MCP_EXEC_MAX_OUTPUT_BYTES=<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"-e",
"MCP_EXEC_MAX_STDIN_BYTES=<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"-e",
"MCP_EXEC_AUTH_TOKEN=<YOUR_MCP_EXEC_AUTH_TOKEN>",
"docker.io/idconstruct/mcp-exec:v0.5.4"
],
"env": {
"MCP_EXEC_TRANSPORT": "<YOUR_MCP_EXEC_TRANSPORT>",
"MCP_EXEC_DEFAULT_TIMEOUT_S": "<YOUR_MCP_EXEC_DEFAULT_TIMEOUT_S>",
"MCP_EXEC_MAX_TIMEOUT_S": "<YOUR_MCP_EXEC_MAX_TIMEOUT_S>",
"MCP_EXEC_MAX_OUTPUT_BYTES": "<YOUR_MCP_EXEC_MAX_OUTPUT_BYTES>",
"MCP_EXEC_MAX_STDIN_BYTES": "<YOUR_MCP_EXEC_MAX_STDIN_BYTES>",
"MCP_EXEC_AUTH_TOKEN": "<YOUR_MCP_EXEC_AUTH_TOKEN>"
}
}
}
}Let your agent find its tools
Find servers like mcp-exec MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.