Skip to main content
Glama
doitian
by doitian

google-task-ifttt-webhook-mcp

MCP server running on Cloudflare Workers that exposes a create_google_task tool. Sends tasks to Google Tasks via the IFTTT Maker webhook.

Authentication is handled by Cloudflare Access (Managed OAuth). The worker validates the Cf-Access-Jwt-Assertion JWT against Access JWKS.

How it works

MCP Client                  Cloudflare Access          Cloudflare Worker         IFTTT
    |                             |                          |                     |
    |-- OAuth login ------------>|                          |                     |
    |<-- access granted ---------|                          |                     |
    |                             |                          |                     |
    |-- POST /mcp -------------->|-- Cf-Access-Jwt-Assertion->|                    |
    |                             |                          |-- POST JSON ------->|
    |                             |                          |<-- "Congratulations"|
    |<-- result -----------------|<-------------------------|                     |

Related MCP server: Remote MCP Server Authless

Prerequisites

Setup

1. Install dependencies

npm install

2. Get your IFTTT Maker key

  1. Go to IFTTT Maker Webhooks

  2. Click Documentation

  3. Your key is the last path segment of the URL shown: https://maker.ifttt.com/use/{YOUR_KEY}

  4. Set it as a Worker secret:

npx wrangler secret put IFTTT_MAKER_TASK_KEY

3. Set up the IFTTT applet

Create an applet on IFTTT:

  • If: Maker Webhooks → Receive a web request with a JSON payload, event name task

  • Then: Google Tasks → Create a task

    • Title: {{JsonPayload.title}}

    • Notes: {{JsonPayload.notes}}

    • Due date: {{JsonPayload.due}}

The worker posts to:

https://maker.ifttt.com/trigger/task/json/with/key/{KEY}

with a JSON body like { "title": "...", "notes": "...", "due": "..." }.

4. Configure Cloudflare Access

  1. Go to Cloudflare Zero Trust dashboard

  2. Navigate to AccessApplicationsAdd an applicationSelf-hosted

  3. Configure:

    • Application name: google-task-mcp

    • Application domain: your worker hostname (custom domain or *.workers.dev)

    • Identity providers: Select your preferred IdP (Google, GitHub, email OTP, etc.)

    • Policy: Create an allow policy for the users who should access the MCP server

    • Managed OAuth (Beta): Must be enabled

  4. Note your team domain (e.g. myteam.cloudflareaccess.com) and the Application Audience (AUD) tag

  5. Set them as Worker secrets:

npx wrangler secret put CF_ACCESS_TEAM_DOMAIN
npx wrangler secret put CF_ACCESS_AUD

CF_ACCESS_AUD is optional but recommended (enables audience validation on the JWT).

5. Deploy

npm run deploy

6. Test locally (optional)

npm run dev

The worker is available at http://localhost:8787. When CF_ACCESS_TEAM_DOMAIN is unset, any present Cf-Access-Jwt-Assertion header is accepted (use a dummy value for local calls).

7. Configure the MCP client

Point the client at the worker URL (path / or /mcp). Auth is Cloudflare Access Managed OAuth — the client completes Access login; Access injects Cf-Access-Jwt-Assertion on requests to the worker.

opencode

{
  "mcp": {
    "google-tasks": {
      "type": "remote",
      "url": "https://google-task-mcp.yourdomain.com/mcp",
      "oauth": {}
    }
  }
}

Claude Desktop / other streamable HTTP clients

Use your client's remote MCP + OAuth settings with:

https://google-task-mcp.yourdomain.com/mcp

Tool: create_google_task

Parameter

Required

Description

title

yes

Single-line task title

notes

no

Optional detailed notes. \n for line breaks

due

no

Optional due date in ISO 8601 UTC (e.g. 2026-07-25T23:59:59Z)

Example MCP call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_google_task",
    "arguments": {
      "title": "Buy groceries",
      "notes": "Milk, eggs, bread",
      "due": "2026-07-25T23:59:59Z"
    }
  }
}

Secrets / env

Name

Required

Description

IFTTT_MAKER_TASK_KEY

yes

IFTTT Maker Webhooks key

CF_ACCESS_TEAM_DOMAIN

prod

Cloudflare Zero Trust team domain (e.g. myteam.cloudflareaccess.com). Omit locally to skip JWKS verification

CF_ACCESS_AUD

no

Access application audience tag (enables audience validation)

ICON_URL

no

Override the default server icon URL returned on initialize

Set secrets via:

npx wrangler secret put <NAME>

Endpoints

Method

Path

Description

POST

/ or /mcp

MCP JSON-RPC (requires valid Cf-Access-Jwt-Assertion)

OPTIONS

*

CORS preflight

Supported MCP methods: initialize, notifications/initialized, ping, tools/list, tools/call.

Troubleshooting

"Unauthorized: Cloudflare Access authentication required"

Missing or invalid Cf-Access-Jwt-Assertion. Ensure Access protects the worker hostname, Managed OAuth is enabled, and the client completed Access login. Locally, send any non-empty Cf-Access-Jwt-Assertion header when CF_ACCESS_TEAM_DOMAIN is unset.

"IFTTT webhook failed (HTTP 404)"

The Maker key is invalid or no applet listens for event task. Verify the key and applet event name.

"IFTTT_MAKER_TASK_KEY is not configured on the server."

npx wrangler secret put IFTTT_MAKER_TASK_KEY

Then redeploy.

JWT verification failures in production

Confirm CF_ACCESS_TEAM_DOMAIN matches your team domain exactly (hostname only, or full https://… URL). If set, CF_ACCESS_AUD must match the Access application AUD tag.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Cloudflare Workers MCP server: crypto-signal

  • Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doitian/google-task-ifttt-webhook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server