Skip to main content
Glama
742,096 tools. Updated 2026-11-04 12:32

"How to Save Contacts to iCloud or Google Gmail" matching MCP tools:

  • IMAP/SMTP presets (Gmail app password, Yahoo, iCloud, Zoho, Lark, SES, SendGrid, Mailgun…) with hosts and ports, plus the Google and Zoho API routes.
    ConnectorNo auth
  • Create a complete Google Ads Demand Gen campaign (YouTube, Discover, Gmail, Maps and the Google Display Network) in ONE atomic request: budget, campaign (ALWAYS created PAUSED — activate later with adsap_google_set_entity_status), a typeless ad group with channel controls, ad-group-level location/language targeting, and ONE ad. Use dry_run: true first — Google validates the whole chain without creating anything; show the plan, get confirmation, then execute. Two ad types (ad.ad_type): 'multi_asset' = image ad (1-5 headlines <=30 chars, 1-5 descriptions <=90, business name <=25, 1-5 logos, at least one landscape 1.91:1 or square 1:1 image from adsap_google_upload_asset, optional portrait 4:5 and tall-portrait 9:16, combined images <=20); 'video_responsive' = YouTube video ad (1-5 YouTube video ids, 1-5 headlines <=40, 1-5 long headlines <=90 REQUIRED, 1-5 descriptions <=90, 1-5 logos). Daily budget minimum is 5 (Google enforces a 5 USD local-currency-equivalent floor for Demand Gen). Channels: default ALL_CHANNELS; or channels.selected booleans (youtube_in_stream/youtube_in_feed/youtube_shorts/discover/gmail/display/maps — display: true is how you reach the Google Display Network). bidding_strategy 'auto' picks maximize_conversions when the account has conversion tracking, else maximize clicks; target_roas needs conversion history (Google rejects otherwise). ad_account_id is the bare 10-digit customer ID. For Search use adsap_google_create_search_campaign, for Performance Max adsap_google_create_pmax_campaign; for Meta use adsap_create_campaign.
    ConnectorAPI key
  • Saves new words to the user's NextLang vocabulary for one language pair, so they join the spaced-repetition schedule. Use when the user asks to save or add words, for example from a text you discussed. Put each word in 'term' in the language being learned and its meaning in 'translation'; add a short example sentence when it helps. Words the user already has are skipped, not duplicated. Returns how many were added, already saved, or invalid. This is NextLang's own review list, quizzed through list_due_words and record_review, not a flashcard deck: when the user wants a deck to study in Anki, Quizlet, Mochi or Brainscape, use save_deck instead.
    ConnectorOAuth
  • The CRM pipeline as a board: every stage in board order with how many contacts sit in it, plus a count of contacts with no stage. A "deal" here is a contact in a pipeline stage — there are no deal amounts. List the contacts in one stage with search_leads (stage).
    ConnectorAPI key
  • Lusha: looks up 1-25 known business contacts by Lusha ID, name+company, LinkedIn URL, or email. Use when: fetching contact details for known specific contacts (single or batch up to 25). Do not use when: searching for contacts by criteria (prospecting_contact_search covers that case). Optional 'enrich' bundles reveal data; pass false for preview-only, then prospecting_contact_enrich with each result's `canReveal[].field`. Returns: Lusha contact profiles with available business data. Credits: consumes 1 Lusha credit per successful lookup; adds reveal credits when enrich is true (default). Rate limits apply per Lusha plan (per-minute/hourly/daily); exceeding returns HTTP 429. The account_usage tool returns current limits and remaining headroom.
    ConnectorOAuth
  • Lusha Workspace: lists every Lusha data column available to add to a contacts or companies table. Use when: choosing which columns to enrich a table with, or resolving a datapoint to the columnKey that table_add_columns takes. Do not use when: listing the columns a table already holds (table_list_columns) or reading row values (table_get_entities). Per entity_type and independent of any table; keys come back without the table's own prefix ('jobTitle', not 'contact_jobTitle'). A contacts table also lists every company column, filled from each contact's employer (HQ location, headcount, revenue, industry, funding, technologies), keyed with their company_ prefix ('company_hqCity'). Returns: catalog entries (category, displayName, columnKey, type) for the entity type. Credits: does not consume credits. Rate limits apply per Lusha plan (per-minute/hourly/daily); exceeding returns HTTP 429. The account_usage tool returns current limits and remaining headroom.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A minimal MCP server with get_weather and create_ticket tools, used for testing MCP servers across protocol, unit, eval, transport, and auth layers.
    MIT

Matching MCP Connectors

  • Video how-to search for AI agents: 2,000+ video skills, tutorials and FFmpeg recipes. No key.

  • Remote MCP server for converting PDFs and scanned documents to Markdown with OCR, and Markdown to PDF. Provides asynchronous conversion jobs, result retrieval, and usage checks; requires a PDF to MD API key.

  • Create new guides Create one or more new guides based on provided queries. Each guide targets exactly ONE engine and ONE analysis mode, chosen with the optional `source` field (default `google`). How to request each guide type: 1. Google SERP guide (1 credit per guide): omit `source`, or pass `source: "google"`. Example payload: {"queries": ["best crm"], "lang": "en-us"} 1bis. Google AI Overview guide (1 credit per guide). Two modes, like AI engines: `source: "google_ai_overview"` builds the guide from the TEXT of Google's AI answers (AI Overview, completed with AI Mode answers) ; `source: "google_ai_overview_citations"` builds it from the content of the web SOURCES those answers cite (recommended for GEO). Same language/country parameters as a Google SERP guide, 1 credit per guide in both modes. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "google_ai_overview_citations"} 2. LLM ANSWER guide (4 credits per guide): pass the engine name alone, e.g. `source: "chatgpt"`. The guide is built from the answer text the AI generates for the query. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "chatgpt"} 3. LLM CITATIONS guide (4 credits per guide) [RECOMMENDED AI mode]: pass the engine name with the `_citations` suffix, e.g. `source: "chatgpt_citations"`. The guide is built from the content of the web pages the AI cites in its answer. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "chatgpt_citations"} Which AI mode to pick? For GEO (getting a page visible in AI answers), prefer `<engine>_citations`: AI engines send traffic by CITING pages as sources, so the winning move is to look like the pages they cite. The answer-text mode (`<engine>` alone) is mostly useful to analyze how the AI phrases its own answer. When in doubt, pick `<engine>_citations`. The same two modes exist for every AI engine (chatgpt, perplexity, claude, gemini, grok, mistral, deepseek). To optimize the same page for several engines or modes (e.g. Google AND ChatGPT answers AND ChatGPT sources), create one guide per source value on the same query. IMPORTANT, HOW TO READ THE RESPONSE OF THIS ENDPOINT, WHICH SPENDS CREDITS. Queries listed in `guidesFailed` are PROVEN not to have produced a guide and their credit was given back (unless the account has unlimited credits, where nothing was reserved): re-sending them is free and correct. Queries listed in `guidesUnknown` have an UNDECIDABLE outcome and their credit is deliberately KEPT, because the guide was most likely written: DO NOT re-send them, you would pay for the same guide twice. Look them up in `GET /api/v1/guides` after a few minutes instead, and contact support if nothing shows up. Finally, a `200` is NOT a promise that every query produced a guide: compare `guides.length` with the number of queries you sent, never read `success` alone, and never re-send a query just because it is missing from `guides`.
    ConnectorNo auth
  • Save a payment method used ONLY to pay for flight bookings (the fare is charged to it via a hold at booking; no virtual card is created for flights). It does NOT fund cards or the cash balance — cards are funded from the balance (see add_funds). Returns a secure checkout URL the user must open to save their card details.
    ConnectorNo auth
  • Trigger a background Gmail scan to discover and process receipt emails from the last ~60 days (default). No server preview: starts on call and runs in the background; the user gets an email summary when done. Like clicking "Find Receipts in Gmail" in the UI. For whole PAST YEARS (e.g. 2023, or 2020-2022) use scan_gmail_years instead; to check a scan's progress use get_scan_status. With provider:outlook, returns an access-gated screen handoff only; no scan starts.
    ConnectorNo auth
  • Disconnect this workspace's WhatsApp number. After this, broadcasts are NOT delivered to real phones until a number is reconnected. Use this when the user wants to stop sending from their connected number or to re-run the signup with a different number. Synced templates and contacts are kept and re-sync on reconnect. The workspace can reconnect anytime via connect_whatsapp (own credentials) or whatsapp_connect_link (hosted signup). Confirm with the user before calling. Returns { connected: false, disconnected }.
    Connector
    Destructive
    OAuth
  • Append leads to a list, at most 500 per call. Duplicates inside the list are skipped. Use this to save rows returned by search_b2b_leads or find_email.
    ConnectorNo auth
  • Applies a tag to one or more contacts (max 100). Get the `tagId` from list_tags (or from create_tag for a new one). Idempotent: contacts already tagged are ignored. Each application emits the contact.tag_added event: use list_automations to see which automations listen to that event before writing.
    ConnectorAPI key
  • Add location targeting, device exclusions, and/or an ad schedule (day-parting) to a Google Ads campaign. A campaign with no locations serves everywhere Google allows, so set locations before enabling a campaign meant for specific markets. Locations and schedule blocks are added alongside existing ones. Excluding a device sets that device's bid adjustment to -100%, which overwrites any adjustment already set for it. Undo any of these with remove_campaign_criterion.
    Connector
    Destructive
    OAuth
  • Draft a new Google business description (up to 750 characters; 250+ reads best). Google suspends listings over this field, so the draft is refused if it contains a link, phone number, email, prices or offers, HTML, all-caps shouting, or repeated keywords. Write it about what the business actually does, from my_google_profile. Creates a DRAFT only — nothing on Google changes. Show the owner the draft this returns, word for word, and publish it with publish_change only after they say yes.
    ConnectorNo auth
  • PERMANENTLY delete saved contacts (LinkedIn profiles) including their campaign memberships, scheduled actions and campaign history. Contacts with pending or in-progress campaign steps are refused unless force: true (prefer exclude_contacts_from_campaign when the goal is just to stop outreach). Linked CRM leads are kept (unlinked) unless delete_crm_leads: true. Cannot be undone: only on the user's explicit request, show them the contacts first and pass confirm: true after they agree.
    Connector
    Destructive
    API key
  • Search the user's Google Contacts (saved contacts + Google's auto-collected "other contacts") across all connected Google accounts, by name (or partial name/email). Returns each match's name, primary email, full email list (for people with several addresses), and source ('contact' = saved, 'other' = auto-collected). Use this to resolve a person's NAME to an email address before composing/sending a message — on 0 matches, fall back to searching past message history or ask the user directly; on multiple matches, ask the user which one before proceeding. Accounts without the contacts scope are skipped and reported in `errors` with a reconnect hint. Call list_accounts to learn account labels. Read-only — no contact writes.
    ConnectorOAuth
  • Browse ALL of the user's SAVED Google Contacts for one account, one page at a time — unlike search_contacts, no query is needed, so this is how to see the whole address book (or find someone when a name search comes up empty/ambiguous). Returns each contact's name, primary email, full email list, and a `next_page_token`: pass that back as `page_token` to fetch the next page, and stop once it's null. Only ONE account per call (pagination is per-account) — pass `account` when more than one Contacts-enabled Google account is connected (call list_accounts to learn labels); it auto-resolves when only one is connected.
    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
  • The sitemaps submitted for one of the user's properties, with when they were read, how many URLs they carry and their errors. Use when: "is my sitemap picked up", "how many URLs did Google read from the sitemap", checking a submission after a site change. Not for: submitting or resubmitting one, use console_submit_sitemap. Whether one URL is indexed, use console_inspect_url. Finding pages a sitemap misses, use seo_run_technical_crawl. Returns: List. rows[]: path, type, submitted_at, last_read_at, pending, is_index, urls_submitted, urls_indexed (Google reports 0 today), warnings, errors. null = the engine does not say. Cost: 0 credits. Cached 10 minutes. Example: {"property": "https://www.example.com/"}
    ConnectorAPI key
  • Query WhatsApp data: conversations, contacts, messages, transcriptions, labels, and communities. Supports listing, searching, filtering, and looking up by ID. Several WhatsApp accounts may be connected (e.g. personal + business), each with its own conversations, contacts and messages. entity="session" lists the connected accounts and their session IDs; target_session routes a query to one of them. Reading messages: Passing a conversation id (e.g. "5491157390064@c.us") returns the conversation with its messages; limit sets how many. entity="messages" is a global text search across conversations. Audio transcriptions: entity="transcriptions" (with an optional query) returns voice-note transcriptions; messages read by conversation id include the transcription text of audio messages. Examples: List sessions: { entity: "session" } List conversations: {} Target specific account: { entity: "conversations", target_session: "sess_abc123" } Read messages: { id: "5491157390064@c.us" } Read last 100 msgs: { id: "5491157390064@c.us", limit: 100 } Search globally: { query: "meeting" } Search in chat: { id: "5491157390064@c.us", query: "meeting" } Unread conversations: { unread: true } Search contacts: { query: "Alice", entity: "contacts" } List labels: { entity: "labels" } Filter by label: { label: "Important", entity: "conversations" } List communities: { entity: "communities" } Filter by community: { community: "My Community", entity: "conversations" } Find which groups a contact is in: { id: "5491157390064@c.us", entity: "contacts", include_participants: true } List members of a group: { entity: "contacts", group: "120363421729019499@g.us" }
    ConnectorOAuth
  • Use this when someone wants a teas.co.uk product delivered again and again (subscribe and save). Pass one product id from find_products or a teas.co.uk product link. Returns the subscriber price, how often it comes and a link to the product on teas.co.uk, where the person presses Subscribe and save, then signs in, checks out and pays for the first delivery. This tool orders and charges nothing. Later deliveries follow every cycle as new orders with the same discount, teas.co.uk emails five days before each one and takes no automatic card payments, and the person can pause, resume or cancel at any time (my_subscriptions, change_subscription). When the product cannot be a repeat delivery, eligible is false and note says why.
    ConnectorNo auth