Skip to content

PythonCharmers/mcp-talk

Β 
Β 

Repository files navigation

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

  1. STDIO β†’ Local, simple, process-based
  2. SSE β†’ Remote, dual-endpoint (GET /sse + POST /messages)
  3. 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.py to verify setup
  • Reinstall with pip install -r requirements.txt

πŸ“š Additional Resources

πŸš€ Next Steps for Audience

  1. Start Simple: Use existing MCP servers with Claude Desktop
  2. Build Custom: Create MCP servers for your specific needs
  3. Go Remote: Deploy SSE servers for team/production use
  4. 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:

  1. ModuleNotFoundError: Activate venv first (source venv/bin/activate)
  2. Permission denied on setup.sh: Run chmod +x setup.sh
  3. Node.js not found: Install from nodejs.org for filesystem server demo
  4. Port 8000 in use: Change port in SSE server or kill existing process
  5. 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 94.3%
  • Shell 3.0%
  • Batchfile 2.7%