# Smithery Deployment Guide for M/M/c MCP Server
## Current Status
- **Version**: 0.2.0
- **Features**: Full M/M/1 and M/M/c support with comparison tools
- **HTTP Transport**: Fixed and ready for deployment
## What Was Fixed
1. **HTTP Transport Implementation**:
- Updated to use FastMCP's `streamable_http_app()` method
- Added proper CORS middleware for Smithery compatibility
- Fixed 404 errors by properly configuring HTTP endpoints
2. **Configuration Updates**:
- Simplified `smithery.yaml` to minimal container configuration
- Updated Dockerfile to include `--http` flag
- Added fallback imports for MCP compatibility
## Deployment Steps
### 1. Automatic Deployment (If GitHub Connected)
Your Smithery deployment should automatically update when you push to GitHub.
### 2. Manual Deployment
If automatic deployment isn't configured:
```bash
# From your local machine
smithery publish
```
Or from Smithery dashboard:
1. Go to https://smithery.ai/dashboard
2. Select your MCP server project
3. Click "Deploy" or "Redeploy"
### 3. Verify Deployment
After deployment completes:
1. Check deployment logs in Smithery dashboard
2. Test the MCP connection:
- The server should be available at:
`https://server.smithery.ai/@kiyoung8/share_2025_simulationmcp_wsc/`
### 4. Test in Claude Desktop
Update your Claude Desktop configuration:
```json
{
"mcpServers": {
"mm-simulation": {
"type": "smithery",
"smitheryId": "@kiyoung8/share_2025_simulationmcp_wsc"
}
}
}
```
Or use the direct URL:
```json
{
"mcpServers": {
"mm-simulation": {
"command": "curl",
"args": ["-X", "POST",
"https://server.smithery.ai/@kiyoung8/share_2025_simulationmcp_wsc/mcp",
"-H", "Content-Type: application/json"]
}
}
}
```
## Available Tools After Deployment
The following tools should be available:
### M/M/c Simulation Tools
- `run_mmc_simulation` - Run M/M/c queue simulation (1 to n servers)
- `compare_mm1_vs_mmc` - Compare separate queues vs pooled queue
- `analyze_cashier_problem` - Analyze supermarket cashier scenarios
### M/M/1 Tools (Legacy)
- `validate_config` - Validate M/M/1 parameters
- `calculate_metrics` - Calculate theoretical metrics
- `run_simulation` - Run M/M/1 simulation
- `compare_results` - Compare simulation vs theory
- `recommend_parameters` - Get optimal parameters
## Testing the Deployment
### Test 1: Basic M/M/3 Simulation
```
Run an M/M/3 simulation with arrival rate 12, service rate 5 per server
```
Expected: Should return simulation results for 3-server system
### Test 2: Compare Strategies
```
Compare 3 separate M/M/1 queues vs single M/M/3 pooled queue for a supermarket with:
- 12 customers/minute arriving
- Each cashier serves 5 customers/minute
```
Expected: Should show pooled queue has ~77% better waiting time
### Test 3: Cashier Problem Analysis
```
Analyze a supermarket with 100 waiting customers and 3 cashiers
```
Expected: Should provide clearing time analysis and recommendations
## Troubleshooting
### If Still Getting 404 Errors
1. Check Smithery deployment logs for build errors
2. Ensure Docker image builds successfully
3. Verify FastMCP is installed in the container (Python 3.11+ required)
### If Tools Not Available
1. Restart Claude Desktop after updating configuration
2. Check that the server URL is accessible
3. Verify the MCP connection in Claude's settings
### If Simulation Results Are Identical
- Fixed: Random seed is now time-based instead of fixed at 42
- Each simulation run should produce slightly different results
## What's New in v0.2.0
### New Features
✅ **M/M/c Support**: Simulate multi-server queues (2+ servers)
✅ **Comparison Tools**: Compare separate vs pooled queue strategies
✅ **Cashier Analysis**: Specialized tool for supermarket scenarios
✅ **Dynamic Random Seeds**: Each simulation uses unique seed
### Fixed Issues
✅ Division by zero errors in metrics calculation
✅ Empty list handling with safe_mean functions
✅ HTTP transport 404 errors
✅ Fixed random seed issue (was always 42)
## Contact & Support
For issues or questions:
- GitHub Issues: https://github.com/kiyoung8/Simulation_by_SimPy/issues
- Smithery Support: https://smithery.ai/support
## Next Steps
After successful deployment:
1. Test all M/M/c tools in Claude Desktop
2. Run experiments comparing M/M/1×3 vs M/M/3
3. Generate poster presentation materials with results
4. Document accuracy metrics (MAPE) for validation