Server data from the Official MCP Registry
A private, context-efficient MCP server for Google Tasks.
A private, context-efficient MCP server for Google Tasks.
This is a well-structured Google Tasks MCP server with proper OAuth2 authentication, clear separation of concerns, and appropriate input validation. The server requires MCP bearer tokens for HTTP access and uses secure credential storage patterns. Minor code quality issues around broad exception handling and DNS rebinding protection being disabled do not significantly impact security posture. Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 4 high severity). Package verification found 1 issue.
7 files analyzed · 11 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: GOOGLE_CLIENT_ID
Environment variable: GOOGLE_CLIENT_SECRET
Environment variable: GOOGLE_REDIRECT_URI
Environment variable: DB_PATH
Environment variable: DEFAULT_TASKLIST
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-ebmurha-google-tasks-mcp": {
"env": {
"DB_PATH": "your-db-path-here",
"DEFAULT_TASKLIST": "your-default-tasklist-here",
"GOOGLE_CLIENT_ID": "your-google-client-id-here",
"GOOGLE_REDIRECT_URI": "your-google-redirect-uri-here",
"GOOGLE_CLIENT_SECRET": "your-google-client-secret-here"
},
"args": [
"google-tasks-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
A self-hosted MCP server that connects any MCP-compatible client to Google Tasks. Tools return only what the model needs — compact task objects, no Google API envelope fields.
git clone https://github.com/ebmurha/google-tasks-mcp.git
cd google-tasks-mcp
python3.11 -m venv .venv && . .venv/bin/activate
pip install -e .
cp .env.example .env # set GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, MCP_BEARER_TOKEN
Generate MCP_BEARER_TOKEN with python -c "import secrets; print(secrets.token_urlsafe(48))".
Use it on HTTP MCP requests as Authorization: Bearer <token>.
Bootstrap OAuth (once):
google-tasks-mcp-bootstrap
# Open the printed URL, approve, paste back the code.
Start the server:
python -m google_tasks_mcp
Health check: curl http://127.0.0.1:8787/healthz → {"ok":true}
Remote HTTP (server on a VPS or local machine):
URL: http://127.0.0.1:8787/mcp
Auth: Bearer <MCP_BEARER_TOKEN>
Local stdio (MCP client spawns the process directly):
command: /path/to/.venv/bin/python
args: ["-m", "google_tasks_mcp", "--transport", "stdio"]
MCP_BEARER_TOKEN is not required for stdio.
| Tool | What it does |
|---|---|
list_tasklists | List your task lists |
today | Incomplete tasks due today |
overdue | Incomplete overdue tasks |
upcoming | Tasks due within N days (default 7) |
search | Case-insensitive title + notes search |
get_task | Single task with full notes |
digest | Short text summary (~30–100 tokens) |
add | Create a task |
complete | Mark a task done |
update | Edit title, notes, or due date |
delete | Delete a task |
move | Move a task to another list |
All tasklist arguments accept both a list ID and a friendly title. When omitted, the server uses DEFAULT_TASKLIST from .env, or the first list returned by Google.
Cross-list move is emulated via insert + delete. The moved task gets a new Google task ID.
Recommended: Web application
http://127.0.0.1:8787/callback.https://your-domain.example/callback.GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and GOOGLE_REDIRECT_URI in .env.GOOGLE_REDIRECT_URI must exactly match one of the authorized redirect URIs.Example .env values for a local Web application OAuth client:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URI=http://127.0.0.1:8787/callback
Local-only alternative: Desktop app
GOOGLE_OAUTH_KEYS_PATH to the file.GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET empty when using the JSON file.GOOGLE_REDIRECT_URI if the JSON contains redirect_uris; otherwise set it to one of the JSON file's redirect URIs.Example .env values for a Desktop app OAuth client:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=
GOOGLE_OAUTH_KEYS_PATH=/home/you/.config/google-tasks-mcp/gcp-oauth.keys.json
The repo-root fallback name gcp-oauth.keys.json is supported for convenience, but keeping OAuth credential JSON outside the repo is preferred.
If the consent screen is in testing mode, add your Google account as a test user or refresh tokens will expire after 7 days.
docker compose up --build
Keep .env, gcp-oauth.keys.json, and database files outside the image — mount a named volume for the database directory.
Template files are in deploy/:
deploy/caddy/Caddyfile — Caddy reverse proxy with HTTPSdeploy/systemd/google-tasks-mcp.service — systemd unitReplace all placeholder domains, paths, and users before deploying.
pytest
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.