Personal AI Assistant using MCP

A comprehensive personal AI assistant built using Model Context Protocol (MCP) that can perform various tasks through specialized MCP servers.

๐ŸŽฏ Features Implemented

โœ… Email Sending (1pt)

  • Send emails to multiple recipients
  • Simple text email functionality
  • Uses Resend API for reliable email delivery
  • Secure API key management with environment variables

โœ… PDF Reading and Q&A (1pt)

  • Read single or multiple PDF files
  • Extract text content from PDFs
  • Ask questions about PDF content
  • Simple keyword-based search and Q&A

โœ… Meeting Scheduling (1pt)

  • Schedule meetings with date/time
  • Check availability for time slots
  • List and manage scheduled meetings
  • Cancel meetings
  • Conflict detection

โœ… Web Search (1pt)

  • Search the internet for real-time information
  • Get news articles on specific topics
  • Weather information lookup
  • Stock price queries
  • Uses DuckDuckGo for search (no API key required)

โœ… Pizza Ordering (2pt)

  • Browse pizza menus and restaurants
  • Place pizza orders with customization
  • Check order status
  • Multiple restaurant support
  • Pricing calculation with delivery fees

โœ… Question Asking (2pt)

  • Ask clarifying questions when uncertain
  • Request personal information securely
  • Preference-based questions with options
  • Confirmation requests for actions
  • Track pending questions and responses

๐Ÿ—๏ธ Architecture

MCP Server Structure

model_context_protocol/
โ”œโ”€โ”€ mcp_servers/
โ”‚   โ”œโ”€โ”€ email_sender.py      # Email functionality
โ”‚   โ”œโ”€โ”€ pdf_reader.py        # PDF processing and Q&A
โ”‚   โ”œโ”€โ”€ web_search.py        # Internet search capabilities
โ”‚   โ”œโ”€โ”€ meeting_scheduler.py  # Calendar and meeting management
โ”‚   โ”œโ”€โ”€ pizza_ordering.py    # Pizza ordering system
โ”‚   โ””โ”€โ”€ ask_questions.py     # User interaction and questions
โ”œโ”€โ”€ main_mcp_server.py        # Combined server with all tools
โ”œโ”€โ”€ test_all_servers.py      # Testing script
โ”œโ”€โ”€ test_email.py            # Email testing
โ”œโ”€โ”€ .env                     # Environment variables
โ””โ”€โ”€ pyproject.toml           # Dependencies

Key Technologies

  • FastMCP: Modern MCP server framework
  • Resend: Email delivery service
  • PyPDF: PDF text extraction
  • LangChain: Document processing and Q&A
  • Requests: Web search and HTTP requests
  • Python 3.11+: Modern Python features

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.11 or higher
  • Resend API key (for email functionality)
  • UV package manager (recommended)

Installation

# Clone the repository
git clone https://github.com/debajoycs98/MCP.git
cd MCP

# Install dependencies
uv sync

# Set up environment variables
echo "RESEND_API_KEY=your_resend_api_key_here" > .env

Running the Servers

Individual Servers
# Email server
uv run python mcp_servers/email_sender.py

# PDF reader server
uv run python mcp_servers/pdf_reader.py

# Web search server
uv run python mcp_servers/web_search.py

# Meeting scheduler
uv run python mcp_servers/meeting_scheduler.py

# Pizza ordering
uv run python mcp_servers/pizza_ordering.py

# Questions server
uv run python mcp_servers/ask_questions.py
Main Combined Server
# Run the main server with all tools
uv run python main_mcp_server.py

Chat Interface

# Start the interactive chat assistant
uv run python chat_assistant.py

# Or use the launcher script
./start.sh

# Or use the Python launcher
uv run python start_assistant.py

Testing

# Test all servers
uv run python test_all_servers.py

๐Ÿ”ง Configuration

Environment Variables

Create a .env file with:

RESEND_API_KEY=your_resend_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here

API Keys Required

๐Ÿ’ฌ Chat Interface

The Personal AI Assistant includes a terminal-based chat interface that allows you to interact with all tools through natural language commands.

Starting the AI Chat Assistant

# Method 1: Direct Python execution (Recommended)
uv run python ai_chat_assistant.py

# Method 2: Using the shell script
./start.sh

# Method 3: Using the Python launcher
uv run python start_assistant.py

Chat Commands

๐Ÿ“ง Email Commands
  • send email to <email> subject <subject> body <body>
  • send simple email to <email> subject <subject> message <message>
๐Ÿ“„ PDF Commands
  • read pdf <file_path>
  • read multiple pdfs <file1,file2,file3>
  • ask about pdf <question> [file_path]
  • list loaded documents
๐ŸŒ Web Search Commands
  • search <query>
  • get news <topic>
  • get weather <location>
  • get stock <symbol>
๐Ÿ“… Meeting Commands
  • schedule meeting <title> on <date> at <time> for <duration> minutes
  • list meetings [date]
  • cancel meeting <meeting_id>
  • check availability <date> <time> [duration]
๐Ÿ• Pizza Commands
  • show pizza menu
  • show restaurants
  • order pizza <type> [size] [quantity] [restaurant]
  • check order <order_id>
  • list my orders
โ“ Question Commands
  • ask <question>
  • ask personal <info_type> for <purpose>
  • ask preference <type> options <option1,option2,option3>
  • confirm <action>
  • list pending questions
๐Ÿ”ง Utility Commands
  • help - Show all available commands
  • status - Show assistant status
  • quit - Exit the assistant

Example Chat Session

๐Ÿค– Personal AI Assistant v1.0.0
   Your personal AI assistant for all tasks
==============================================================

๐Ÿ“ง Email Management    ๐Ÿ“„ PDF Reading & Q&A    ๐ŸŒ Web Search
๐Ÿ“… Meeting Scheduling  ๐Ÿ• Pizza Ordering       โ“ Smart Questions

Type 'help' for commands, 'quit' to exit
==============================================================

๐Ÿค– You: send email to [email protected] subject "Meeting" body "Let's meet tomorrow"
๐Ÿค– Assistant: Email sent successfully! ID: abc123

๐Ÿค– You: search latest AI news
๐Ÿค– Assistant: Search results for 'latest AI news':...

๐Ÿค– You: show pizza menu
๐Ÿค– Assistant: ๐Ÿ• Available Pizzas:...

๐Ÿค– You: quit
๐Ÿ‘‹ Goodbye! Thanks for using the Personal AI Assistant!

๐Ÿ“‹ Available Tools

Email Tools

  • send_email_tool(to, subject, body, from_email) - Send emails to multiple recipients

PDF Tools

  • read_pdf_tool(file_path) - Read and extract text from PDF
  • read_multiple_pdfs_tool(file_paths) - Read multiple PDFs
  • ask_question_about_pdf_tool(question, file_path) - Ask questions about PDF content
  • list_loaded_documents_tool() - List loaded PDF documents

Web Search Tools

  • search_web_tool(query, num_results) - Search the internet
  • get_news_tool(topic, num_articles) - Get news articles
  • get_weather_tool(location) - Get weather information
  • get_stock_price_tool(symbol) - Get stock prices

Meeting Tools

  • schedule_meeting_tool(title, date, time, duration, attendees, location, description) - Schedule meetings
  • list_meetings_tool(date) - List scheduled meetings
  • cancel_meeting_tool(meeting_id) - Cancel meetings
  • check_availability_tool(date, time, duration) - Check availability

Pizza Tools

  • get_pizza_menu_tool() - Get pizza menu
  • get_restaurants_tool() - Get available restaurants
  • order_pizza_tool(pizza_type, size, quantity, restaurant, customer_name, ...) - Place orders
  • check_order_status_tool(order_id) - Check order status
  • list_orders_tool() - List all orders

Question Tools

  • ask_clarifying_question_tool(question, context, question_type, required) - Ask questions
  • ask_personal_information_tool(info_type, purpose, required) - Request personal info
  • ask_preference_question_tool(preference_type, options, context) - Ask preferences
  • ask_confirmation_tool(action, details, consequences) - Request confirmation
  • get_user_response_tool(question_id, response) - Record responses
  • list_pending_questions_tool() - List pending questions

๐Ÿ”’ Security Features

  • Environment Variable Management: API keys stored securely in .env file
  • Input Validation: All inputs are validated before processing
  • Error Handling: Comprehensive error handling for all operations
  • Private Data Protection: Local processing for sensitive information
  • User Consent: Explicit confirmation for actions requiring user data

๐Ÿ“Š Scoring Breakdown

  • โœ… Email Sending: 1pt - Complete with Resend integration
  • โœ… PDF Reading: 1pt - Complete with text extraction and Q&A
  • โœ… Meeting Scheduling: 1pt - Complete with conflict detection
  • โœ… Web Search: 1pt - Complete with multiple search types
  • โœ… Pizza Ordering: 2pt - Complete with full ordering system
  • โœ… Question Asking: 2pt - Complete with user interaction system

Total: 8 points - All requirements met!

๐Ÿงช Testing

The project includes comprehensive testing:

  • Individual server testing
  • Integration testing
  • Error handling validation
  • API connectivity testing

Run tests with:

uv run python test_all_servers.py

๐Ÿ“ Implementation Details

Design Decisions

  1. Modular Architecture: Each functionality is a separate MCP server
  2. FastMCP Framework: Modern, efficient MCP server implementation
  3. Environment-based Configuration: Secure API key management
  4. Comprehensive Error Handling: User-friendly error messages
  5. Extensible Design: Easy to add new tools and capabilities

Key Features

  • Async/Await: Modern Python async programming
  • Type Hints: Full type annotation for better code quality
  • Documentation: Comprehensive docstrings for all functions
  • Testing: Automated testing for all components
  • Security: Secure handling of sensitive information

๐Ÿš€ Future Enhancements

  • Vector database integration for better PDF Q&A
  • Calendar integration for meeting scheduling
  • Payment processing for pizza orders
  • Advanced web scraping capabilities
  • Machine learning for better question understanding

๐Ÿ“„ Submission

This project includes:

  • โœ… Complete source code for all MCP servers
  • โœ… Comprehensive documentation
  • โœ… Testing scripts and validation
  • โœ… Environment configuration
  • โœ… Dependencies and setup instructions

Ready for submission with all requirements met!

MCP Server ยท Populars

MCP Server ยท New

    WordPress

    MCP Adapter

    An MCP adapter that bridges the Abilities API to the Model Context Protocol, enabling MCP clients to discover and invoke WordPress plugin, theme, and core abilities programmatically.

    Community WordPress
    HzaCode

    OneCite

    ๐Ÿ“š An intelligent toolkit to automatically parse, complete, and format academic references, with Model Context Protocol (MCP) support.

    Community HzaCode
    cexll

    Codex MCP Tool

    Codex Mcp Server

    Community cexll
    wise-vision

    WiseVision ROS 2 MCP Server

    Advanced MCP Server ROS 2 bridging AI agents straight into robotics

    Community wise-vision
    aahl

    ๐Ÿ“ˆ AkTools MCP Server

    ๐Ÿ“ˆ ๆไพ›่‚ก็ฅจใ€ๅŠ ๅฏ†่ดงๅธ็š„ๆ•ฐๆฎๆŸฅ่ฏขๅ’Œๅˆ†ๆžๅŠŸ่ƒฝMCPๆœๅŠกๅ™จ

    Community aahl