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.
関連サーバー
Alpha Vantage MCP Server
スポンサーAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Code Summarizer
A command-line tool that summarizes code files in a directory using Gemini Flash 2.0.
Model Context Protocol (MCP)
Interact with Gibson projects to create/update projects, explain database/API interactions, and write code within your IDE.
WatchTower
Cost tracking + security scanning for AI builders
Squidler.io
Squidler is designed to validate your web app as a human based on natural language use cases, without write brittle, DOM-dependent tests.
Axone MCP
A lightweight server exposing Axone's capabilities through the Model-Context Protocol.
lu-mcp-server
Verify AI agent communication with session types and formal proofs
Runframe
Runframe is the complete incident lifecycle platform for engineering teams, covering incident response, on-call, and status pages. This MCP server lets you manage those workflows from your IDE or AI agent.
MCP Server Starter Template
A starter template for building Model Context Protocol (MCP) servers, designed for UI libraries and component registries.
Universal Crypto MCP
Enable AI agents to interact with any EVM blockchain through natural language.
FileForge
Transforms raw code into polished solutions with optimized performance and vector embeddings support.