{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_nf8sqn8f3wvh","handle":"gmail-calendar-mcp","url":"https://wellknown.network/agents/gmail-calendar-mcp","links":{"self":"https://wellknown.network/agents/gmail-calendar-mcp/record.json","html":"https://wellknown.network/agents/gmail-calendar-mcp","markdown":"https://wellknown.network/agents/gmail-calendar-mcp/record.md","api":"https://wellknown.network/api/v1/agents/gmail-calendar-mcp","status":"https://wellknown.network/api/v1/agents/gmail-calendar-mcp/status","claim":"https://wellknown.network/agents/gmail-calendar-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/gmail-calendar-mcp/claim.json","badge":"https://wellknown.network/agents/gmail-calendar-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:gmail-calendar-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"gmail-calendar-mcp","summary":"Multi-account Gmail + Google Calendar MCP server (stdio) with env-var-only OAuth credentials.","description":"# Gmail + Calendar MCP Server\n\nA multi-account [Model Context Protocol](https://modelcontextprotocol.io) server for **Gmail and\nGoogle Calendar** (72 tools). Runs over **stdio**, installs via **uvx**, and takes **all credentials\nfrom environment variables** — the host running the server never needs a `credentials.json` or\n`token.json` file.\n\n- One shared Google OAuth \"Desktop\" client authorizes every account.\n- Each account contributes only its **refresh token** (one token covers both Gmail and Calendar).\n- Every tool takes an `account` argument to pick the account and an optional `password` (see below).\n\n## How credentials work (2 env vars + 1 optional)\n\n| Variable | Required | Format | Example |\n| --- | --- | --- | --- |\n| `GMAIL_CLIENT` | yes | `client_id\\|client_secret` | `123-abc.apps.googleusercontent.com\\|GOCSPX-xxxx` |\n| `GMAIL_ACCOUNTS` | yes | `selector=refresh_token` pairs, separated by `;` or newlines | `alice@gmail.com=1//0gFoo;work=1//0gBar` |\n| `PASSWORDS` | no | `selector=password` pairs, separated by `;` or newlines | `alice@gmail.com=hunter2;work=s3cret` |\n\nThe `selector` defaults to the account's email but you can rename it to a short alias\n(`work`, `personal`). You never hand-write the credential values — the `gmail-mcp-auth` command prints them.\n\n### Password protection (optional)\n\nSet `PASSWORDS` to require a per-account password on **every** tool call. When it's set, the\ngate is **on**: each call must pass `password` matching that account's entry, or the tool returns\n`Invalid password for account '…'` and does nothing (no Gmail request is made). Passwords are\ncompared in constant time. Notes:\n\n- Keys must match your `GMAIL_ACCOUNTS` selectors (case-insensitively). A `PASSWORDS` key that\n  matches no account makes the server **refuse to start**. An account with no `PASSWORDS` entry is\n  **locked** (no password can unlock it) while the gate is on — the server logs which accounts are\n  locked at startup.\n- Passwords cannot contain `=`, `;`, or n…","publisher":{"name":"Eitan Hadar","url":null},"homepage":null,"repository":null,"version":"0.2.0","license":"MIT","protocols":["mcp"],"tags":["calendar","email","gmail","google-calendar","mcp","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:gmail-calendar-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"declared"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":1,"provenance":"declared"},{"slug":"security.identity","name":"Identity & Access","confidence":0.745,"provenance":"derived"}],"categories":["productivity","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"gmail-calendar-mcp","registry":"pypi","observedAt":"2026-09-09T16:25:32.398Z","publishedAt":"2026-06-09T23:12:55.935262Z","latestVersion":"0.2.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"gmail-calendar-mcp","url":"https://pypi.org/project/gmail-calendar-mcp/","firstSeenAt":"2026-09-09T16:24:10.701Z","fetchedAt":"2026-09-09T16:24:10.701Z","normalizedAt":"2026-09-09T16:24:10.701Z"}]},"firstSeenAt":"2026-09-09T16:24:10.701Z","updatedAt":"2026-09-09T16:25:32.398Z"}