Skip to main content
Glama
650,440 tools. Updated 2026-10-13 08:01

"Gmail login" matching MCP tools:

  • Lists your web-automation login profiles: every SAVED login (persisted on disk, so web_login/web_navigate can reopen it without signing in again) plus which are currently OPEN. Each entry has `saved` (a persisted profile exists) and `open` (its window is live now, with url + title). Use it to check whether a login a recipe needs already exists before running it, instead of opening it and failing.
    ConnectorOAuth
  • Polls a login session created by create_auth_session until the user completes the browser login. Poll every 2-3 seconds while status is 'pending'. Status 'active' reports the GRANTED scope, read back from the issued token. Completing the login does NOT authenticate this MCP session: pass session_request_id on every protected call afterwards. Omit it and the server falls back to your connector's bearer token, which usually carries content scope only, so content tools keep working while admin tools like pair_by_code refuse with admin_scope_required. The raw token is intentionally not returned over MCP. 'expired' means start over with create_auth_session.
    ConnectorNo auth
  • Connect a merchant for shopping. For merchants that need a real login (e.g. DoorDash) this opens a secure hosted browser session and returns a URL the user opens to log in; after they finish, call buy_connect_status with the pending_id to confirm. Merchants that need no login (e.g. Agentcard Flights) come back ready immediately. Use this instead of buy_link_merchant for hosted-login merchants. This tool pairs only with buy_connect_status and only tracks logins it started itself; a login link handed out by the conversational `buy` tool has no pending_id and is verified inside that same buy conversation (the user replies there, e.g. "done — I logged in").
    ConnectorNo auth
  • Call this to start or confirm 1inch Business login. HTTP 401 means you are still anonymous (initialize 200 is not login). After OAuth, call again until the result is authenticated: true with organizationId. Then use swap, orderbook, product_api, or debug. Do not treat a PaymentRequired / x402 result as login.
    ConnectorNo auth
  • Create a CRM outbound email DRAFT for a lead — does NOT send. Writes outbound_messages status=draft; for Gmail also creates a Gmail Drafts entry. Return value includes outboundMessageId (and gmailDraftId when channel=gmail). Show the draft to the user and wait for explicit approval before calling crm_send_email_draft. Optional attachmentDocumentIds attach Documents library files (same entity). Use crm_list_outbound_email_connections for connectionId + channel. POST /api/crm/outbound-email. Scope write:crm; RBAC crm.leads.edit.
    ConnectorOAuth
  • Create a Gmail DRAFT (saved, not sent) — new mail, or a reply when thread_id is set (from a search result / get_thread). A thread reply is drafted in the account that received the thread, as Reply All (original sender + original To/Cc) with proper threading headers, unless reply_mode='sender_only'; the result reports the account, to and cc. Unlike send_message this never delivers anything, so no pre-send confirmation is needed; the user reviews and sends it from Gmail. Needs gmail.compose — accounts connected before this feature get a reconnect hint. Pass `account` when more than one Gmail account is connected.
    ConnectorOAuth

Matching MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables read-only access to a single Gmail mailbox, listing emails within a date range and retrieving full headers and body text of individual emails, with deep-link jump URLs for each result.
    2
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables managing multiple Gmail accounts under one OAuth client, with per-account access levels, cross-account search, and read/write operations via stdio or Streamable HTTP.
    12
    184 npm
    MIT

Matching MCP Connectors

  • I do everything related to Gmail and productivity

  • gmailOAuth

    A MCP server for Gmail that lets you search, read, and draft emails and replies.

  • Provision a Floot-managed backend resource for the project — fully server-side (Floot mints all secrets; no keys to paste). Also seeds the working code for it. Available: - database — A Floot-managed Postgres database (Neon). FLOOT_DATABASE_URL is set for the app. - auth — Email/password + session auth (JWT_SECRET, auto-provisions a database if none). Injects auth pages, endpoints, and helpers. - oauth-login — Sign in with Google via Floot's brokered OAuth (FLOOT_OAUTH). Injects OAuth provider classes, login buttons, helpers. - microsoft-login — Sign in with Microsoft via Floot's brokered login (FLOOT_MICROSOFT_LOGIN). Injects button + auth endpoints. - google-integration — FLOOT_GOOGLE_INTEGRATIONS is built-in Google integration. Use it to let end users connect their Google account so the app can read/write their Gmail, Google Calendar, or Google Drive — unless the user specifies they want to use their own Google client. See get_guides("floot-provided-google-integrations"). - microsoft-integration — Microsoft Graph access (Outlook/Teams/etc.) via Floot's brokered Microsoft OAuth (FLOOT_MICROSOFT_INTEGRATIONS). Injects Connect button + endpoints. - push-notifications — Web + native push (FLOOT_PUSH). Mints VAPID keys, injects helpers/pushClient (subscribe/unsubscribe) + a service worker. Enum values not listed above are beta-gated and unavailable on most accounts. SENDING email from the app is NOT a resource — the builtin @floot/email handles it with zero setup (get_guides("email")). For a user's OWN external key (their OpenAI key, an external database), this is NOT the tool — use request_external_resource instead. Idempotent: re-running returns the existing resource and skips seed files that already exist. - app-connection — let this project's backend call functions ANOTHER Floot app exports (no API keys): pass app_target and app_functions. Only apps the user can edit, only functions in the other app's helpers/flootAppExports.tsx (saved is enough: write both apps first, connect, then publish both); the user confirms in a dialog. Read get_guides("app-calls") first.
    ConnectorOAuth
  • Search one of the authenticated user's connected Gmail inboxes (read-only). Reuses Integrations hub Gmail (service_connections provider=gmail). Optional account/email selects a mailbox when multiple are connected — call list_gmail_accounts first. Prefer Gmail operators: from:, subject:, is:unread, newer_than:7d, has:attachment. For clock-time constraints, pass after/before as account-local civil datetimes; the tool converts them to precise UTC instants. Returns id, subject, from, canonical date, account-local date_local, time_zone, and snippet only (no body), newest first (newest_first: true). For the latest / most recent email from someone, query from:<sender> alone, without quoted topic phrases (the newest reply often lacks them); a from: + topic search with no match from the last 7 days also searches the sender alone and marks those messages sender_only (see note). Follow up with read_gmail_message. Cannot send, archive, or delete. Never invent email contents. If Gmail is not connected, connect at /integrations. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. Share tokens cannot call this tool. ($0.10; API key required)
    ConnectorNo auth
  • Explains how to connect an account to this MCP server — read this instead of guessing at a login/registration tool, because there isn't one. ClusterHack's own credential endpoints (register, login, JWT issuance, password reset) are the website's login form, not MCP tools: an MCP client authenticates by OAuth 2.1 (the same flow a human approves in a browser tab) and must never see or handle a ClusterHack password directly. This tool works with no account at all, and just explains the steps and links.
    ConnectorNo auth
  • Send one email to one contact, in their conversation thread — by conversation_id, or contact_id to start or continue that contact's thread. It goes out from this account's sender: ShearQuery's own address for the ShearQuery team (replies come back into the thread), or the member's own connected Gmail for everyone else (replies go to their Gmail inbox). If no sender is set up, it says where to connect Gmail. A reply can leave out subject (it reuses the thread's, with Re:). Read the exact message back to the owner and get their OK first: it can't be unsent. Refused for a contact with no email or marked do-not-contact. channel is email; texting isn't connected yet.
    ConnectorNo auth
  • List all Gmail labels for the authenticated user. Returns both system labels (INBOX, SENT, TRASH, etc.) and user-created labels with message/thread counts. Use this to discover label IDs needed for add_labels, remove_labels, or search_email queries.
    ConnectorOAuth
  • Add and/or remove the same labels on many email messages at once in a single Gmail API call (wraps users.messages.batchModify). Use this for bulk operations such as marking multiple specific emails as read (remove ['UNREAD']), archiving (remove ['INBOX']), or starring (add ['STARRED']). Use list_labels to find label IDs (Gmail requires IDs, not names). Common system label IDs: INBOX, STARRED, IMPORTANT, UNREAD, SPAM, TRASH. Provide 1-1000 email IDs and at least one of `add` or `remove`. The same label changes are applied to every listed message. Gmail returns no per-message status, so a successful call means Gmail accepted the request; an invalid email ID or label ID typically causes Gmail to reject it.
    ConnectorOAuth
  • Authenticate existing subscriber via OAuth. Opens browser login. Does not count toward your monthly searches.
    ConnectorNo auth
  • Start signing the user in to a restaurant so they can place orders. Browsing the menu never needs this — only ordering and saving an address do. Returns a URL the user must open in a browser to sign in with Google or Apple; afterwards they copy the 'code' value from the address bar and you call submit_login_code. Each restaurant has its own login, so this must be done per restaurant.
    ConnectorNo auth
  • Builds a correct hosted-login redirect URL. Needs no secureFlows token — safe to call at app-scaffolding time, before any user session exists, which is the phase most secureFlows integration mistakes happen in. Always targets /app/sessions/login (session apps). Never builds the legacy /app/login console URL, which returns a firebaseToken your SecureFlowsCallback handler cannot consume and causes an infinite redirect loop. Use this instead of hand-building the URL with URLSearchParams — hand-built login URLs are the #1 source of the login-loop and stale-renewal bugs documented in SKILL.md.
    ConnectorNo auth
  • Builds a correct hosted-login redirect URL. Needs no secureFlows token — safe to call at app-scaffolding time, before any user session exists, which is the phase most secureFlows integration mistakes happen in. Always targets /app/sessions/login (session apps). Never builds the legacy /app/login console URL, which returns a firebaseToken your SecureFlowsCallback handler cannot consume and causes an infinite redirect loop. Use this instead of hand-building the URL with URLSearchParams — hand-built login URLs are the #1 source of the login-loop and stale-renewal bugs documented in SKILL.md.
    ConnectorNo auth
  • One angel investor's public Signed profile by login: bio, investment description, sectors, check size, links, the portfolio companies they've pinned, whether (and where) they take pitches from founders, follower counts, and a few similar investors. Logins come from search_investors or list_investors, or from a signed.com/@login URL. Private profiles are indistinguishable from nonexistent ones.
    ConnectorNo auth
  • One angel investor's public Signed profile by login: bio, investment description, sectors, check size, links, the portfolio companies they've pinned, whether (and where) they take pitches from founders, follower counts, and a few similar investors. Logins come from search_investors or list_investors, or from a signed.com/@login URL. Private profiles are indistinguishable from nonexistent ones.
    ConnectorNo auth
  • Start deleting a saved login by the `id` `list_connections` returned. **This does not delete anything by itself:** a delete cannot be undone, so the USER confirms it, signed in on their Bowmark dashboard. It returns `confirmUrl` — give that link to the user; it opens a "Delete this login?" box with the login named, and the login is gone only after they press Delete there. Nothing you can call completes it for them. Only call this when the user asked to remove a saved login. To sign out of a site, use `logout_connection` instead. Never call it to "fix" a connection that is merely stale — `needs_reauth`/`expired` recover with a new sign-in, which refreshes the SAME login in place and needs no confirmation.
    ConnectorNo auth
  • Get a login link for the web dashboard Returns a URL that a human can open in a browser to log in to the Laso Finance web dashboard as the authenticated user. Useful for humans who want to see what their AI agent has been doing (view cards, transactions, balances, etc.). The URL carries a short single-use login code rather than a long token, so relay it to your human verbatim; it passes through tool-output credential filters intact. Do not fetch or open the URL yourself: redeeming the code consumes the human's login.
    ConnectorOAuth
  • Inventory of the user's connected accounts and workspaces: Google (Gmail) accounts, Slack workspaces, and Facebook Messenger. Call this to find out WHICH accounts/workspaces are connected and WHAT each one can do — read/search (`readable`), send (`sendable`), and for Google accounts also Calendar (`calendar`), Drive metadata search (`drive`), Drive CONTENT reads (`drive_content` — read_file_content/download_file_content), Gmail label management (`mail_labels`), Gmail drafts (`mail_drafts`), and Contacts (`contacts` — search_contacts, list_contacts, list_other_contacts, list_contact_groups, get_contact_groups). Questions like "which Gmail/Google accounts are connected?" or "which Slack workspaces can I search or send from?" are answered by this tool — don't guess from search results. It is also the source of the labels accepted by the `accounts`/`account` parameters of search_messages / search_messages_raw / send_message and the calendar/drive/gmail/slack/contacts tools, so call it FIRST to learn valid labels and how many Gmail accounts exist before sending. A false capability means the connection predates that scope — 設定 → サービス連携 で再接続 grants it. Returns, per account: account (label), connector, connector_label, `belongs_to` (the classification label this account's work is filed under — derived automatically when the account is connected: the user's existing label for that company if there is one, otherwise a new label named after the Slack workspace or the mail domain — so a company's Slack and mail share one label; 'プライベート' for personal mail; null = unfiled), readable, sendable, and for Google accounts the capability booleans above; plus `belongs_to_options`: every label the user has, each with its accounts (a label may have none) — these names are the only values add_memory `belongs_to` accepts.
    ConnectorOAuth