
MCP Personal Assistant Agent
A versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.
zhangzhongnan928
README
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
- Clone the repository:
git clone https://github.com/yourusername/mcp-pa-ai-agent.git
cd mcp-pa-ai-agent
- Ensure you have Python 3.10+:
python --version
- 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
- Install dependencies:
pip install -r requirements.txt
- Configure environment variables by copying the example file:
cp .env.example .env
- 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
-
Install Claude for Desktop
-
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
- MacOS/Linux:
-
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.
- Restart Claude for Desktop
Available Tools
Calendar
get_events
: Retrieve upcoming calendar eventscreate_event
: Schedule a new calendar event
Tasks
list_tasks
: View all tasks or filter by statusadd_task
: Create a new taskupdate_task_status
: Mark tasks as pending, in-progress, or completed
get_emails
: List recent emails from your inboxread_email
: View the full content of a specific emailsend_email
: Compose and send a new email
Knowledge
web_search
: Search the web for informationget_weather
: Get current weather informationget_news
: Retrieve latest news articles
Smart Home
list_devices
: View all smart home devicescontrol_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:
- Create a new module in the
modules/
directory - Implement functions with the
@mcp.tool()
decorator - Import your module in
mcp_server.py
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Recommended Servers
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Excel MCP Server
A Model Context Protocol server that enables AI assistants to read from and write to Microsoft Excel files, supporting formats like xlsx, xlsm, xltx, and xltm.
Playwright MCP Server
Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

google-calendar-mcp
Lets LLMs read and manage Google Calendar events.
DuckDuckGo MCP Server
A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.
YouTube Transcript MCP Server
This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.
@kazuph/mcp-gmail-gas
Model Context Protocol server for Gmail integration. This allows Claude Desktop (or any MCP client) to interact with your Gmail account through Google Apps Script.