MCP Lab Workshop
Click on "Deploy 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 Lab Workshopset the dashboard message to 'Hello Workshop!'"
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 Lab Workshop
Learn Model Context Protocol (MCP) with Cloudflare Workers
šÆ What is This?
An interactive workshop for SE interns to learn about Model Context Protocol (MCP) servers. Deploy a live dashboard app that can be controlled in real-time via MCP tools.
What You'll Build
šØ Interactive Dashboard - A beautiful dark-themed web app with real-time stats
š§ MCP Server - A fully functional MCP server with 8 tools to control the dashboard
š” Real-time Connection - Watch the dashboard update live as you call MCP tools
Related MCP server: worker-mcp
⨠Features
Demo App
š Dark-themed beautiful UI with Cloudflare branding
š Live statistics that update in real-time
šļø Feature toggles (Analytics, Notifications, Dark Mode, Animations)
š” Activity feed showing all MCP actions
ā” Server-Sent Events for instant updates
MCP Server
š ļø 8 MCP Tools for controlling the dashboard
š No authentication required - perfect for learning
š Edge deployed - runs on Cloudflare's global network
š¦ KV storage for state management
š Quick Deploy
One-Click Deploy
Click the button above to deploy to your Cloudflare account:
The deploy process will:
ā Clone the repo to your GitHub
ā Create a KV namespace automatically
ā Deploy both workers to Cloudflare
ā Give you live URLs instantly
Manual Deploy
If you prefer to deploy manually:
# Clone the repo
git clone https://github.com/MattDMitch/mcp-lab-workshop.git
cd mcp-lab-workshop
# Login to Cloudflare
wrangler login
# Deploy (KV namespace will be created automatically)
wrangler deployš® Using the MCP Server
Once deployed, you'll get two URLs:
Dashboard:
https://mcp-demo-app.YOUR-SUBDOMAIN.workers.devMCP Server:
https://mcp-server.YOUR-SUBDOMAIN.workers.dev
Connect to MCP Server
Add the MCP server to your OpenCode or MCP client:
{
"mcpServers": {
"demo": {
"url": "https://mcp-server.YOUR-SUBDOMAIN.workers.dev"
}
}
}Available Tools
Tool | Description | Example |
| Toggle features on/off | Toggle dark mode |
| Change dashboard numbers | Set visitors to 9999 |
| Update banner message | "Hello Interns! š" |
| View current app state | Get all settings |
| Reset to defaults | Clean slate |
| Generate fake activity | Simulate high traffic |
| Turn on all features | Enable everything |
| Turn off all features | Disable everything |
š” Try These Examples
Toggle Dark Mode
curl -X POST https://mcp-server.YOUR-SUBDOMAIN.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{
"tool": "toggle_feature",
"arguments": {"feature": "darkMode"}
}'Set Custom Message
curl -X POST https://mcp-server.YOUR-SUBDOMAIN.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{
"tool": "set_message",
"arguments": {"message": "Welcome SE Interns! š"}
}'Simulate High Traffic
curl -X POST https://mcp-server.YOUR-SUBDOMAIN.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{
"tool": "simulate_traffic",
"arguments": {"amount": "high"}
}'Update Stats
curl -X POST https://mcp-server.YOUR-SUBDOMAIN.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{
"tool": "update_stats",
"arguments": {"stat": "visitors", "value": 9999}
}'šļø Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Demo App Worker ā
ā - Dark-themed dashboard ā
ā - Server-Sent Events ā
ā - Real-time updates ā
āāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāā
ā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Cloudflare KV Namespace ā
ā - App state storage ā
ā - Activity logs ā
āāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāā
ā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā MCP Server Worker ā
ā - 8 MCP tools ā
ā - Tool execution ā
ā - State management ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāš Workshop Guide
Part 1: Deploy (10 min)
Click "Deploy to Cloudflare"
Authorize GitHub and Cloudflare
Get your live URLs
Part 2: Explore the Dashboard (10 min)
Open the dashboard URL
See the dark-themed interface
Observe the stats and features
Part 3: Connect MCP Client (10 min)
Add MCP server to OpenCode
List available tools
Verify connection
Part 4: Control the Dashboard (15 min)
Toggle dark mode
Update statistics
Change the message
Simulate traffic
Watch real-time updates!
Part 5: Explore the Code (15 min)
Review MCP server implementation
Understand tool schemas
See KV storage in action
Learn about SSE for real-time updates
š Learning Objectives
After this workshop, you'll understand:
ā What MCP is and why it's useful
ā How to build an MCP server
ā Tool schemas and execution
ā Real-time web applications with SSE
ā Cloudflare Workers and KV storage
ā Edge computing concepts
š ļø Tech Stack
Cloudflare Workers - Serverless execution
Workers KV - Edge storage
MCP Protocol - Tool calling interface
Server-Sent Events - Real-time updates
Vanilla JS - No framework complexity
š Project Structure
mcp-lab-complete/
āāā README.md # This file
āāā wrangler.toml # Cloudflare config
āāā package.json # Project metadata
āāā demo-app/
ā āāā index.js # Dashboard worker
āāā mcp-server/
āāā index.js # MCP server workeršØ Customization Ideas
For Students:
Add new MCP tools
Create custom themes
Add more statistics
Build a notification system
Add WebSocket support
For Instructors:
Create coding challenges
Add quiz questions
Build team competitions
Create extension exercises
š Resources
š License
MIT License - Free to use for educational purposes
š Credits
Built for Cloudflare SE Intern Workshops
Made with ā¤ļø and ā
Ready to learn MCP?
Related MCP Connectors
Cloudflare Workers MCP server: interactive-api-playground
Cloudflare Workers MCP server: ai-agent-scratchpad
Cloudflare Workers MCP server: blog
Cloudflare Workers MCP server: ai-provider-status
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA deployable MCP server on Cloudflare Workers that provides tools without requiring authentication, allowing users to connect from Cloudflare AI Playground or Claude Desktop.-
- FlicenseNot gradedqualityDmaintenanceA high-performance MCP server for Cloudflare Workers/Pages with a web dashboard and built-in tools including web search, URL reading, and structured problem-solving.1-
- FlicenseNot gradedqualityDmaintenanceA remote MCP server deployed on Cloudflare Workers that provides Cloudflare observability tools (zone analytics, workers analytics, web analytics) and basic calculator functions, without requiring authentication.-
- AlicenseNot gradedqualityBmaintenanceMCP server deployed on Cloudflare Worker that provides AI with image understanding via the describe_image tool, plus an Apple-style model status dashboard.1MIT