MCP Talk Demo Files
A collection of demo files for MCP servers and clients, illustrating various transport protocols and server capabilities using Python.
MCP Talk Demo Files
This folder contains practical examples for the "Beyond the Basics: Unlocking the Power of MCP" presentation at the 10x Developers Meetup.
š Quick Setup (Recommended)
Option 1: Automated Setup (Recommended)
macOS/Linux:
cd /Users/davidhague/source/mcp-talk
chmod +x setup.sh
./setup.sh
Windows:
cd \Users\davidhague\source\mcp-talk
setup.bat
Option 2: Manual Setup
cd /Users/davidhague/source/mcp-talk
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
# Test setup
python test_setup.py
š Demo Files
1. 01_python_client_demo.py
Simple MCP Python Client
- Demonstrates how to connect to any MCP server from Python
- Shows tool discovery, resource access, and general MCP interactions
- Perfect for showing the developer experience
To run:
source venv/bin/activate # Activate venv first!
# Terminal 1 - Start MCP server
npx -y @modelcontextprotocol/server-filesystem /tmp
# Terminal 2 - Run client
python 01_python_client_demo.py
2. 02_system_monitor_server.py
Complete MCP Server from Scratch
- System monitoring server with all three MCP capabilities
- Tools: CPU usage, memory info, disk usage, processes, network
- Resources: System overview, platform information
- Shows how to build a full MCP server
To run:
source venv/bin/activate
python 02_system_monitor_server.py
To connect with Claude Desktop:
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"system-monitor": {
"command": "python",
"args": ["/Users/davidhague/source/mcp-talk/02_system_monitor_server.py"],
"env": {
"PATH": "/Users/davidhague/source/mcp-talk/venv/bin:/usr/bin:/bin"
}
}
}
}
3. 03_sse_server_complete.py
MCP with Server-Sent Events (SSE) - Pseudocode Reference
- LEGACY TRANSPORT - Educational purposes only
- Shows SSE endpoint structure (GET /sse + POST /messages)
- Demonstrates why Streamable HTTP is preferred
Note: This is pseudocode for understanding SSE concepts.
For working implementations, use 04_https_streamable.py
4. 04_https_streamable.py
Next-Generation Streamable HTTP MCP
- Demonstrates the latest MCP transport protocol
- Unified endpoint architecture
- Production-ready streaming implementation
To run:
source venv/bin/activate
python 04_https_streamable.py
5. 05_http_client_demo.py
HTTP MCP Client Demo
- Demonstrates connecting to HTTP MCP servers instead of stdio
- Shows the same LLM integration but over HTTP transport
- Perfect companion to show stdio vs HTTP client differences
To run:
source venv/bin/activate
# Terminal 1 - Start HTTP MCP server
python 04_https_streamable.py
# Terminal 2 - Run HTTP client
python 05_http_client_demo.py
šÆ Presentation Flow
Demo 1: Python Client (stdio) (5 minutes)
- "Here's how easy it is to connect to any MCP server from Python"
- Run the stdio client against filesystem server
- Show tool discovery and execution with LLM integration
Demo 2: Build Custom Server (10 minutes)
- "Let's build an MCP server from scratch"
- Walk through the system monitor server code
- Show tools and resources capabilities
- Connect it to Claude Desktop
Demo 3: HTTP Transport (8 minutes)
- "Now let's make servers truly standalone with HTTP"
- Run the HTTP streamable server
- Show the unified endpoint architecture
- Demonstrate HTTP client connecting to it
Demo 4: SSE Concepts (2 minutes)
- "For context, here's the legacy SSE approach"
- Show the pseudocode structure
- Explain why Streamable HTTP is preferred
š§ Key Technical Points
MCP Architecture
āāāāāāāāāāāāāāā MCP Protocol āāāāāāāāāāāāāāā
ā Client ā āāāāāāāāāāāāāāāāāāāŗ ā Server ā
ā (Claude, ā ā (Your App) ā
ā Cursor, ā ⢠Tools ā ā
ā Custom) ā ⢠Resources ā ā
āāāāāāāāāāāāāāā ⢠Prompts āāāāāāāāāāāāāāā
Transport Evolution
- STDIO ā Local, simple, process-based
- SSE ā Remote, dual-endpoint (GET /sse + POST /messages)
- Streamable HTTP ā New unified, single endpoint
Three Capabilities
- Tools (Model-controlled): Functions the AI can call
- Resources (App-controlled): Data the AI can read
- Prompts (User-controlled): Templates users select
š Virtual Environment Notes
Why use a virtual environment?
- Isolated Python dependencies
- Reproducible demo environment
- No conflicts with system packages
- Professional development practice
Managing the venv:
# Activate (do this before running demos)
source venv/bin/activate
# Check it's working
which python # Should show venv/bin/python
# Install additional packages if needed
pip install some-package
# Deactivate when done
deactivate
If you see import errors:
- Make sure venv is activated (
source venv/bin/activate) - Run
python test_setup.pyto verify setup - Reinstall with
pip install -r requirements.txt
š Additional Resources
- MCP Documentation
- MCP Python SDK
- MCP Servers Collection
- MCP Inspector - Great for testing
š Next Steps for Audience
- Start Simple: Use existing MCP servers with Claude Desktop
- Build Custom: Create MCP servers for your specific needs
- Go Remote: Deploy SSE servers for team/production use
- Explore Transports: Try different transport protocols for your use case
š” Talk Takeaways
- MCP is the "USB-C for AI" - universal protocol
- Three capabilities: tools, resources, and prompts unlock real workflows
- Multiple transport options for different deployment scenarios
- Production-ready with proper session management
- Open standard with growing ecosystem
š§ Troubleshooting
Common Issues:
- ModuleNotFoundError: Activate venv first (
source venv/bin/activate) - Permission denied on setup.sh: Run
chmod +x setup.sh - Node.js not found: Install from nodejs.org for filesystem server demo
- Port 8000 in use: Change port in SSE server or kill existing process
- Claude Desktop not connecting: Check config file path and restart Claude Desktop
These demos show practical, working examples of MCP's power beyond basic tutorials.
Related Servers
MCP MiniMax Music Server
AI-powered audio generation using the MiniMax Music API.
shadow-cljs
Monitors shadow-cljs builds and provides real-time build status updates.
Foundry MCP Server
A lightweight MCP server for Solidity development using the Foundry toolchain (Forge, Cast, and Anvil).
CopyTuner Client
Manage Rails i18n translations with CopyTuner. Search, update, and create translation keys.
SeedDream 3.0
Generate images using Bytedance's SeedDream 3.0 model via the FAL AI platform.
Image Generation
Generate images from text prompts using the Together AI API.
Authenticator App MCP Server
A secure MCP server for AI agents to interact with the Authenticator App for 2FA codes and passwords.
Dify Workflows
An MCP server for executing Dify workflows, configured via environment variables or a config file.
MapleStory MCP Server
Access NEXON MapleStory open API data for character info, union details, guild data, rankings, and game mechanics.
gNMIBuddy
Retrieves essential network information from devices using gNMI and OpenConfig models.