Sync your calendar and tasks seamlessly with MCP. It allows you to authenticate with Google services and perform various calendar and task management operations directly through conversational AI interfaces.
The following tools are available through this MCP server:
test_auth_status
- Check current authentication status with Google APIsauthenticate
- Authenticate with Google Calendar and Tasks APIs using OAuth 2.0
get_all_calendars
- Retrieve all calendars associated with your Google accountget_events
- Fetch events from your calendar within a specified date rangecreate_event
- Create new calendar events with title, description, and time details
add_task
- Add new tasks to your default Google Tasks list with optional notes and due datesget_tasks
- Retrieve all tasks from your Google Tasks listsupdate_task
- Update existing tasks (title, notes, due date, completion status)
- Set up Google Cloud credentials (see Google Cloud Setup section below)
- Install dependencies using uv
- Configure environment variables
- Run the MCP server
- Connect to Claude Desktop or Cursor
- Python 3.11 or higher
- A Google Cloud project with the Calendar and Tasks API enabled
- OAuth 2.0 credentials (Desktop app type)
- uv package manager
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Calendar API and Google Tasks API for your project
- Create OAuth 2.0 credentials:
- Go to Credentials → "Create Credentials" → "OAuth client ID"
- Choose "User data" and add scopes:
https://www.googleapis.com/auth/calendar
,https://www.googleapis.com/auth/tasks
- Select "Desktop app" as the application type (Important!)
- Download and save the JSON credentials file as
credentials.json
in your project root
-
Install uv (if not already installed):
# On macOS and Linux curl -LsSf https://astral.sh/uv/install.sh | sh # On Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Clone the repository:
git clone https://github.com/Aditya8840/SyncMCP cd SyncMCP
-
Install dependencies:
uv sync
-
Set up environment variables:
cp .env.example .env
Modify the
.env
file with your preferred settings if needed.
-
Run the MCP server:
uv run main.py
The server will start on
http://127.0.0.1:8000/mcp
-
Add MCP to Cursor or Claude:
Since this uses streamable-http transport, connect to:
http://127.0.0.1:8000/mcp
- Start the MCP server
- In Claude Desktop or Cursor, use the
authenticate()
function - A browser window will open for Google OAuth authentication
- Grant the necessary permissions for Calendar and Tasks access
- Once authenticated, you can use all the available tools
Once authenticated, you can interact with your Google Calendar and Tasks:
- "Show me my events for next week"
- "Create a event titled 'Team Standup' tomorrow at 10 AM"
- "Add a task to review the project proposal"
- "What tasks do I have pending?"
Contributions are welcome! Please feel free to submit a Pull Request.