# 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