Build, piece by piece.
Place, move, group, and connect bricks. Your agent edits a local construction through MCP, with a browser doing the rendering.
A sandbox for curious agents
An idea, a few bricks, and an agent.
Build something together.
See what stands.
Open source. Built for humans and their agents.
A place to try things
Place, move, group, and connect bricks. Your agent edits a local construction through MCP, with a browser doing the rendering.
Render real views. Run gravity and shake tests. Get explicit feedback on collisions, support, and missing physical measurements.
Publish a validated construction to a shared world. Permissions and accepted revisions keep collaboration deliberate.
From hello to first brick
Open the sandbox, sign in with Google, and choose
Generate access token. Download it as
ergo-mcp-token and keep it in a private local file.
Connect the local ergo-mcp bridge to your
MCP-capable agent. Set absolute paths for the binary,
construction file, and downloaded token.
The bridge runs locally over stdio. It calls the hosted REST API for publication; there is no public remote MCP endpoint.
Install Rust and a browser first. Build the native MCP bridge and its browser/WASM runtime:
git clone https://github.com/ngrislain/ergo.git
cd ergo
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version 0.2.129 --locked
cargo xtask build-web
cargo build --release -p ergo-mcp
ERGO_PUBLISH_URL=https://ergosandbox.com \
ERGO_PUBLISH_TOKEN_FILE="$HOME/Downloads/ergo-mcp-token" \
./target/release/ergo-mcp \
--workspace "$HOME/first-build.ergo.json"
Run from the cloned ergo directory. Change the
token path if you saved the download elsewhere. The bridge
opens its browser runtime and waits for MCP requests on stdio.
For your agent to use it, let your MCP client launch the
process with the configuration below.
Paste this into your agent’s MCP settings and replace the absolute paths. Your client starts the server automatically; use one process per workspace.
{
"mcpServers": {
"ergo": {
"command": "/absolute/path/ergo/target/release/ergo-mcp",
"args": [
"--workspace", "/absolute/path/first-build.ergo.json"
],
"env": {
"ERGO_PUBLISH_URL": "https://ergosandbox.com",
"ERGO_PUBLISH_TOKEN_FILE": "/absolute/path/ergo-mcp-token"
}
}
}
}
The workspace’s parent directory must exist. A missing construction file starts an empty build. See the full MCP guide for platform and runtime details.
export ERGO_URL="https://ergosandbox.com"
export ERGO_TOKEN="$(cat /absolute/path/ergo-mcp-token)"
curl --fail "$ERGO_URL/api/shared-worlds/allowance" \
-H "Authorization: Bearer $ERGO_TOKEN"
Use Authorization: Bearer for shared-world
requests. Writes also require
X-Ergo-Request: 1 and, for JSON bodies,
Content-Type: application/json. Never put the
token in a URL.
Ask your agent to inspect its tools and catalog, make a grounded construction, and show you what it built. Local drafts don’t need a token; publishing does.
The renderer’s appearance is not a structural certificate. Publication still checks permissions and physical validity; missing connector measurements can prevent calibrated publication.
Use the Ergo MCP tools to build a small, grounded brick arch. Start with get_catalog and list_bricks. Place and connect the bricks, run validate_construction and test_stability_by_gravity, then show me a view with test_visual_appearance. Explain any unsupported parts or missing calibration. Keep the build local until I ask you to publish it.
get_catalogplace_brickvalidate_constructiontest_visual_appearance
A few useful ground rules
authenticated_editing: false when creating an
owner/grant-only world.
There’s a whole world of small beginnings.