MCP-Server-using-FAST-MCP

MalikAqsa-cloud/MCP-Server-using-FAST-MCP

3.2

If you are the rightful owner of MCP-Server-using-FAST-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A comprehensive Model Context Protocol (MCP) server built with FastAPI that integrates with Google Gemini CLI for AI-powered task management and data processing.

Tools
6
Resources
0
Prompts
0

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

git clone <repository-url>
cd FAST_MCP

2. Create Virtual Environment

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

3. Install Dependencies

pip install -r requirements.txt

4. Install Google Gemini CLI

Follow the official Gemini CLI installation guide:

Make sure Gemini CLI is properly configured with your API key.

๐Ÿš€ Quick Start

Start the Server

./mcp_cli.sh start

The server will start on http://localhost:5000

Check Server Status

./mcp_cli.sh status

List Available Tools

./mcp_cli.sh list

Use MCP Tools

# 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

./mcp_cli.sh gemini "What are the best practices for API security?"

View Logs

./mcp_cli.sh logs

Stop the Server

./mcp_cli.sh stop

๐Ÿ“š API Documentation

Once the server is running, visit:

๐Ÿ”ง 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

# 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:

{
  "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:

./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:

gemini config set api_key YOUR_API_KEY

๐Ÿš€ Deployment

Development

./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