Skip to main content
Glama
604,430 tools. Updated 2026-09-23 19:58

"Gmail - Google's Email Service" matching MCP tools:

  • Self-register an x402 / MCP service in the agent-tools directory. Service owners and agents may submit new services here. Submissions are auto-reviewed instantly by x402 verification (no human gate): if the URL proves x402 payment support it is listed immediately and shows up in `search`; otherwise it is rejected or retried automatically. Listing is FREE. Dedup: if a service with the same canonical origin (scheme://host) already exists in the directory we return its slug instead of creating a duplicate submission. Same goes for a still-pending submission with the same origin. Rate limit: at most 5 pending submissions per client IP per 24h. Hits beyond that get `{error: rate_limited}` — try again later or email contact@agent-tools.cloud for bulk imports. Args: url: Public HTTPS URL of the service (the x402-payable endpoint or its homepage). Required. name: Human-friendly name. Defaults to the URL hostname. description: One-paragraph description (max ~2000 chars). mcp_url: If the service speaks MCP, its streamable-http endpoint. category: Free-form (e.g. "defi", "search", "social"). Use `list_categories` to align with existing taxonomy. chains: Networks the service accepts payment on (e.g. ["base", "solana"]). price_min_usdc: Lower bound of per-call price in USDC. price_max_usdc: Upper bound of per-call price in USDC. contact: Optional email / handle the directory team can reach you on for clarifications.
    ConnectorNo auth
  • Create, rename and delete mailbox folders, which are labels on Gmail: the arguments say 'folder' for cross-provider compatibility, but Gmail manages labels (type: 'label'). Deleting is irreversible, and on Gmail it strips the label from every message carrying it. Every action needs manage:folders. Use folder_list to read the folders that exist and to get the folder_id these actions take.
    Connector
    Destructive
    OAuth
  • Search for verified service professionals in Argentina by service type, city, neighborhood, verification status, minimum rating, and minimum review count. Returns a paginated list of professionals with display name, headline, ratings, verifications, and a `profile_url` that is the only sanctioned contact channel (no phone/email/whatsapp is ever returned). Use this for discovery; use `muovi_get_professional` for the full detail payload.
    ConnectorNo auth
  • Use this when the user wants a live preview website for a local service business AND has typed business_name, email, and phone in THIS chat. Before calling, send: Starting your preview now. This usually takes about 30 seconds. Never reuse name, email, or phone from memory. If they only said "build me a website", ask first. Do not invent placeholders. Then call get_preview until preview_url is set. Do not scrape /build. Do not start_build twice for the same business.
    ConnectorNo auth
  • Returns the questions the matching service asks, each with its exact answer options and the values submit_match_request expects, plus the questionnaire version. Call it when the user wants to be matched with an agent, so the questions and accepted values always come from the service itself rather than from memory. Ask only the questions the conversation has not already answered, one at a time, presenting options as a numbered list. Financing applies to buyers and property condition to sellers. Once every required question is answered and you have the user's name, email and phone, confirm the details with them and call submit_match_request.
    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

Matching MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server that gives an AI assistant simultaneous access to multiple Gmail accounts with per-account read-only, draft, or send tiers, two-phase write confirmation, and safeguards for handling untrusted email content.
    10
    8 npm
    MIT

Matching MCP Connectors

  • Searches all readable mailboxes with one query string and returns documents with ids for `fetch`. Use Gmail search syntax for Gmail accounts (from:, newer_than:7d, has:attachment); plain words elsewhere. Prefix the query with "account:<id> " to limit it to one mailbox. Outlook / Microsoft 365 mailboxes are searched in the Inbox only (Graph has no "all mail" scope), while Gmail is searched across All Mail; use search_messages with a folder to look elsewhere.
    ConnectorAPI key
  • Kick off Day 1 of the 90-day Agentic Launch for a completed Demand Discovery Report. Demand Discovery surfaces named prospects matching the idea's ICP and DRAFTS the first outreach batch. It sends NOTHING automatically - the user reviews and sends from their hosted manage page. Outreach is drafted to come from Amy @ Demand Discovery, with replies routed to the user's own email. Call this after a paid report is "ready" and the user wants to act on it (e.g. "generate prospects", "start agentic launch", "find me people to talk to", "yes, do the outreach"). Pass the reportId, the user's email, and the alTriggerToken from the ready report if you have it. The email MUST be the address the user themselves provided earlier in this conversation (their report-delivery email) - if you don't have it in context, ask the user first; NEVER invent one or use a placeholder like user@example.com (placeholders are rejected and the launch will not start). The response returns a manageUrl where the user reviews/sends the drafted outreach (and can switch the sender to their own Gmail).
    ConnectorNo auth
  • Create a database user for a Cloud SQL instance. * This tool returns a long-running operation. Use the `get_operation` tool to poll its status until the operation completes. * When you use the `create_user` tool, specify the type of user: `CLOUD_IAM_USER`, `CLOUD_IAM_SERVICE_ACCOUNT`, or `BUILT_IN`. * By default the newly created user is assigned the `cloudsqlsuperuser` role, unless you specify other database roles explicitly in the request. * You can use a newly created user with the `execute_sql` tool if the user is a currently logged in IAM user. The `execute_sql` tool executes the SQL statements using the privileges of the database user logged in using IAM database authentication. The `create_user` tool has the following limitations: * To create a built-in user with password, use the `password_secret_version` field to provide password using the Google Cloud Secret Manager. The value of `password_secret_version` should be the resource name of the secret version, like `projects/12345/locations/us-central1/secrets/my-password-secret/versions/1` or `projects/12345/locations/us-central1/secrets/my-password-secret/versions/latest`. The caller needs to have `secretmanager.secretVersions.access` permission on the secret version. * The `create_user` tool doesn't support creating a user for SQL Server. To create an IAM user in PostgreSQL: * The database username must be the IAM user's email address and all lowercase. For example, to create user for PostgreSQL IAM user `example-user@example.com`, you can use the following request: ``` { "name": "example-user@example.com", "type": "CLOUD_IAM_USER", "instance":"test-instance", "project": "test-project" } ``` The created database username for the IAM user is `example-user@example.com`. To create an IAM service account in PostgreSQL: * The database username must be created without the `.gserviceaccount.com` suffix even though the full email address for the account is`service-account-name@project-id.iam.gserviceaccount.com`. For example, to create an IAM service account for PostgreSQL you can use the following request format: ``` { "name": "test@test-project.iam", "type": "CLOUD_IAM_SERVICE_ACCOUNT", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM service account is `test@test-project.iam`. To create an IAM user or IAM service account in MySQL: * When Cloud SQL for MySQL stores a username, it truncates the @ and the domain name from the user or service account's email address. For example, `example-user@example.com` becomes `example-user`. * For this reason, you can't add two IAM users or service accounts with the same username but different domain names to the same Cloud SQL instance. * For example, to create user for the MySQL IAM user `example-user@example.com`, use the following request: ``` { "name": "example-user@example.com", "type": "CLOUD_IAM_USER", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM user is `example-user`. * For example, to create the MySQL IAM service account `service-account-name@project-id.iam.gserviceaccount.com`, use the following request: ``` { "name": "service-account-name@project-id.iam.gserviceaccount.com", "type": "CLOUD_IAM_SERVICE_ACCOUNT", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM service account is `service-account-name`.
    ConnectorNo auth
  • Kick off Day 1 of the 90-day Agentic Launch for a completed Demand Discovery Report. Demand Discovery surfaces named prospects matching the idea's ICP and DRAFTS the first outreach batch. It sends NOTHING automatically - the user reviews and sends from their hosted manage page. Outreach is drafted to come from Amy @ Demand Discovery, with replies routed to the user's own email. Call this after a paid report is "ready" and the user wants to act on it (e.g. "generate prospects", "start agentic launch", "find me people to talk to", "yes, do the outreach"). Pass the reportId, the user's email, and the alTriggerToken from the ready report if you have it. The email MUST be the address the user themselves provided earlier in this conversation (their report-delivery email) - if you don't have it in context, ask the user first; NEVER invent one or use a placeholder like user@example.com (placeholders are rejected and the launch will not start). The response returns a manageUrl where the user reviews/sends the drafted outreach (and can switch the sender to their own Gmail).
    ConnectorNo auth
  • Unshare Workspace Resource. Removes any existing role on a workspace resource from a user, group, or workspace (service account) API key. To target a user or service account, pass only the user email; the user must be in your workspace. To target a group, pass only the group id. To target a workspace (service account) API key, pass the api key id; the resource will be unshared from the service account associated with that key. You must have admin access to the resource to unshare it. You cannot remove permissions from the user who created the resource. Bulk support: accepts resource_ids, group_ids, workspace_api_key_ids for batched execution.
    ConnectorNo auth
  • 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. Returns id, subject, from, date, snippet only (no body). Follow up with read_gmail_message. Cannot send, archive, or delete. Never invent email contents. If Gmail is not connected, connect at /integrations. Requires API key or OAuth with scope context. Share tokens cannot call this tool. ($0.10; API key required)
    ConnectorNo auth
  • List every valid model id this service accepts — READ-ONLY, spends no credits, calls nothing outside this service. Call this BEFORE generate_image/generate_video if you're unsure of an exact id: guessing (e.g. the family key "nano_banana_pro" or a display name like "Nano Banana 2" instead of the id "NARWHAL") gets a hard HTTP 400 on a call that already committed to a task, not a helpful list. Returns: images: {id: {label, typical_seconds, notes}} for the three valid `model` values (generate_image, generate_character_image). videos: {id: {label, credits, duration_s, mode, orientation}} for the curated `video_model_key` values this server's tools accept via their Literal type — mode is one of t2v/i2v/r2v (which generate_* tool it belongs to). `credits` or `duration_s` is null where Google's docs never gave that number — a null does NOT mean free/instant, it means unconfirmed. defaults: the id each tool falls back to when you omit the parameter — unchanged from before this tool existed, so already-working callers aren't affected. Note: service/api.py (the HTTP layer these tools call through) additionally accepts a wider set of rarer, exotic video_model_key values not listed here (confirmed-real but uncommon r2v/i2v variants) — this tool only lists the ones actually worth choosing from, to stay a short, readable list.
    ConnectorNo auth
  • Candidate Brazilian companies (CNPJ) for a free-text company name (trade name, legal name or group name; accents, case and legal suffixes such as Ltda, S.A., Participações are ignored) and/or an email or website domain, ranked by confidence (0 to 1) with matchReason[] in Portuguese. Use it when a lead gives a company name or a corporate email but no CNPJ; confirm the candidate with the user, then use the CNPJ with jt_owner_fleet or jt_aircraft_lookup. Coverage is companies linked to Brazilian aircraft (owners, operators, their partner companies), not every company in Brazil: an empty list means no known aircraft link. Each candidate carries hasAircraft; the top one carries its economic group when the plan includes jt_owner_group. Personal email domains (gmail etc.) are ignored. Max 10 candidates.
    ConnectorOAuth
  • Add a labeled list of offerings (structured snippet) shown beneath a Google Ads ad — a category header plus 3-10 short items, e.g. header "Brands" with values "Nest", "Nexus", "Chromebook", or header "Services" with "Hosting", "DNS", "CDN". Helps searchers self-qualify before clicking. ALSO KNOWN AS: structured snippet, snippet, category list, offering list, header values, product list, service list KEYWORDS: structured snippet, snippet, header, values, brands, services, products, courses, destinations, list, category, google ads, extension WHEN TO USE: - "Add a structured snippet listing our service tiers" - "Create a snippet under 'Brands' with Nest, Nexus, Chromebook" - "Register a list of supported integrations as a snippet extension" - "Show our product categories below our Google Ads" WHEN NOT TO USE: - Want a single phrase (e.g. "Free Shipping") → use create_google_callout_extension - Want clickable links to subpages → use create_google_sitelink_extension - Want a pricing table (with amounts) → use create_google_price_extension - Same snippet for Microsoft Ads / Bing → use create_microsoft_structured_snippet_extension INPUTS: - header: snippet category title (1-25 chars). The Google-Ads vocabulary requires picking one of Google's predefined header names ("Brands", "Models", "Service catalog", "Insurance coverage", etc.) — pass the chosen header string here. - values: 3-10 items, each 1-25 chars. EXAMPLE: create_google_structured_snippet_extension( header="Brands", values=["Nest", "Nexus", "Chromebook"], )
    ConnectorAPI key
  • 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
  • One-call email validation combining syntax + MX records + disposable check + role-address detection (admin@/info@/...) + free-provider classification (gmail/outlook/yahoo/...). Use BEFORE adding an email to a contact list, sending an outbound message, or auditing a lead-list dump — replaces 2-3 tool calls (email_mx + email_disposable + manual role parse) with one structured response. Deliberately does NOT do SMTP `RCPT TO` deliverability probing — Hunter.io / NeverBounce-style mailbox enumeration is an ethical grey area we declined; use those services if you need that specific signal. role_address=true on `admin@`, `info@`, `noreply@`, `support@`, etc. (Gmail-style `+tag` is stripped before classification). free_provider=true on consumer-mailbox domains (B2B detection signal — a 'work' email at `@gmail.com` likely isn't a corporate user). Free: 30/hr, Pro: 500/hr. Returns {email, domain, syntax_valid, mx_records, disposable, disposable_provider, role_address, role_type, free_provider, summary}.
    ConnectorNo auth
  • List all rule categories in the Email Playbook with a one-line description and page count. Categories are: structure (head/body container/header/body/footer), compatibility (Outlook MSO, RTL, responsive), production (Gmail clipping, dark mode, preheader, bulletproof buttons), ai-generation (constraints for AI emitters). For reusable components, use list_components instead — they live in a separate dimension and are not returned by get_playbook_rules.
    ConnectorNo auth
  • Generate a single-use secure link, valid for 7 days, and EMAIL it to the customer address already collected in the quote. The tool does the email delivery itself and fails if no valid customer email is on file or Gmail cannot send. Libertas customer texting/SMS is not enabled: this tool does not text and you must never promise a text message. The chat widget will usually render an inline 'Request Bind' card directly — prefer request_bind_inline for the in-chat flow. Use get_bind_link when the customer wants to leave the chat, finish on a different device, or receive their final numbers by email. The bind page reveals the real carrier name (the only place it's revealed).
    ConnectorNo auth
  • Generate a single-use secure link, valid for 7 days, and EMAIL it to the customer address already collected in the quote. The tool does the email delivery itself and fails if no valid customer email is on file or Gmail cannot send. Libertas customer texting/SMS is not enabled: this tool does not text and you must never promise a text message. The chat widget will usually render an inline 'Request Bind' card directly — prefer request_bind_inline for the in-chat flow. Use get_bind_link when the customer wants to leave the chat, finish on a different device, or receive their final numbers by email. The bind page reveals the real carrier name (the only place it's revealed).
    ConnectorNo auth
  • Sign up someone OTHER than the caller. Takes their name + email plus at least one slot or item pick. For self-service flows (signing up the calling user), use register_self instead. Returns a receipt of what was confirmed and what failed — NOT the participant's manage link or confirmation token; the participant receives their manage link by email, and this tool does not return it. Successful registrations send a confirmation email, which cannot be undone. No SMS is sent: the confirmation text requires the participant's own consent, which this tool cannot grant on their behalf. Organizer signup notifications are suppressed for this tool.
    Connector
    Destructive
    OAuth