Skip to main content
Glama
luminarylane

gmail-mcp-server

by luminarylane
README.md
# gmail-mcp-server

Standalone Gmail MCP Server — draft-only. Lane never sends; the single tool creates a Gmail draft the owner reviews and sends themselves.

## Tools

### `gmail_draft_compose`

Creates a Gmail draft.

| Arg | Type | Required | Notes |
| --- | --- | --- | --- |
| `accessToken` | string | no | Falls back to `GMAIL_ACCESS_TOKEN` env var |
| `to` | string | no | Leave empty if unknown — the owner fills it in when reviewing the draft |
| `subject` | string | yes | |
| `body` | string | yes | Plain text |

Returns `{ draftId, messageId, draftUrl }`.

There is no send tool, no read tool, and no label/thread management in this server — it composes drafts only.

## Install / Dev

```bash
npm install
npm run dev      # run the server via tsx
npm run build    # compile to dist/
npm run check    # test + build
```

## Auth

Requires an OAuth 2.0 access token with the **`gmail.compose`** scope only — never `gmail.send`. Set it via `GMAIL_ACCESS_TOKEN` or pass `accessToken` per call. See `.env.example`.

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools. The single tool's purpose is clearly stated.

Naming Consistency4/5

The single tool name follows a clear verb_noun pattern (gmail_draft_compose), but with only one tool there is limited evidence of a broader convention. It is readable and predictable.

Tool Count1/5

A single tool for a Gmail server is far too thin to be useful. The server's apparent scope is much broader than drafting, and one tool cannot reasonably cover it.

Completeness1/5

The surface is severely incomplete. There is no send, read, list, search, or delete capability, and the tool only creates drafts, leaving the agent with a dead end after composing.

Maintenance

ActivityMaintained
ResponsivenessNo issues