Skip to main content
Glama

Fast MCP Task Manager

README.mdโ€ข9.15 kB
# Fast MCP Server with Google Gemini Integration A comprehensive Model Context Protocol (MCP) server built with FastAPI that integrates with Google Gemini CLI for AI-powered task management and data processing. ## ๐Ÿš€ Features - **FastAPI-based MCP Server**: High-performance async server running on port 5000 - **Google Gemini Integration**: Seamless integration with Gemini CLI for AI responses - **Task Management Tools**: Complete CRUD operations for task management - **Data Analytics**: Task statistics and CSV export capabilities - **Comprehensive Logging**: JSON-based operation logging for tracking and debugging - **CLI Interface**: Easy-to-use command-line tool for server interaction - **RESTful API**: Full API documentation with Swagger UI - **Production Ready**: Modular, clean, and well-documented code ## ๐Ÿ“‹ Prerequisites - Python 3.8 or higher - Google Gemini CLI installed and configured - curl (for CLI operations) - Git (for cloning the repository) ## ๐Ÿ› ๏ธ Installation ### 1. Clone the Repository ```bash git clone <repository-url> cd FAST_MCP ``` ### 2. Create Virtual Environment ```bash python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` ### 3. Install Dependencies ```bash pip install -r requirements.txt ``` ### 4. Install Google Gemini CLI Follow the official Gemini CLI installation guide: - [Gemini CLI Documentation](https://ai.google.dev/gemini-api/docs/quickstart) Make sure Gemini CLI is properly configured with your API key. ## ๐Ÿš€ Quick Start ### Start the Server ```bash ./mcp_cli.sh start ``` The server will start on `http://localhost:5000` ### Check Server Status ```bash ./mcp_cli.sh status ``` ### List Available Tools ```bash ./mcp_cli.sh list ``` ### Use MCP Tools ```bash # List all tasks ./mcp_cli.sh run list_tasks # Create a new task ./mcp_cli.sh run create_task "Implement authentication" "Add JWT-based auth" "high" # Update task status ./mcp_cli.sh run update_task_status 1 "in_progress" # Search tasks ./mcp_cli.sh run search_tasks "authentication" # Get task statistics ./mcp_cli.sh run get_task_statistics # Export tasks to CSV ./mcp_cli.sh run export_tasks_to_csv ``` ### Interact with Gemini ```bash ./mcp_cli.sh gemini "What are the best practices for API security?" ``` ### View Logs ```bash ./mcp_cli.sh logs ``` ### Stop the Server ```bash ./mcp_cli.sh stop ``` ## ๐Ÿ“š API Documentation Once the server is running, visit: - **Swagger UI**: http://localhost:5000/docs - **ReDoc**: http://localhost:5000/redoc ## ๐Ÿ”ง Available MCP Tools ### 1. `list_tasks` - **Description**: List all tasks with optional status filtering - **Parameters**: - `status_filter` (optional): Filter by status (pending, in_progress, completed) - **Example**: `./mcp_cli.sh run list_tasks pending` ### 2. `create_task` - **Description**: Create a new task - **Parameters**: - `title` (required): Task title - `description` (required): Task description - `priority` (optional): Priority level (low, medium, high) - `assigned_to` (optional): User ID to assign the task - **Example**: `./mcp_cli.sh run create_task "New Feature" "Implement user dashboard" "high" "dev1"` ### 3. `update_task_status` - **Description**: Update the status of an existing task - **Parameters**: - `task_id` (required): ID of the task to update - `new_status` (required): New status (pending, in_progress, completed) - **Example**: `./mcp_cli.sh run update_task_status 1 "completed"` ### 4. `get_task_statistics` - **Description**: Get comprehensive task statistics and analytics - **Parameters**: None - **Example**: `./mcp_cli.sh run get_task_statistics` ### 5. `search_tasks` - **Description**: Search tasks by title or description - **Parameters**: - `query` (required): Search query string - **Example**: `./mcp_cli.sh run search_tasks "authentication"` ### 6. `export_tasks_to_csv` - **Description**: Export all tasks to a CSV file - **Parameters**: None - **Example**: `./mcp_cli.sh run export_tasks_to_csv` ## ๐Ÿค– Gemini Integration The server integrates with Google Gemini CLI to provide AI-powered responses: ### Features - **Multi-turn Conversations**: Maintains context across interactions - **Error Handling**: Graceful handling of CLI failures and timeouts - **Logging**: All Gemini interactions are logged for tracking - **Timeout Protection**: 30-second timeout to prevent hanging requests ### Usage Examples ```bash # Technical questions ./mcp_cli.sh gemini "How do I implement JWT authentication in FastAPI?" # Code review ./mcp_cli.sh gemini "Review this Python function for best practices" # Documentation help ./mcp_cli.sh gemini "Generate API documentation for a task management system" ``` ## ๐Ÿ“ Project Structure ``` FAST_MCP/ โ”œโ”€โ”€ server.py # Main FastAPI server โ”œโ”€โ”€ requirements.txt # Python dependencies โ”œโ”€โ”€ mcp_cli.sh # CLI interface script โ”œโ”€โ”€ sample_data.json # Sample task data โ”œโ”€โ”€ README.md # This file โ”œโ”€โ”€ venv/ # Virtual environment (created during setup) โ”œโ”€โ”€ server.log # Server logs (created when running) โ”œโ”€โ”€ mcp_logs.json # MCP operation logs (created when running) โ””โ”€โ”€ tasks_export_*.csv # Exported CSV files (created when exporting) ``` ## ๐Ÿ” Logging and Monitoring ### Operation Logs All MCP tool calls and Gemini interactions are logged to `mcp_logs.json`: ```json { "timestamp": "2024-01-17T10:30:00Z", "operation": "mcp_tool_call", "tool_name": "create_task", "success": true, "result": {...}, "error": null } ``` ### Server Logs Server logs are written to `server.log` and include: - Server startup/shutdown events - Request/response details - Error messages and stack traces - Performance metrics ### Health Monitoring Check server health at any time: ```bash ./mcp_cli.sh health ``` ## ๐Ÿ›ก๏ธ Error Handling The server includes comprehensive error handling: - **Tool Validation**: Validates tool names and parameters - **Data Persistence**: Handles file I/O errors gracefully - **Gemini CLI Integration**: Manages CLI failures and timeouts - **HTTP Errors**: Proper HTTP status codes and error messages - **Logging**: All errors are logged for debugging ## ๐Ÿ”ง Configuration ### Server Configuration - **Port**: 5000 (configurable in `server.py`) - **Host**: 0.0.0.0 (all interfaces) - **Data File**: `sample_data.json` - **Log File**: `mcp_logs.json` ### Gemini CLI Configuration Ensure Gemini CLI is properly configured: ```bash gemini config set api_key YOUR_API_KEY ``` ## ๐Ÿš€ Deployment ### Development ```bash ./mcp_cli.sh start ``` ### Production For production deployment, consider: - Using a process manager like PM2 or systemd - Setting up reverse proxy with Nginx - Implementing proper authentication - Adding rate limiting - Setting up monitoring and alerting ## ๐Ÿงช Testing ### Manual Testing 1. Start the server: `./mcp_cli.sh start` 2. Test each tool: `./mcp_cli.sh run <tool_name>` 3. Test Gemini integration: `./mcp_cli.sh gemini "test prompt"` 4. Check logs: `./mcp_cli.sh logs` 5. Verify health: `./mcp_cli.sh health` ### API Testing Use the Swagger UI at http://localhost:5000/docs to test API endpoints directly. ## ๐Ÿ“Š Sample Data The project includes `sample_data.json` with: - **5 sample tasks** with different statuses and priorities - **4 user profiles** with roles and departments - **2 project definitions** with team assignments ## ๐Ÿค Contributing 1. Fork the repository 2. Create a feature branch: `git checkout -b feature-name` 3. Make your changes 4. Test thoroughly 5. Commit your changes: `git commit -m "Add feature"` 6. Push to the branch: `git push origin feature-name` 7. Submit a pull request ## ๐Ÿ“ License This project is licensed under the MIT License - see the LICENSE file for details. ## ๐Ÿ†˜ Troubleshooting ### Common Issues 1. **Server won't start** - Check if port 5000 is available - Verify virtual environment is activated - Check `server.log` for error details 2. **Gemini CLI not found** - Install Gemini CLI: `pip install google-generativeai` - Configure API key: `gemini config set api_key YOUR_KEY` 3. **Permission denied on mcp_cli.sh** - Make executable: `chmod +x mcp_cli.sh` 4. **Data file errors** - Check file permissions - Verify JSON format in `sample_data.json` ### Getting Help - Check the logs: `./mcp_cli.sh logs` - Review server logs: `tail -f server.log` - Test server health: `./mcp_cli.sh health` - Check API documentation: http://localhost:5000/docs ## ๐ŸŽฏ Roadmap - [ ] Add user authentication and authorization - [ ] Implement real-time notifications - [ ] Add more MCP tools (file processing, email, etc.) - [ ] Create web dashboard - [ ] Add unit and integration tests - [ ] Implement caching for better performance - [ ] Add Docker support - [ ] Create CI/CD pipeline ## ๐Ÿ“ž Support For support and questions: - Create an issue in the repository - Check the troubleshooting section - Review the API documentation --- **Built with โค๏ธ using FastAPI and Google Gemini**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MalikAqsa-cloud/MCP-Server-using-FAST-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server