Labs MCP · Model Context Protocol

Bring your AI into the lab.

Labs MCP connects AI tools to iximiuz Labs, where they can coach you through hands-on learning, build custom playgrounds from plain-English prompts, and give coding agents real Linux VMs for real server-side work.

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

Works with Claude, ChatGPT, Codex, Cursor, opencode — any MCP client. And you decide exactly what it's allowed to do. Connection instructions ↓

agent ▸ 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 spin up another container or clone a GitHub repo?

Four things it does

chapter 01 · learn

A coach with the whole library at hand.

Tell your assistant what you're trying to learn. It searches the Labs catalog, assembles a plan that fits your background and your schedule — and when you get stuck, it acts like an infinitely patient mentor: right there in the same VM, nudging you forward with hints, not answers.

search

Find the right material

Your assistant can search the entire Labs catalog — tutorials, challenges, courses, skill paths. Tell it what you're after, and it'll pick the materials that match your level.

try saying

Find me hands-on material about container networking — I already know the Docker basics.

plan

A path built for you

There's no one-size-fits-all approach to learning. Tell your assistant where you are and where you want to get, and it'll assemble a personal learning path from Labs materials and pace you through it.

try saying

Build me a two-week plan to get comfortable with Kubernetes — one hour a day, hands-on only.

coach

Get unstuck, spoiler-free

Stuck mid-challenge, or a tutorial step isn't clicking? Your coach checks your task state, runs diagnostics in the same VM, and nudges you toward the next step — hints first, never the full solution.

try saying

I'm stuck on the NAT challenge — the container pings the host but nothing outside. Hint please.

Progress is recorded server-side — streaks, completions, and daily practice stay in sync whether you learn in the browser or through your assistant.

chapter 02 · practice

Describe the lab. Practice in it minutes later.

Preparing a practice environment used to be a chore: writing init scripts, baking rootfs images, debugging the boot. Now it's a sentence: name the machines, the software, even the failure you want to debug — and your agent assembles the playground for you.

simple

A Docker host, app included

One VM, Docker preinstalled, a sample app already running behind a reverse proxy — ready for you to explore, break, and rebuild.

try saying

Give me a Docker host with a small web app behind nginx — I want to practice tweaking reverse proxies.

cluster

A cluster, batteries included

A real K3s cluster with the tooling you asked for installed and wired up before you even open the terminal.

try saying

Start the K3s playground, helm-install Argo CD, and give me the UI URL and the admin password.

chaos

Broken on purpose

Nothing teaches better than fixing a broken system. Ask your agent to sabotage a deployment, then debug it yourself — and let the agent verify your fix.

try saying

Deploy a demo microservice app on K0s and break it in three subtle ways. Don't tell me what you broke.

Liked a setup? Ask your agent to save it as a reusable playground and start it again with one call.

chapter 03 · build

A sandbox that isn't a toy.

Coding agents are great at writing server-side code — and surprisingly bad at running it, because a typical agent sandbox is a locked-down container. Here's how the options stack up:

1
other providers

The typical agent sandbox

a container jail

A confined container with a slice of a filesystem. Fine for code snippets; hopeless for realistic server-side projects.

2
other providers

The better ones

one real VM

A real Linux VM — your agent can install packages and run services. But it's usually a black box: you can't SSH in, watch what the agent is doing, or keep anything it built.

3
iximiuz Labs

A Labs playground

up to 5 VMs · any topology · white-box access

Up to five real Linux VMs (Firecracker-powered, same as every Labs playground), connected into whatever network topology the task requires — and optionally pre-provisioned with software of arbitrary complexity: a Kubernetes cluster with Helm charts installed, a service mesh, a system broken on purpose. Sized for real server-side and DevOps work — deployments, clusters, networks — not just code snippets.

And unlike the black-box cloud sandboxes, you see — and keep — everything:

SSH in any time

They're your VMs, not a black box. Watch your agent work, take over mid-task, or pair with it in the same terminal.

Expose with public URLs

Anything listening on a port becomes a shareable HTTPS URL — demo what your agent just built.

Resume tomorrow

Persist the rootfs when you stop. Packages, data, half-finished work — the whole environment is there when you come back.

fully-featured Linux VMs

A disposable debug 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

My install script works on Ubuntu but dies on Alpine. Start both VMs and find where they diverge.

development environments

Clone a repo, build it, share it

Point your agent 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 my side project from GitHub, build and run it, then give me a public URL I can send around.

complex topologies

A real multi-VM lab

A load balancer in front of two app nodes? A cluster plus an external client machine? Your agent wires up the machines and networks it needs.

try saying

Set up a 3-tier app across five VMs — an LB, two instances of the API service, and a replicated DB.

chapter 04 · create PRO

Create on Labs — with an assistant at your side.

iximiuz Labs isn't just for learners — authors publish hands-on tutorials and challenges here, and trainers run whole courses and workshops. Labs MCP brings an assistant into that workflow, too.

PROavailable now

Author content with an assistant

Publishing on iximiuz Labs? Draft tutorials, challenges, courses, and blog posts straight from your AI tool — the author tools work against your real author profile, and drafts land in your usual review flow.

try saying

Draft a challenge where the student fixes a crashing systemd service — write the description and tasks, I'll review.

Creating on iximiuz Labs →
PROcoming soon

Teach with an assistant

Running trainings or cohorts on Labs? Instructor assistance — course scaffolding, per-student environments, progress digests — is on its way.

Training on iximiuz Labs →

Connect in a minute

One URL. Any MCP client.

Labs MCP is a standard remote MCP server (Streamable HTTP + OAuth) — if your AI tool speaks MCP, it can connect. Pick yours:

Claude

claude.ai · desktop · mobile
  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

Eight 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
author
read
Your author profile
write
Manage your author profile and create content drafts
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

37 tools, from search to shell access.

Everything above boils down to plain MCP tools. Expand to browse the full list — with example prompts for each.

changes something — starts plays, runs commands, edits your settings read-only — searches and inspects, never modifies anything

Discover

Public — no sign-in.

Open access

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

Find beginner-friendly Kubernetes challenges on iximiuz Labs.

Is there anything hands-on about eBPF on Labs?

get_contentRead a piece of content's page and metadata.

What's the 'Reproduce a Docker Bridge Network' challenge about — and how hard is it?

search_docsSearch the iximiuz Labs documentation.

How does playground persistence work? Check the Labs docs.

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.

I'm on task 2 of the NAT challenge and iptables looks right to me — what am I missing?

Explain what this task actually wants from me.

Write learning:write

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

Start the 'Set Up NAT for a Container' challenge.

Enroll me in the Docker The Hands-On Way roadmap.

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

I've finished the bridge networking tutorial — mark it done.

Playground

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

Read playground:read

list_kernel_sourcesList the VM kernels you can pick.

I need kernel 6.1 for eBPF stuff — which kernels are available?

list_rootfs_sourcesList the base OS images available.

Any RHEL-like base images — Rocky or Alma?

list_playgroundsBrowse official, community, or your own custom playgrounds.

Which official Kubernetes playgrounds are there?

List my custom playgrounds.

list_playsList your running and stopped playgrounds, or recent runs.

Do I still have that K3s playground from yesterday?

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

How many nodes does the k3s playground have, and what's preinstalled?

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

Is my playground done booting? When does it expire?

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

How far am I in this challenge — which tasks are still failing?

Write playground:write

start_playSpin up a fresh playground VM with internet access.

Start the Docker playground.

Give me a clean Ubuntu 24.04 VM.

run_shell_commandRun a shell command inside your VM.

Install nginx and curl localhost to check it's up.

Run kubectl get pods -A and tell me what's crashlooping.

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

Drop a docker-compose.yml with the app and Redis into /root.

expose_portPublish a port as a public HTTPS URL.

Expose port 3000 so I can open the app on my phone.

expose_shellShare a browser terminal into your VM via a URL.

Give me a browser terminal to this VM — I want to poke around myself.

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

Don't let this playground vanish when the timer runs out.

stop_playStop a play, preserving its state.

I'm done for today — stop the playground but keep my work.

restart_playRestart a stopped play.

Bring back the cluster I stopped on Friday.

destroy_playPermanently delete a play and its state.

I don't need this scratch VM anymore — destroy it.

set_play_titleRename a play.

Title this run 'issue #423 repro'.

set_play_lifetimeExtend how long a play runs before expiring.

The demo is at 5pm — give this play two more hours.

create_playgroundCreate a reusable custom playground from a base and manifest.

Make me a reusable playground: Ubuntu with Go, Docker, and my dotfiles.

update_playgroundReplace a custom playground's manifest.

Add a second VM to my custom playground for the database.

remove_playgroundDelete a custom playground.

Delete my scratch custom playground.

save_play_as_playgroundSnapshot a stopped play into a new reusable playground.

Snapshot this setup as a playground so my study group can start from it.

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.

Did I keep my streak alive this week?

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.

Today's challenge is too hard — reshuffle my daily practice.

manage_notificationsToggle newsletter and digest emails and their cadence.

Switch my digest to weekly.

Author

Your author profile and content drafts.

Read author:read

get_author_profileYour author profile, stats, and public page URL.

Do I have an author profile yet?

Write author:write

create_author_profileCreate your author profile (pro plan required).

Set me up with an author profile called Jane Doe.

update_author_profileUpdate your bio, avatar, or social links.

Update my author bio to mention I write about eBPF.

create_contentStart a new draft tutorial, challenge, course, skill path, roadmap, or blog post.

Start a draft tutorial titled 'Debugging DNS Inside Containers'.

one url · any mcp client

Go give it a spin.

Add the connector URL to your AI tool and start building. Happy hacking!

https://labs.iximiuz.com/mcp