Skip to main content
Glama
744,135 tools. Updated 2026-11-04 22:08

"A search for the Google website or search engine" matching MCP tools:

  • Get the stored day-by-day ranking history for one keyword on one search engine over a date range. Reads RankParse snapshots synced on a schedule; it is not a live SERP check. History is inherently single-engine, so engine is required (use get_keyword_rankings first to compare across engines). Days with no synced data are simply absent from rows rather than filled with a zero or placeholder value -- do not treat a missing date as "not ranking". Bing and Yandex are opt-in and lower-frequency than Google; their responses may report availability as provider_limited, meaning that provider did not return enough data for that day rather than the keyword ranking nowhere.
    ConnectorOAuth
  • The unified search over business data — combine free text and/or an amount range in one call. Set 'kind' to: all, expenses, income, transactions, clients, suppliers, products, or invoices (use 'all' to search the whole business). Set 'query' for text search (case-insensitive substring match across names, descriptions, notes, references, supplier/client names, categories) and/or 'min'/'max' for an amount range on the kind's primary amount field — both are optional, so omit the amount range for a pure text search (e.g. over clients or suppliers) or omit 'query' for a pure amount search. Optionally filter by date range with 'from' and 'to' in YYYY-MM-DD format. Set 'sort' to 'amount' (default — descending by amount) or 'date' (descending by date; best for clients/suppliers, which have no amount, or when recency matters more than size). Returns ALL matches, paginated — use limit/cursor to page through the full result set; narrow query/range/date if there are more than you need.
    ConnectorOAuth
  • 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
  • Create a complete Google App campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED — activate later with adsap_google_set_entity_status), location + language targeting, an ad group, and the app ad. App campaigns promote a mobile app across Google Search, Google Play, YouTube, Discover and the Display Network — Google mixes the ad from your text (and optional media) automatically. The ad links to the app's store listing AUTOMATICALLY: there is no URL input, ever. Any PUBLIC store app id works (no app ownership or Play/Firebase link is required to create): Android app_id is the package name (e.g. com.example.app), iOS app_id is the numeric App Store id (e.g. 570060128) with app_store 'apple_app_store'. v1 optimizes INSTALLS at your target_cpi (target cost per install, plain number in the account currency); Google recommends a daily_budget of roughly 50x target_cpi — lower is allowed but slows learning (a warning says so). Text: 2-5 headlines (max 30 chars) + 1-5 descriptions (max 90). Optional media: image_asset_ids / video_asset_ids from adsap_google_upload_asset (images 1.91:1, 4:5 or 1:1 up to 5MB; videos are YouTube assets 10-60s) — text-only is fully valid. In-app-action, value, engagement and pre-registration goals are NOT supported in v1. If the account has no conversion tracking a warning is returned — relay it (Android installs normally auto-track once a Google Play link exists). Use dry_run: true first — Google validates the whole chain without creating anything; show the plan, get confirmation, then execute. ad_account_id is the bare 10-digit customer ID. For website campaigns use adsap_google_create_search_campaign / adsap_google_create_pmax_campaign; for Meta app ads use adsap_create_campaign with an app objective.
    ConnectorAPI key
  • Save a template’s draft. Both kinds take structured `content` — see create_document_template for the node format; notifications use its EMAIL profile (no image, no pageBreak) — or, for a template still on the legacy HTML engine (check get_template_draft’s `engine`), a `body`; a structured draft refuses body-only writes. Notifications also take subject and recipients; documents also take `settings`. Editing a live template’s draft does not change what sends until publish_template. A document on the SVG facsimile engine (engine "SVG") is edited with edit_svg_template, never here. Requires notification:write or document:write.
    Connector
    Destructive
    API key
  • Compare what this account pays for in Google Ads search with what its Search Console site ranks for, over the same dates: paid terms ranking top three, queries with no Google Ads search term found, and paid terms with no organic ranking, with cost, clicks and position. Identical wording only. Read-only; needs Search Console. Tools revision: 8ebdf5be.
    ConnectorOAuth

Matching MCP Servers

Matching MCP Connectors

  • google search: google web search api, web, images, videos, news, music, favicon, proxy, audio.

  • Scrape Google search results with SERP data, ads, and knowledge panels

  • Use this tool when the user wants to stop or allow AI bots on their custom domain (独自ドメイン), such as "ChatGPT に読ませたくない", "AI の学習に使わせない", or "allow Perplexity again". Turns a custom domain's AI-bot switches on or off, for all of this workspace's pages on that domain. Convika writes the change into the domain's robots.txt within about a minute; nothing on the pages changes. Each bot re-reads robots.txt on its own schedule (OpenAI says about 24 hours), so don't promise the user an immediate stop. - allowAiAnswerBots: OAI-SearchBot, Claude-SearchBot, PerplexityBot, DuckAssistBot, ChatGPT-User, Claude-User, Perplexity-User. Off, AI search and answers stop reading the site, so it may stop appearing in their answers. - allowAiTrainingBots: GPTBot, ClaudeBot, CCBot, Bytespider, Google-Extended, Applebot-Extended. Off asks them not to use the pages for training. Google-Extended doesn't affect Google Search. Tell the user, before and after: - The fetchers that open a page because a person asked (ChatGPT-User, Claude-User, Perplexity-User) may ignore robots.txt. - Googlebot and Bingbot can't be switched off: Google's AI Overviews read pages as Googlebot. To keep a page out of search results, publish it as a Private link (Pro) on the dashboard (「限定公開」 in Japanese); Free pages are public. - robots.txt is a request that well-behaved bots follow, not a block. Applies only to this workspace's pages on the domain. Free and paid plans alike. Call get_domain first if you don't know the domain's id or hostname. Change it only when the user asks.
    ConnectorOAuth
  • Fetch one company's LinkedIn page: name, description, industry, employee count, headquarters, website, founding year, specialities, and the URN/numeric id you need for linkedin_search_people company filters. identifier accepts a company URL, the slug after /company/ (e.g. 'microsoft'), or a website domain like 'microsoft.com'; numeric ids and URNs are search-filter inputs, not fetch identifiers. Domains are resolved to a company and verified against that company's website: a domain identifier always QUOTES base+4 credits (set max_credits accordingly), and the 4-credit resolution surcharge is refunded at settlement when the domain was resolved before, so known domains settle at the base price. A domain that cannot be verified to a company returns INVALID_INPUT with the closest matches instead of a guessed company. Costs 4 credits base. Do not guess a slug from a brand name: slugs are vanity strings and a famous name can belong to an unrelated company's page (linkedin.com/company/anthropic is a small investment fund, not the AI lab). When you only know the company's name, pass its website domain instead -- the verified form -- and sanity-check the returned industry and description against what you expected. This tool does not search by name: if you only have an approximate company name, use linkedin_search_people's current_company filter with keywords (names are matched natively there) or give the exact slug. For the company's posts, use linkedin_get_posts with the same identifier (URL, slug, or website domain all work there too).
    ConnectorOAuth
  • 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
  • Attach real search data to one article idea that is already in the project — runs one live Google search per target keyword and returns volume bands and the pages currently ranking for each. Use after create_article_suggestion_with_input, or on any existing suggestion the operator wants judged on data instead of instinct. Opportunity score and cluster placement are returned only when the project has a completed research run to compare against; on a project without one they are absent, and start_research_run is what produces them. Do not use to find new ideas or map a niche — that is start_research_run. Consumes no credits; daily- and monthly-capped per account.
    ConnectorNo auth
  • Return the directory's current totals and breakdowns: how many studios are listed, and how they split by country, region, service, engine, platform and team size. Use for any "how many studios..." or "which country has the most..." question, and quote these figures rather than counting search results yourself — they are recomputed from the live database and the counts move.
    ConnectorNo auth
  • LIVE company search. Its draw is `hasJobs` — an actively-hiring filter available nowhere else in the catalog — plus bucketed headcount search. For firmographic filtering (staff/follower counts, founded year, website) use search_companies instead. Offset-paginated. Not-found is free upstream. (Costs 10 Zooq credits.)
    ConnectorNo auth
  • LIVE company search. Its draw is `hasJobs` — an actively-hiring filter available nowhere else in the catalog — plus bucketed headcount search. For firmographic filtering (staff/follower counts, founded year, website) use search_companies instead. Offset-paginated. Not-found is free upstream. (Costs 10 Zooq credits.)
    ConnectorNo auth
  • Add an ad group to an EXISTING Google Ads campaign (Search, Display or Demand Gen) in ONE atomic request: the ad group, optional keywords (Search only) and optionally one ad. This is the only tool that adds structure to an already-created campaign — the create-campaign tools always build a fresh campaign. Declare `channel` to match the campaign's type (SEARCH -> 'search', DISPLAY -> 'display', DEMAND_GEN -> 'demand_gen' — from adsap_google_list_campaigns); the workflow verifies the campaign exists and rejects mismatches (PMax uses asset groups and is NOT supported; App/Shopping ad groups are also unsupported). SAFETY: if the parent campaign is ACTIVE the new ad group is created PAUSED by default so it never starts spending unreviewed — pass ad_group.status 'ENABLED' to override; if the campaign is PAUSED the ad group is created ENABLED (the campaign gates serving). Per channel: SEARCH — ad_group.keywords [{text, match_type EXACT|PHRASE|BROAD}] (optional but the group gets no traffic without them) and an optional responsive search ad (3-15 headlines max 30 chars w/ optional pinned_field, 2-4 descriptions max 90, final_url, path1/path2). DISPLAY — optional optimized_targeting flag and an optional responsive display ad (same shape as adsap_google_create_display_campaign's ad: >=1 landscape AND >=1 square image asset id, 1-5 headlines, exactly 1 long_headline, 1-5 descriptions, business_name, final_url). DEMAND_GEN — geo is REQUIRED at the AD GROUP level (ad_group.geo.location_ids; unlike Search/Display where geo is campaign-level and cannot be set here), plus optional language_ids, channel controls (ad_group.channels.strategy or .selected) and an optional 'multi_asset' image ad or 'video_responsive' YouTube ad (same shapes as adsap_google_create_demand_gen_campaign). An ad group created WITHOUT an ad will not serve until an ad is added. EXISTING-GROUP MODE: pass ad_group_id INSTEAD of ad_group to add ONE responsive search ad to an ad group that already exists (Search only; `ad` becomes required; ad.status defaults to PAUSED — pass ENABLED to create it serving; the workflow verifies the group exists, is not removed, and belongs to campaign_id). Use dry_run: true first — Google validates the whole chain without creating anything. ad_account_id is the bare 10-digit customer ID.
    ConnectorAPI 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
  • The Search Console and Bing Webmaster properties the workspace's connected accounts can read. The first console call; every other console tool takes a property from here. Use when: "what sites are in my Search Console", before any console_get_* call, or to check which engine is connected. Not for: third-party sites the user does not own, use seo_get_domain_overview. Live rankings, use seo_get_serp. Returns: List. rows[]: engine (google | bing), property (the id to pass on: sc-domain:example.com, https://example.com/ or a Bing site URL), permission (Google: siteOwner, siteFullUser, siteRestrictedUser, siteUnverifiedUser; Bing: null), verified. NotConnected when no account of that engine is connected; its connect_url is where the user connects one. Cost: 0 credits. The user's own data is free; 60 console calls per minute per workspace. Cached 1 hour. Example: {"engine": "all"}
    ConnectorAPI key
  • Clicks, impressions, CTR and average position from the user's own Search Console or Bing data, grouped by query, page, country, device or date. Use when: "which queries bring traffic to my site", "how did page X do last month", "impressions by country", finding queries that rank on page two, a rank check on the user's own site. Not for: a site the user does not own, use seo_get_ranked_keywords. Search volume or difficulty, use seo_get_keyword_metrics. Why a page is not indexed, use console_inspect_url. Returns: List, most clicks first, ties broken by impressions descending. rows[]: query, page, country (ISO alpha-3), device, date (the dimensions asked for; null otherwise), clicks, impressions, ctr (0 to 1), position (average, 1-based). Google data lags about two days and keeps 16 months; Bing query and page rows are the last weeks with no date range, its date rows are daily totals. Totals (sum of clicks, impressions) differ by grouping due to Google's aggregation; this is normal Google behaviour. Cost: 0 credits. Cached 6 hours. Example: {"property": "sc-domain:example.com", "dimensions": ["query", "page"], "start_date": "2026-08-01", "end_date": "2026-08-31"}
    ConnectorAPI key
  • 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
  • The advertisers matching a brand name in Google's ad library, with their ids. Use when: before ads_get_advertiser_ads on Google, because that library is keyed by advertiser id and one brand has one entry per region. Not for: the ads themselves, use ads_get_advertiser_ads with the id this returns. The other libraries, which search their ads directly with ads_search_ads. Returns: List. rows[]: platform, id, name, region, ads_estimate, website. Cost: 1 credit. Cached 7 days. Example: {"platform": "google", "query": "lululemon", "region": "US"}
    ConnectorAPI key
  • Search stored daily top-chart snapshot records from the iOS App Store and Google Play; omitting `date` selects the latest snapshot. Costs 1 credit per record returned (minimum 2), so keep `page_size` to what you need. Filter by app, store, platform, chart, country, or category; use datasets_apps_search for app records or datasets_apps_reviews_search for stored reviews.
    ConnectorNo auth