Model Context Protocol · Connector

Point Claude at a real Linux VM.

Connect Claude to iximiuz Labs — a hands-on coach that reads the content, drives your playground VMs, and helps you get unstuck.

$https://labs.iximiuz.com/mcp

Add it to Claude Code or the Claude apps. You approve exactly what it can touch.

claude ▸ ixlabs

Spin up a Docker playground and run nginx on port 80.

start_play(docker) — docker-01 ready in 3s

run_shell_command(docker run -d -p 80:80 nginx)

expose_port(80 · public)

https://…-a1b2c3.iximiuz.com

nginx is live — open the URL above. Want me to point a domain at it?

What you can do

Describe the outcome. Claude does the hands-on part.

provision

Ship a ready-to-go environment

Ask for a stack and get it deployed. Claude starts the VM, installs and wires everything up, and hands you working URLs.

try saying

Create a playground with Postgres and Redis, expose them, and give me the connection URLs.

sandbox

A disposable dev sandbox

A fresh Labs VM with real internet access as a scratch pad — test a script, reproduce a bug, try a tool. No local setup.

try saying

Spin up a Linux sandbox and help me figure out why this script fails on Alpine.

deploy

Clone a repo, build it, share it

Point Claude at a repository. It clones, builds, and runs the app, then exposes the port as a public HTTPS URL you can open.

try saying

Clone github.com/acme/webapp, run it, and give me a public URL.

gym

Build a practice gym

Have Claude stand up a broken scenario, then coach you through fixing it — checking each step with read-only probes.

try saying

Set up a broken nginx reverse proxy for me to debug, then verify my fix.

coach

Get unstuck on a challenge

Stuck on a Labs challenge? Claude reads your task state (spoiler-free), diagnoses in the same VM, and nudges you forward.

try saying

I'm stuck on my current challenge — nudge me to the next step, don't spoil it.

Connect in a minute

01

Claude Code

Add the server, then authenticate in your browser.

claude mcp add --transport http ixlabs https://labs.iximiuz.com/mcp

Then run /mcp and choose Authenticate.

02

Claude apps

claude.ai and the desktop app, via a custom connector.

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Paste the connector URL and confirm.
  4. Approve access on the consent screen.

First protected action shows a consent screen listing exactly what's requested. Revoke anytime under Account → Connected apps.

Permissions

Six scopes. You grant only what you want.

Commands run only in playgrounds you own — your own sandbox — and every token is revocable.

account
read
Profile, progress, and daily practice
write
Change practice and email settings
learning
read
See what you're working on and coach you
write
Start and complete content for you
playground
read
List and inspect playgrounds and runs
write
Run VMs and commands, expose ports, author playgrounds

The toolbox

Everything Claude can call.

Expand any tool for example prompts. write tools change something.

Discover

Public — no sign-in.

Open access

search_contentFind challenges, tutorials, courses, and playgrounds by keyword.

Find beginner Kubernetes challenges on iximiuz Labs.

Search Labs for tutorials about eBPF.

get_contentRead a piece of content's page and metadata.

Show me what the containerd-namespaces challenge is about.

Learning

Coach through and track your progress.

Read learning:read

assist_with_contentCoach you through a running challenge or lesson — checks your tasks, explains the next step, spoiler-free.

What's the next step on the challenge I'm doing?

Explain what this task is asking of me.

Write learning:write

start_contentStart a challenge, tutorial, course lesson, skill path, or roadmap.

Start the Docker networking challenge.

Enroll me in the Kubernetes roadmap.

complete_contentMark a tutorial, lesson, skill path, or roadmap complete.

Mark this tutorial as done.

Playground

Start VMs, run commands, expose ports, build custom playgrounds.

Read playground:read

list_kernel_sourcesList the VM kernels you can pick.

Which kernels can I use?

list_rootfs_sourcesList the base OS images available.

What base OS images are available?

list_playgroundsBrowse official, community, or your own custom playgrounds.

Show me the official playgrounds.

List my custom playgrounds.

list_playsList your running and stopped playgrounds, or recent runs.

What playgrounds do I have running?

get_playground_manifestInspect a playground's machines, networks, and setup.

What's inside the k3s playground?

get_playA running play's live status: machines, conditions, expiry.

What's the status of my play?

get_play_tasksYour task progress in a running challenge (spoiler-free).

Which tasks have I completed?

Write playground:write

start_playSpin up a fresh playground VM with internet access.

Give me a Docker playground.

Start an Ubuntu sandbox.

run_shell_commandRun a shell command inside your VM.

Install nginx in my playground and start it.

Run kubectl get pods -A on my play.

write_fileWrite a config, manifest, or script into your VM.

Write this docker-compose.yml to /root in my VM.

expose_portPublish a port as a public HTTPS URL.

Expose port 8080 so I can open the app.

expose_shellShare a browser terminal into your VM via a URL.

Give me a shareable terminal to this machine.

persist_playKeep a play's state instead of destroying it at expiry.

Persist this playground so I don't lose it.

stop_playStop a play, preserving its state.

Stop my playground but keep everything.

restart_playRestart a stopped play.

Restart my saved playground.

destroy_playPermanently delete a play and its state.

Destroy this playground for good.

set_play_titleRename a play.

Rename this play to demo env.

set_play_lifetimeExtend how long a play runs before expiring.

Give this play another 2 hours.

create_playgroundCreate a reusable custom playground from a base and manifest.

Create a custom playground with Docker and Go preinstalled.

update_playgroundReplace a custom playground's manifest.

Update my custom playground to add a machine.

remove_playgroundDelete a custom playground.

Delete my scratch custom playground.

save_play_as_playgroundSnapshot a stopped play into a new reusable playground.

Save this environment as a playground I can reuse.

Account

Your profile, streaks, practice, and email settings.

Read account:read

get_my_profilePlan, join date, GitHub, purchases, notification settings.

What plan am I on?

get_my_progressYour learning activity — active days and streaks.

What's my current streak?

get_daily_practiceToday's daily-practice challenge suggestions.

What's my daily practice today?

Write account:write

manage_daily_practiceEnable, disable, or reshuffle your daily practice.

Skip today's networking challenge.

manage_notificationsToggle newsletter and digest emails and their cadence.

Switch my digest to weekly.

$ claude mcp add

Ready when you are.

Drop the connector URL into your Claude client and start building.

https://labs.iximiuz.com/mcp