arpitbatra123/mcp-googletasks
If you are the rightful owner of mcp-googletasks and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Google Tasks MCP Server connects Claude with Google Tasks, enabling task management through Claude.
Google Tasks MCP Server
This Model Context Protocol (MCP) server provides a bridge between Claude and Google Tasks, allowing you to manage your task lists and tasks directly through Claude.
[!NOTE] All (bar some edits) code in this project was "vibe coded" - generated with Claude/Copilot with instructions from me.
Features
This MCP server provides the following functionality:
Task List Management
list-tasklists- List all your task listsget-tasklist- Get details about a specific task listcreate-tasklist- Create a new task listupdate-tasklist- Update an existing task listdelete-tasklist- Delete a task list
Task Management
list-tasks- List all tasks in a task listget-task- Get details about a specific taskcreate-task- Create a new taskupdate-task- Update an existing taskdelete-task- Delete a taskcomplete-task- Mark a task as completedmove-task- Move a task (reorder or change parent)clear-completed-tasks- Clear all completed tasks from a list
Setup Instructions
1. Create Google Cloud Project & Enable API
- Go to the Google Cloud Console
- Create a new project
- Navigate to "APIs & Services" > "Library"
- Search for "Google Tasks API" and enable it
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth Client ID"
- Configure the OAuth consent screen (External is fine for personal use)
- For Application Type, select "Web application"
- Add "http://localhost:3000/oauth2callback" as an authorized redirect URI
- Create the client ID and secret
2. Configure Claude for Desktop
- Install Claude for Desktop
- Open the Claude configuration file:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- MacOS:
- Add the Google Tasks MCP server configuration:
{
"mcpServers": {
"google-tasks": {
"command": "node",
"args": ["/path/to/google-tasks-mcp/build/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id_here",
"GOOGLE_CLIENT_SECRET": "your_client_secret_here",
"GOOGLE_REDIRECT_URI": "http://localhost:3000/oauth2callback"
}
}
}
}
Replace the path and credentials with your own values.
Environment Variables:
GOOGLE_CLIENT_ID(required) - Your Google OAuth Client IDGOOGLE_CLIENT_SECRET(required) - Your Google OAuth Client SecretGOOGLE_REDIRECT_URI(optional) - OAuth redirect URI (defaults tohttp://localhost:3000/oauth2callback)
Note: The server validates that GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are set at startup and will fail with clear error messages if they are missing or invalid.
3. Build and Run the Server
- Install dependencies:
npm install
- Build the server:
npm run build
- Restart Claude for Desktop
Authentication Flow
When you first use the Google Tasks MCP server:
- Use the
authenticatetool to get an authorization URL - Visit the URL in your browser and sign in with your Google account
- After authorizing, you'll receive a code on the browser page
- Use the
set-auth-codetool with this code to complete authentication - You can now use all other tools to interact with Google Tasks
Note: Your authentication tokens (including refresh tokens) are automatically saved to disk at ~/.config/google-tasks-mcp/credentials.json with restricted permissions (600). This means:
- You only need to authenticate once - credentials persist across server restarts
- Automatic token refresh - Access tokens are automatically refreshed when they expire (typically after 1 hour) using the saved refresh token
- No re-authentication needed - After the initial setup, you won't need to authenticate again unless you revoke access or delete the credentials file
Requirements
- Node.js 20+ (see
package.jsonengines) - Claude for Desktop (latest version)
- Google Cloud Project with Tasks API enabled
Implementation Features
This MCP server includes the following improvements:
- Persistent token storage - Authentication credentials are saved to disk (
~/.config/google-tasks-mcp/credentials.json) with restricted permissions, so you only need to authenticate once - Environment variable validation - Startup validation ensures required credentials are configured with clear error messages
- Automatic token refresh - OAuth tokens are automatically refreshed when they expire, eliminating the need to re-authenticate during active sessions or after restarts
- Enhanced input validation - Comprehensive validation of all inputs including ID formats, string lengths, and RFC 3339 date formats
- HTML sanitization - OAuth callback responses are sanitized to prevent XSS vulnerabilities
- Graceful shutdown - Proper cleanup of resources on SIGINT/SIGTERM signals
- Type safety - Full TypeScript type safety throughout the codebase with proper interfaces
- Configurable redirect URI - The OAuth redirect URI can be customized via the
GOOGLE_REDIRECT_URIenvironment variable
Screenshots
Claude Desktop

Cursor

License
This project is for demonstration purposes only. Use at your own risk.