Skip to main content
Glama
sankethsura

MCP UseCase Function Server

by sankethsura
README.md
# MCP UseCase Function Server

A Model Context Protocol (MCP) server that triggers functions based on specific usecases, built with Python and FastMCP.

## Features

- **UseCase-based Function Triggering**: Execute functions based on predefined usecases
- **stdio Transport**: Compatible with Claude Desktop
- **Multiple Function Types**: Data analysis, text processing, calculations, file operations, and web requests
- **Easy Integration**: Simple setup for Claude Desktop

## Available Usecases

1. **data_analysis** - Analyze numerical data (mean, max, min, count)
2. **text_processing** - Process text (uppercase, lowercase, word count, char count) 
3. **calculation** - Mathematical operations (add, multiply, divide)
4. **file_operation** - File handling operations (info, simulation)
5. **web_request** - Web request simulation (GET, POST, etc.)

## Installation

1. Install dependencies:
```bash
python3 -m pip install -r requirements.txt
```

2. Test the server:
```bash
python3 test_client.py
```

## Claude Desktop Integration

Add this configuration to your Claude Desktop settings:

### macOS
Edit: `~/Library/Application Support/Claude/claude_desktop_config.json`

### Windows
Edit: `%APPDATA%/Claude/claude_desktop_config.json`

### Linux  
Edit: `~/.config/claude/claude_desktop_config.json`

Add the server configuration:
```json
{
  "mcpServers": {
    "usecase-function-server": {
      "command": "python3",
      "args": ["/path/to/your/mcp_server.py"],
      "env": {}
    }
  }
}
```

Replace `/path/to/your/mcp_server.py` with the actual path to your server file.

## Usage

### Available Tools

1. **trigger_function_by_usecase(usecase, parameters)**
   - Execute a function based on usecase
   - Returns result with success status

2. **list_available_usecases()**
   - Get all available usecases
   - Returns array of usecase names

3. **get_usecase_info(usecase)**
   - Get information about a specific usecase
   - Returns usecase details and function description

### Example Usage in Claude

```
Can you analyze this data using the data_analysis usecase: [1, 2, 3, 4, 5]
```

```
Please convert "hello world" to uppercase using text_processing
```

```
Calculate the sum of 10, 20, and 30 using the calculation usecase
```

## Deployment

For production deployment:

1. **Docker Deployment** (Recommended):
```dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY mcp_server.py .
CMD ["python3", "mcp_server.py"]
```

2. **System Service**:
```bash
# Run as a service
python3 mcp_server.py
```

3. **Cloud Platforms**:
   - Deploy to AWS Lambda, Google Cloud Functions, or Azure Functions
   - Modify transport from stdio to HTTP for web-based deployments

## Development

### Adding New Usecases

1. Add to `usecase_functions` dictionary in `mcp_server.py`
2. Create the corresponding function
3. Test with the test client

### Custom Functions

Implement new functions following this pattern:
```python
def your_custom_function(parameters: Dict[str, Any]) -> Dict[str, Any]:
    """Your function description"""
    # Process parameters
    # Return result dictionary
    pass
```

## Troubleshooting

1. **Import Errors**: Ensure all dependencies are installed
2. **Path Issues**: Use absolute paths in Claude Desktop config
3. **Permission Issues**: Make sure the script is executable
4. **Connection Issues**: Verify the server starts without errors

## Files

- `mcp_server.py` - Main MCP server implementation
- `test_client.py` - Test client for validation
- `requirements.txt` - Python dependencies
- `claude_desktop_config.json` - Example Claude Desktop configuration# mcp-server-test