runno MCP
@runno/mcp is a server designed for executing code securely within AI interactions using WebAssembly. It supports multiple languages and offers a sandboxed environment to ensure safe and isolated code execution. The server is compliant with the Model Context Protocol, making it easy to integrate with AI models.
@runno/mcp
Overview
@runno/mcp
is a Model Context Protocol (MCP) server that provides a secure code execution environment for AI assistants. It enables models to execute code in various programming languages inside a sandboxed environment using WebAssembly, offering a safe way to run code snippets during AI interactions.
Features
- Secure Sandboxed Environment: Runs code in isolation without access to the filesystem, network, or system resources
- Multiple Language Support: Execute code in Python, JavaScript (QuickJS), C, C++, Ruby, and PHP
- MCP Compliant: Implements the Model Context Protocol for seamless integration with AI assistants
- Simple CLI Tool: Easy to run via npx without complex setup
- Standard I/O Communication: Uses stdio for communication with the client
Examples
In this example I gave Claude a leetcode problem. It solved it by writing Python: Leetcode problem.
In this example I told Claude to efficiently calculate 5000 primes. It solved it by writing Python. Then when I told it to use C, it rewrote the solution in C (and ran it): 5000 primes.
In this example I asked Claude to tell me the p75 of a short list of numbers. It solved it by first writing Python with Numpy (which didn't work) but then re-orienting and writing just using the standard library: p75 calculation.
How It Works
The @runno/mcp
server provides a run_code
tool that AI assistants can use to execute code snippets in various programming languages. It leverages the @runno/sandbox
package, which uses WebAssembly to create isolated environments for code execution. The result of the code execution is provided over STDIO.
The @runno/sandbox
uses precompiled WebAssembly binaries for multiple programming languages. It then executes those binaries against a virtual file system using the @runno/wasi
implementation of WASI preview1.
You can read more about how the Runno sandbox works in my article I made a Python package for sandboxing code. This is for an older version of the sandbox, but it works basically the same way.
Supported Runtimes
Runtime | Programming Language |
---|---|
python | Python |
quickjs | JavaScript |
clang | C |
clangpp | C++ |
ruby | Ruby |
php-cgi | PHP |
Tool Usage
The run_code
tool accepts the following parameters:
runtime
: The runtime environment to use (one of the supported runtimes)code
: The code string to execute
The tool returns:
- Execution status (completed, crashed, terminated, or timed out)
- Exit code (for completed executions)
- TTY output (combined stdout and stderr)
- Error details (for crashed executions)
Limitations
Code executed within the sandbox:
- Cannot access the filesystem
- Cannot make network connections
- Cannot execute system commands
- Cannot import packages from package managers
- Cannot execute external programs
- Is limited to core programming language capabilities
Running the Server
Using npx
The simplest way to run the Runno MCP server is with npx:
npx @runno/mcp
This will start the server on stdio, making it immediately available for integration with MCP-compatible clients.
Integration with MCP Clients
To use the Runno MCP server with an MCP client, you simply need to configure it to run npx @runno/mcp
.
For Claude you can edit the MCP Config:
{
"mcpServers": {
"runno": {
"command": "/usr/local/bin/npx",
"args": ["@runno/mcp"]
}
}
}
Note: To get the right path for npx
run which npx
.
Security Considerations
- The Runno MCP server provides strong isolation of executed code through WebAssembly
- However, resource consumption (CPU, memory) should still be monitored
- For production use, consider implementing additional controls such as timeouts and resource limits