Hosts the MCP Sandbox repository with examples, documentation, and source code, allowing users to contribute or report issues.
Allows converting any JavaScript module into a sandboxed MCP server with automatic reflection, making JavaScript functions accessible to AI systems with type inference and documentation extraction.
Distributes the MCP Sandbox packages (@mcp-sandbox/cli, @mcp-sandbox/core, @mcp-sandbox/utils) through the npm registry for easy installation and usage.
Provides status badges for the README to display npm version and license information.
Provides full type safety and IntelliSense support for developing MCP servers, with automatic type inference from TypeScript modules.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Sandboxcalculate the area of a circle with radius 5"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Sandbox
Turn any JavaScript module into a sandboxed MCP (Model Context Protocol) server with automatic reflection and type inference.
๐ฏ What is MCP Sandbox?
MCP Sandbox automatically converts JavaScript modules into MCP (Model Context Protocol) compatible servers, making any JavaScript function accessible to AI systems. It uses VM sandboxing for security, automatic type inference, and generates proper MCP configurations.
Related MCP server: OpenAPI to MCP Server
โจ Features
๐ Automatic Reflection - Analyzes JS modules and extracts function signatures
๐ก๏ธ Secure Sandboxing - Executes code in isolated VM contexts with timeouts
๐ง Smart Type Inference - Detects parameter types from defaults and naming patterns
๐ JSDoc Integration - Extracts documentation from function comments
๐ก MCP Protocol - Full JSON-RPC 2.0 and SSE support
๐ REST API - Legacy REST endpoints for easy testing
โ๏ธ TypeScript - Full type safety and IntelliSense support
๐ Quick Start
Installation
# Install globally for CLI usage
npm install -g @mcp-sandbox/cli
# Or use in a project
npm install @mcp-sandbox/core @mcp-sandbox/cliBasic Usage
# Start MCP server for a JavaScript module
$ mcp-sandbox start ./math-utils.js
๐๏ธ Initializing MCP Sandbox...
๐ Reflecting module
๐ Discovered 2 tools:
- circleArea: Calculate area of a circle
- fibonacci: Generate Fibonacci sequence
๐ MCP Sandbox server running at http://localhost:3000
๐ MCP Tools: http://localhost:3000/mcp/tools
โก MCP Execute: http://localhost:3000/mcp/execute
๐ MCP SSE: http://localhost:3000/sse
๐ก MCP JSON-RPC: http://localhost:3000/mcp/jsonrpc
โ๏ธ MCP Config: http://localhost:3000/mcp-config
๐ก For MCP Inspector, use: http://localhost:3000/sse
Example Module
/**
* Calculate the area of a circle
* @param radius The radius of the circle
*/
function circleArea(radius = 1) {
return Math.PI * radius * radius;
}
/**
* Generate fibonacci sequence
* @param count Number of fibonacci numbers to generate
*/
function fibonacci(count = 10) {
const seq = [0, 1];
for (let i = 2; i < count; i++) {
seq[i] = seq[i - 1] + seq[i - 2];
}
return seq.slice(0, count);
}
module.exports = { circleArea, fibonacci };Running mcp-sandbox start math-utils.js automatically:
๐ Reflects the module and discovers functions
๐ Generates type schemas from parameters
๐ Starts MCP server at
http://localhost:3000๐พ Creates
mcp-config.jsonfor MCP clients
๐ก API Endpoints
The server exposes both MCP and REST endpoints:
MCP Protocol (JSON-RPC 2.0)
POST /mcp/jsonrpc- Main MCP endpointGET /sse- Server-Sent Events for real-time updates
REST API (for testing)
GET /tools- List available toolsPOST /execute/:toolName- Execute a specific toolGET /mcp-config- Get MCP server configurationGET /health- Health check
Example Usage
# List tools
curl http://localhost:3000/tools
# Execute function via REST
curl -X POST http://localhost:3000/execute/circleArea \
-H "Content-Type: application/json" \
-d '{"args": {"radius": 5}}'
# MCP JSON-RPC call
curl -X POST http://localhost:3000/mcp/jsonrpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "fibonacci", "arguments": {"count": 8}}}'๐๏ธ Programmatic Usage
import { MCPSandbox } from '@mcp-sandbox/core';
const sandbox = new MCPSandbox({
port: 3000,
timeout: 5000,
});
// Load and analyze module
await sandbox.loadModule('./my-module.js');
// Start MCP server
await sandbox.start();
// Execute tools directly
const result = await sandbox.executeTool('myFunction', {
param1: 'value1',
});๐ Example Modules Included
The repository includes several example modules demonstrating different use cases:
Mathematical Operations (examples/math-utils.js)
Circle area calculation
Fibonacci sequence generation
Compound interest calculation
Prime number checking
Degree/radian conversion
Factorial calculation
String Manipulation (examples/string-utils.js)
Title case conversion
Random string generation
Word counting
Palindrome detection
String reversal
Capitalization
Array Operations (examples/array-utils.js)
Array shuffling (Fisher-Yates)
Unique value extraction
Array chunking
Set operations (intersection, difference)
Array flattening
Filesystem Operations (examples/filesystem-utils.js)
File reading/writing (async)
Directory listing and creation
File searching with patterns
Disk usage calculation
File copying and deletion
Line-by-line file reading
๐ ๏ธ Development
# Clone repository
git clone https://github.com/danstarns/mcp-sandbox.git
cd mcp-sandbox
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run examples
pnpm example:math # Math utilities
pnpm example:filesystem # File operations
pnpm example:string # String manipulation
# Lint and format
pnpm lint && pnpm format๐ง Configuration Options
CLI Options
mcp-sandbox start <module> [options]
Options:
-p, --port <port> Server port (default: 3000)
-h, --host <host> Server host (default: localhost)
-t, --timeout <ms> Execution timeout (default: 5000ms)
-o, --output <file> Output MCP configuration to fileProgrammatic Options
interface SandboxOptions {
port?: number; // Server port (default: 3000)
host?: string; // Server host (default: 'localhost')
timeout?: number; // Execution timeout (default: 5000ms)
maxMemory?: number; // Memory limit (default: 64MB)
}๐ Security Features
VM Isolation - Code runs in separate V8 contexts
Execution Timeouts - Configurable time limits prevent infinite loops
Memory Limits - Prevent memory exhaustion attacks
Controlled Requires - Limited module access in sandbox
Input Validation - Parameter type checking and validation
๐ฎ Testing with MCP Inspector
Start your MCP server:
mcp-sandbox start examples/math-utils.jsOpen MCP Inspector
Set Transport Type to "Streamable HTTP"
Enter URL:
http://localhost:3000/mcp/jsonrpcConnect and test your tools!
๐ฆ Packages
This is a monorepo containing multiple packages:
@mcp-sandbox/cli- Command-line interface@mcp-sandbox/core- Core library@mcp-sandbox/utils- Shared utilities
๐ค Contributing
Contributions are welcome! Please read our Contributing Guide and check out the open issues.
๐ License
MIT License - see LICENSE for details.
๐ Links
GitHub Repository: https://github.com/danstarns/mcp-sandbox
NPM CLI Package: https://www.npmjs.com/package/@mcp-sandbox/cli
NPM Core Package: https://www.npmjs.com/package/@mcp-sandbox/core
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.