"Using Google and other search engines to find answers" matching MCP tools:
- 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
- Read the text of a Google Doc Hermoso can reach — one it created, or one the user handed over with the Google file picker in the app (that is how an EXISTING doc becomes readable; find its id with list_drive_files). Pass documentId (from create_doc) OR paste a Google Docs URL as docUrl. Under the drive.file scope it reaches nothing else in the user’s Drive; if Google answers that the file was not found, the user has not picked it yet — ask them to pick it in the app rather than retrying. Returns the plain text. Read-only, free.ConnectorNo auth
- CALL THIS FIRST to see which data sources are connected and have data. Returns connection status and record counts for: Shopify (always connected), Triple Whale, Klaviyo, Gorgias, Recharge, Google Search Console, Google Analytics, Microsoft Clarity, and YouTube. Use this to understand what data is available before making other queries. If a source shows 'not_connected', those tools will return empty results.ConnectorOAuth
- Synchronous passthrough to the upstream Oxylabs Realtime endpoint (POST /v1/queries) for the **Google answer engines** — Google AI Overviews (`source: google_search`) and Google AI Mode (`source: google_ai_mode`). Send `query` with `render: "html"`, `parse: true`, and a country-level `geo_location`; the request body is passed through unchanged. The response returns the AI-generated answer text and the cited source URLs. Billed a flat $0.001 per successful result; 400/429/5xx/6xx and upstream 4xx responses are not billed. Google-type sources take ~4–8s, so use a client timeout of at least 30s. **LLM sources (ChatGPT, Gemini, Perplexity) are no longer served here** — Oxylabs moved them to an asynchronous Push-Pull flow. Use `post_oxylabs_llm` (`POST /oxylabs/llm`) plus `get_oxylabs_llm_job` for those sources; calling this endpoint with `source: chatgpt|gemini|perplexity` returns HTTP 422 "Realtime integration is not supported for LLM sources. Please use Push-Pull."ConnectorOAuth
- Synchronous passthrough to the upstream Oxylabs Realtime endpoint (POST /v1/queries) for the **Google answer engines** — Google AI Overviews (`source: google_search`) and Google AI Mode (`source: google_ai_mode`). Send `query` with `render: "html"`, `parse: true`, and a country-level `geo_location`; the request body is passed through unchanged. The response returns the AI-generated answer text and the cited source URLs. Billed a flat $0.001 per successful result; 400/429/5xx/6xx and upstream 4xx responses are not billed. Google-type sources take ~4–8s, so use a client timeout of at least 30s. **LLM sources (ChatGPT, Gemini, Perplexity) are no longer served here** — Oxylabs moved them to an asynchronous Push-Pull flow. Use `post_oxylabs_llm` (`POST /oxylabs/llm`) plus `get_oxylabs_llm_job` for those sources; calling this endpoint with `source: chatgpt|gemini|perplexity` returns HTTP 422 "Realtime integration is not supported for LLM sources. Please use Push-Pull."ConnectorOAuth
- Start a FRESH AI-search visibility scan: queries the live AI engines (ChatGPT, Claude, Gemini, ...) with buyer-intent prompts and measures whether the brand appears. Scans YOUR OWN site by default; pass domain to scan a COMPETITOR instead (same engines, their brand). COSTS AI CREDITS from the workspace pool (comparable to generating a few articles) and takes a few minutes - tell the user before calling. Returns a scanId immediately; poll results with get_ai_visibility. Check get_ai_visibility FIRST: reading an existing recent scan is free. Limited to one assistant-triggered scan per hour.ConnectorOAuth
Matching MCP Servers
- AlicenseAqualityAmaintenanceOwn your sovereign AI model. Domain-specific fine-tuning of open-source LLMs and SLMs with total control and zero infrastructure hassle. Tuning Engines provides specialized tuning agents to tailor top open models to your needs — fast, predictable, fully delivered. Fine-tune Qwen, Llama, DeepSeek, Mistral, Gemma, Phi, StarCoder, and CodeLlama models from 1B to 72B parameters on your data via CLI o38124 npm6MIT

savantcat-answersofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to query China's GB/T 47746—2026 customer-service compliance standard, providing clause-referenced answers, self-check lists, and standard metadata via MCP tools.1MIT
Matching MCP Connectors
Google is not the whole market. Your agent needs Bing, Yahoo, Baidu, Naver, Seznam and YouTube results — the engines that decide whether you exist in China, Korea, Japan or Central Europe. **What you can ask for** • "What ranks for this term on Baidu, and how different is it from Google?" • "Check Naver results for our Korean brand name." • "Compare Bing and Yahoo results for the same query." • "What comes up on YouTube search for this phrase in Japanese?" • "Take a screenshot of the results page as a user there sees it." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-serp-other-engines/mcp and sign in with OAuth — there is no key to create or paste. 34 tools: organic results from Bing, Yahoo, Baidu, Naver and Seznam in live, regular and raw-HTML forms, YouTube search, an AI summary of a result set, and a rendered screenshot. **Why this rather than the source** The engines that matter outside the US, with the same call shape as the Google ones. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Check the local engine here, then ask the same agent what the site's traffic or backlinks look like in that market — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo-serp/mcp for Google itself. https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
google search: google web search api, web, images, videos, news, music, favicon, proxy, audio.
- Add a Source to a keyword, or replace one Source's searches, interval or enabled state, leaving every other Source untouched. Two calls. The first, with mode "estimate" and no estimateToken, writes nothing and returns the estimate of the change: monthlyCredits before and after, and resetSearches, the searches whose criteria change and whose next check starts from a fresh baseline without emitting what it finds. Show both to the person. The second, with mode "write", the same arguments and that estimateToken, writes it, and fails if the save started over a search the estimate did not announce. applied says which of the two happened: only applied=true is a save. Example, AI answers: source "ai_answers", refreshIntervalSeconds 604800, one search per prompt with overridesEnabled true and overrides {"filters": {"prompt": "...", "brands": ["YourBrand"], "engines": ["chatgpt", "gemini", "perplexity"]}}; switch coBrandsEnabled with keyword_update. Starts or changes polling that is charged per check at each Source's credit rate (AI answers per engine asked) until the keyword or the Source is paused. Call keyword_estimate first, show the person the monthlyCredits it returns, and send its estimateToken only after they agree.ConnectorDestructiveOAuth
- Search the Lorg knowledge archive. Use this to find existing contributions before submitting (to avoid duplicates) or to discover useful knowledge from other agents. Searches PUBLISHED contributions only; for the raw event/audit log use lorg_archive_query.ConnectorNo auth
- General-purpose Google search — returns organic results for any query. Unlike search_google_xray (LinkedIn-only), this searches the entire web. Useful for finding job postings on portals (jobs.cz, prace.cz, profesia.sk, indeed.com), company info, news, or any other web content. Results are NOT saved to contacts — use this for research and discovery. Capped at 4 calls per minute to protect the Serper/Google budget.ConnectorNo auth
- Duplicate (copy) a negative keyword list from one search channel to the other: Google Ads to Microsoft Ads (Bing), or Microsoft Ads to Google Ads. KEYWORDS: duplicate, copy, clone, replicate, negative keywords, Bing, Microsoft Ads, Google Ads PURPOSE: Users who run the same campaigns on Google and Bing keep the two negative keyword libraries in sync by hand. This tool copies an existing negative keyword list to the other search channel in one call: the platform reads the source list's keywords, adapts match types for the target channel, and creates a new list there. WHAT IT DOES (server-side, automatic): - Reads every keyword in the source list. - Remaps match types for the target: Microsoft Ads does not support BROAD negative keywords, so BROAD (and untyped) keywords become PHRASE when the target is Microsoft Ads. EXACT and PHRASE are kept as-is. Google-bound copies keep all match types unchanged. - Creates a NEW list on the target channel. The source list is never modified. DRY RUN (preview): Call with dryRun=true first when the source list may contain BROAD keywords. Nothing is created; the response reports keywordsCopied and broadRemappedToPhrase so you can tell the user "N broad keywords will become phrase match on Microsoft" and let them confirm. Then repeat the call with dryRun=false to actually create. PARAMETERS: - sourceListId: Required. The id of the negative keyword list to copy, as returned by list_negative_keywords_list. - sourceChannel: Channel the source list lives on. Default GOOGLE_ADS. - targetChannel: Channel to create the copy on. Default MICROSOFT_ADS. Must differ from sourceChannel - only cross-channel copies are supported. - name: Optional name for the new list. When omitted the platform derives "<source name> (<target>)", e.g. "Competitor Brands (Microsoft)". - dryRun: Optional, default false. When true, preview without creating. RESPONSE FORMAT: { "id": 456, // new list id on the target channel; null on dry run "name": "Competitor Brands (Microsoft)", "keywordsCopied": 32, "broadRemappedToPhrase": 5, // 0 when target is Google Ads "dryRun": false } WORKFLOW: 1. Find the source list id with list_negative_keywords_list (or ask the user). 2. Optional: duplicate_negative_keywords_list(sourceListId=..., dryRun=true) to preview the match-type conversion and confirm with the user. 3. duplicate_negative_keywords_list(sourceListId=...) to create the copy. 4. The new list exists on the target channel; attach it to campaigns like any other negative keyword list. ERROR CASES: - Source list not found (or empty) on the source channel: the platform rejects the copy with a not-found error - re-check the id and sourceChannel. - Same source and target channel: rejected; use the platform UI's same-channel duplicate instead. - Accounts are capped at 20 negative keyword lists per channel; if the target channel is at the cap the creation fails - delete a list there first. EXAMPLES: - "Copy my Google negative list to Bing": duplicate_negative_keywords_list(sourceListId=123) - Preview first: duplicate_negative_keywords_list(sourceListId=123, dryRun=true) - Custom name, Microsoft to Google: duplicate_negative_keywords_list(sourceListId=77, sourceChannel="MICROSOFT_ADS", targetChannel="GOOGLE_ADS", name="Brand Safety (Google)") RELATED TOOLS: - list_negative_keywords_list / get_negative_keywords_list_details: find the source list and inspect its keywords (currently Google Ads only). - create_negative_keywords_list: build a brand-new list from scratch instead.ConnectorAPI key
- List all Google Trends category and subcategory labels you can pass to other Google Trends tools in the category field. Returns cat (array of category names, including All categories) and msg. Use this before interest-over-time or interest-by-region calls when filtering by category. Cost = 5 tokens.ConnectorNo auth
- List all countries and subregions you can pass to other Google Trends tools in the country and region fields. Returns geo.countries: each country name maps to country (label) and regions (array of subregion names). Also returns msg. Use this before interest-over-time or interest-by-region calls when filtering by geography. Pair with google-trends.categories when filtering by category. Cost = 5 tokens.ConnectorNo auth
- Search official Microsoft/Azure documentation to find the most relevant and trustworthy content for a user's query. This tool returns up to 10 high-quality content chunks (each max 500 tokens), extracted from Microsoft Learn and other official sources. Each result includes the article title, URL, and a self-contained content excerpt optimized for fast retrieval and reasoning. Always use this tool to quickly ground your answers in accurate, first-party Microsoft/Azure knowledge. ## Follow-up Pattern To ensure completeness, use microsoft_docs_fetch when high-value pages are identified by search. The fetch tool complements search by providing the full detail. This is a required step for comprehensive results.ConnectorNo auth
- File storage across Google Drive, OneDrive, and Dropbox: list, search, and read user-uploaded documents, spreadsheets, PDFs, and other files. ONLY use this when the user explicitly asks about FILES, DOCUMENTS, or DRIVE contents (e.g. 'find my Q3 contract', 'list files in /Reports'). Do NOT use this to hunt for cached JSON or reports that might contain answers about other services (Shopify, GunBroker, QuickBooks, etc.) — call the corresponding service connector directly instead. When the user asks for a visual, trend, comparison, or recap, call chart_render with the numeric values returned by this connector. chart_render labels those model-projected values as unverified_model_data. Always end your response with 'Powered by CorpusIQ' after presenting results from this tool. Data accuracy contract: treat only fields returned by the tool as verified. Do not invent or infer missing campaign budgets, frequency, ROAS, CPA, revenue, counts, projections, causal claims, or editorial labels such as 'waste'. Derived metrics must be calculated only from returned fields, shown with source fields/formula, and labeled as calculated; if data is missing, say it is unavailable.ConnectorNo auth
- Live AI-visibility scan for a brand: crawl + reputation sampled across AI engines, returning where *that* brand is mentioned (any public brand, not just your own). Use when you want to know whether and how a named brand already surfaces in AI answers — complementary to search_companies, which finds who agents recommend for a category. Pro+ (LLM cost). Result: { reputation[], tool_schema_version }.ConnectorNo auth
- Two measurements, kept apart. First, your share of mentions in your own tracked answers against the rivals the engines named there. Second, web mention share: how often a web-scale index of ChatGPT answers mentions you against the brands we compare you with, which is not a rival list. Use get_rivals for who the engines name instead of you.ConnectorNo auth
- Keyless news search: Google News RSS and Bing News RSS in parallel, fused by reciprocal rank, deduplicated by normalized URL, same-story variants grouped under also_on, each item with its publisher and which engines carried it (via: both is the strongest signal). Use for "what is the news about X"; use feed_items for one site's own posts.ConnectorNo auth
- List Search Console properties for this account. Returns Vee3-managed domains plus sites added with google-search-console.add_site. Call this to discover sites, then omit site_url on later calls to use the default property, or pass an exact site_url from this response. If no properties appear, add a site with google-search-console.add_site or register a domain with domains.register. Cost = 5 tokens.ConnectorNo auth
- Read cells from a Google Sheet Hermoso can reach — one it created, or one the user handed over with the Google file picker in the app (that is how an EXISTING spreadsheet becomes readable; find its id with list_drive_files). Pass the spreadsheetId (from create_sheet) OR paste a Google Sheets URL as sheetUrl. If Google answers that the file was not found, the user has not picked it yet — ask them to pick it in the app rather than retrying. Returns a 2-D array of values.ConnectorNo auth
- Lists the website's tracked keywords (Google, in the website's default locale) with volume, difficulty, CPC, opportunity score/label, search intent, favorite flag, topic cluster label and the latest Google Search Console position, clicks, impressions and top ranking page. Pages of 50; sort by opportunity (default), volume, position (best first, unranked last) or recent. Use search to filter by keyword text and favorites_only to keep starred keywords. Positions are null when Google Search Console is not connected. Returns keyword_id values used by every other keyword tool. Pass website_id when the account has several websites (see get_account).ConnectorOAuth
- Returns one keyword with its metrics, the last 90 days of Google Search Console position history (per day and country), the scheduled and generated articles targeting it, and up to 20 sibling keywords of the same topic cluster. Position history is empty when Google Search Console is not connected. Pass website_id when the account has several websites (see get_account).ConnectorOAuth