Skip to main content

MCP Personal Assistant Agent

A versatile personal assistant AI agent built with the Model Context Protocol (MCP) that helps with calendar, tasks, emails, and more.

Overview

This project is a Model Context Protocol (MCP) server that provides a set of tools for a personal assistant agent. It can be integrated with MCP clients like Claude for Desktop to give AI assistants the ability to:

  • Manage calendar events
  • Track tasks and to-dos
  • Read and send emails
  • Search the web and retrieve information
  • Control smart home devices

Requirements

⚠️ IMPORTANT: Python 3.10 or higher is required for the MCP SDK. The server will not work with earlier Python versions.

  • Python 3.10+
  • MCP SDK 1.2.0+
  • Required Python packages (see requirements.txt)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/mcp-pa-ai-agent.git
cd mcp-pa-ai-agent
  1. Ensure you have Python 3.10+:
python --version
  1. If your system Python is older than 3.10, set up a compatible environment:
# Using conda
conda create -n mcp-env python=3.10
conda activate mcp-env

# OR using venv (if Python 3.10+ is installed elsewhere)
python3.10 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure environment variables by copying the example file:
cp .env.example .env
  1. Edit the .env file with your API credentials and settings.

Running the Server

Start the MCP server with:

python mcp_server.py

The server will start and listen for MCP client connections.

Connecting to Claude for Desktop

  1. Install Claude for Desktop

  2. Configure Claude for Desktop to use this MCP server by editing the configuration file at:

    • MacOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Add the following configuration:

{
  "mcpServers": {
    "personal-assistant": {
      "command": "/path/to/python",
      "args": [
        "/absolute/path/to/mcp-pa-ai-agent/mcp_server.py"
      ]
    }
  }
}

If you're using a virtual environment, make sure to point to the Python executable in that environment.

  1. Restart Claude for Desktop

Available Tools

Calendar

  • get_events: Retrieve upcoming calendar events
  • create_event: Schedule a new calendar event

Tasks

  • list_tasks: View all tasks or filter by status
  • add_task: Create a new task
  • update_task_status: Mark tasks as pending, in-progress, or completed

Email

  • get_emails: List recent emails from your inbox
  • read_email: View the full content of a specific email
  • send_email: Compose and send a new email

Knowledge

  • web_search: Search the web for information
  • get_weather: Get current weather information
  • get_news: Retrieve latest news articles

Smart Home

  • list_devices: View all smart home devices
  • control_device: Control smart home devices (lights, thermostats, etc.)
  • get_device_state: Get detailed information about a device's current state

Configuration

The server requires various API keys and credentials to access different services:

  • Google API: For calendar and email functionality (OAuth2 credentials)
  • Weather API: For weather information
  • News API: For news retrieval
  • Home Assistant: For smart home control

Refer to the .env.example file for all configurable options.

Troubleshooting

Python Version Issues

If you see an error like:

Error: Python 3.10 or higher is required for the MCP server.

You need to upgrade your Python version or use a virtual environment with Python 3.10+.

MCP SDK Installation Issues

If you encounter problems installing the MCP SDK:

ERROR: Could not find a version that satisfies the requirement mcp>=1.2.0

Make sure you're using Python 3.10+ and pip is updated:

pip install --upgrade pip

Development

To add new functionality to the server, you can:

  1. Create a new module in the modules/ directory
  2. Implement functions with the @mcp.tool() decorator
  3. Import your module in mcp_server.py

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Metadata

Release files for iflow-mcp_mcp-pa-ai-agent 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_mcp-pa-ai-agent 0.1.0
File Size Uploaded
iflow_mcp_mcp_pa_ai_agent-0.1.0.tar.gz 86.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_mcp-pa-ai-agent 0.1.0
File Interpreter ABI Platform
iflow_mcp_mcp_pa_ai_agent-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.1 kB

Release files / iflow_mcp_mcp_pa_ai_agent-0.1.0.tar.gz

Download URL iflow_mcp_mcp_pa_ai_agent-0.1.0.tar.gz
Size 86.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0a8161860b1e160c4607d72a41397b9820ef0ee23e230a51510fba824f5efc01
BLAKE2b-256 checksum
How to use checksums
adfb029e506c843c5798976cc5d4e1e01df4266e89c1fb9e1a7461313005b8be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release files / iflow_mcp_mcp_pa_ai_agent-0.1.0-py3-none-any.whl

Download URL iflow_mcp_mcp_pa_ai_agent-0.1.0-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5484c43c99c5189f75708ca9f2b4d054acb086cc0572fcabac8216d47a4fc07
BLAKE2b-256 checksum
How to use checksums
49395bcf5ed615f34572dfac720f8f46cf7b6ea0b2e2ab85ffd8b774537af81d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page