Skip to main content
Glama
README.md
# MCP Demo Project

A collection of Model Context Protocol (MCP) servers demonstrating different capabilities including math operations, weather data, and LangGraph workflows.

## ๐Ÿš€ Quick Start

### Prerequisites
- Python 3.8+
- Node.js (for MCP Inspector)
- Virtual environment activated

### Installation

1. **Clone and setup:**
   ```bash
   git clone https://github.com/vaibhavGala262/MCP_servers.git 
   cd mcp_demo2
   ```

2. **Create and activate virtual environment:**
   ```bash
   python -m venv .venv
   # Windows:
   .venv\Scripts\activate
   # Mac/Linux:
   source .venv/bin/activate
   ```

3. **Install dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

4. **Install MCP Inspector (globally):**
   ```bash
   npm install -g @modelcontextprotocol/inspector
   ```

## ๐Ÿงช Testing Your MCP Servers

### Method 1: Using MCP Inspector (Recommended)

```bash
# Make sure your virtual environment is activated first
.venv\Scripts\activate

# Test any of your servers
npx @modelcontextprotocol/inspector python mathserver.py
npx @modelcontextprotocol/inspector python weather.py
npx @modelcontextprotocol/inspector python workflow.py
```

This opens a web interface at `http://localhost:5173` where you can:
- View available tools
- Test tool calls interactively
- Debug issues in real-time

### Method 2: Direct Python Testing

```bash
# Run the server directly (will wait for stdin input)
python mathserver.py

# Or run tests
python test_mcp.py
```

## ๐Ÿ“ Project Structure

```
mcp_demo2/
โ”œโ”€โ”€ .venv/                 # Virtual environment
โ”œโ”€โ”€ .env                   # Environment variables (API keys)
โ”œโ”€โ”€ .gitignore            # Git ignore file
โ”œโ”€โ”€ requirements.txt      # Python dependencies
โ”œโ”€โ”€ mathserver.py         # Math operations MCP server
โ”œโ”€โ”€ weather.py           # Weather data MCP server  
โ”œโ”€โ”€ workflow.py          # LangGraph workflow MCP server
โ”œโ”€โ”€ test_mcp.py          # Test scripts
โ””โ”€โ”€ README.md            # This file
```

## ๐Ÿ”ง Available MCP Servers

### 1. Math Server (`mathserver.py`)
Simple arithmetic operations:
- `add(a, b)` - Add two numbers
- `subtract(a, b)` - Subtract two numbers  
- `multiply(a, b)` - Multiply two numbers

**Test example:**
```bash
npx @modelcontextprotocol/inspector python mathserver.py
# Try: add(10, 5) โ†’ returns 15
```

### 2. Weather Server (`weather.py`)
Weather data operations (if implemented):
- Weather fetching tools

### 3. Workflow Server (`workflow.py`)
LangGraph-powered content generation:
- `run_langgraph(input)` - Generate jokes, stories, poems, or general responses

**Test example:**
```bash
npx @modelcontextprotocol/inspector python workflow.py
# Try: run_langgraph("tell me a joke about cats")
```

## ๐Ÿ”— Integrating with Claude Desktop

1. **Locate your Claude Desktop config:**
   - **Windows:** `%APPDATA%/Claude/claude_desktop_config.json`
   - **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`

2. **Add your MCP server:**
   ```json
   {
     "mcpServers": {
       "math": {
         "command": "python",
         "args": ["C:\\full\\path\\to\\mcp_demo2\\mathserver.py"],
         "env": {
           "PATH": "C:\\full\\path\\to\\mcp_demo2\\.venv\\Scripts;%PATH%"
         }
       },
       "workflow": {
         "command": "python", 
         "args": ["C:\\full\\path\\to\\mcp_demo2\\workflow.py"],
         "env": {
           "PATH": "C:\\full\\path\\to\\mcp_demo2\\.venv\\Scripts;%PATH%"
         }
       }
     }
   }
   ```

3. **Restart Claude Desktop** and test:
   - "What tools do you have available?"
   - "Add 15 and 25 for me"
   - "Tell me a joke about programming"

## ๐Ÿ› Troubleshooting

### Common Issues:

**"Module not found" error:**
```bash
# Make sure virtual environment is activated
.venv\Scripts\activate
pip install fastmcp
```

**Inspector shows empty tools:**
- Check that your server file has `@mcp.tool()` decorators
- Verify the file runs without Python errors
- Make sure you're using `transport="stdio"` for Claude Desktop

**Encoding errors (emojis in console):**
- Remove emoji characters from print statements
- Or add UTF-8 encoding at the top of your Python files

**Claude Desktop not finding tools:**
- Use absolute paths in config file
- Make sure the virtual environment path is correct
- Restart Claude Desktop after config changes

## ๐Ÿ“š Learn More

- [MCP Documentation](https://docs.anthropic.com)
- [FastMCP Documentation](https://github.com/jlowin/fastmcp)
- [LangGraph Documentation](https://langchain-ai.github.io/langgraph/)

## ๐Ÿค Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test with MCP Inspector
5. Submit a pull request

## ๐Ÿ“„ License

This project is open source. See LICENSE file for details.