Mencoro
Server Details
Track and manage how your brand appears in AI answers: rank, mentions, sentiment, share of voice.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- mencoro/mencoro-mcp
- GitHub Stars
- 0
- Server Listing
- Mencoro MCP server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 71 tools
The set covers many distinct resources, but the analytics surface has several near-neighbors: project rank stats, cluster breakdown, time series, query movers, keyword listings, and tracked-query search all return overlapping rank/visibility metrics. Detailed descriptions and cross-references help, but an agent still has to choose carefully among them.
Almost all tools use snake_case verb_noun names (list_projects, create_project, get_tracked_query, set_tracked_query_passes), with only brand-specific names like get_growwer_offers as minor deviations. The pattern is predictable across 71 tools.
71 tools is far beyond a well-scoped set; even for a broad platform it creates heavy selection load and many analytics variants. The rubric's 50+ threshold makes this an extreme count mismatch.
Core lifecycle coverage is strong: organizations, projects, competitors, tracked queries, clusters, members, jobs, usage, and Growwer media all have create/read/update/archive or equivalent operations. Gaps are minor, such as no direct update for a tracked query's text/engine/country and no hard-delete for projects/organizations, but archive/restore covers most needs.
Publisher details
- Operator
- Virality Media S.L. · Publisher source
- Operator website
- https://mencoro.com
- Vendor relationship
- First-party
- Documentation
- https://mencoro.com/features/mcp-server/
- Trust center
- Unknown
- Restrictions
- Unknown
Available Tools
71 toolsadd_tracked_queries_to_clustersAdd tracked queries to clustersAIdempotentInspect
Add up to 100 tracked queries to one or more query clusters. Other cluster memberships are left alone. Each tracked query that cannot be changed is reported in "failed" without stopping the rest. Safe to retry.
Inputs: projectId (required), organizationId (required), queryClusterIds (required), trackedQueryIds (required). Returns: Per-item results of a batch write
apply_auto_clusteringApply a proposed clusteringADestructiveInspect
Apply the grouping a completed start_auto_clustering job proposed: creates the clusters it named and moves the tracked queries into them, as the job's mode said. In "full_regroup" mode a tracked query the proposal places also leaves every cluster the proposal did not put it in; "fill_gaps" and "add_on_top" only add. No cluster or tracked query is deleted. Cluster names are lower-cased like create_clusters, and a proposed name that matches an existing cluster reuses it instead of creating a second one. The response lists each tracked query's resulting clusters, not the memberships removed, so show the proposal (get_job) to the user first. Pass a fresh requestId and reuse it if you retry, so a retry never applies twice.
Inputs: jobId (required), projectId (required), organizationId (required), requestId. Returns: Per-tracked-query results of applying a clustering job
archive_organizationArchive an organizationADestructiveInspect
Archive an organization: its projects are archived and stop being checked, its pending invitations are cancelled, and its subscription is cancelled at the end of the billing period. Requires a confirmationToken: call preview_operation with tool "archive_organization" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: organizationId (required), confirmationToken (required), requestId. Returns: An organization the caller is a member of
archive_projectArchive a projectADestructiveInspect
Archive a project: every one of its tracked queries stops being checked and it disappears from the project list; restore_project brings it back. Requires a confirmationToken: call preview_operation with tool "archive_project" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees.
Inputs: projectId (required), organizationId (required), confirmationToken (required), requestId. Returns: A project and the brand monitoring configuration its checks run against
cancel_invitationCancel an invitationADestructiveInspect
Cancel a pending invitation; its link stops working. Find ids with list_members and includeInvitations. Requires a confirmationToken: call preview_operation with tool "cancel_invitation" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: invitationId (required), organizationId (required), confirmationToken (required), requestId. Returns: An invitation to join an organization
change_member_roleChange a member's roleADestructiveInspect
Give an organization member another role: owner, manager or viewer. memberId is the member id from list_members, not the user id. Requires a confirmationToken: call preview_operation with tool "change_member_role" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: role (required), memberId (required), organizationId (required), confirmationToken (required), +1 more. Returns: A membership of an organization
create_clustersCreate query clustersAInspect
Create up to 100 query clusters in a project, the groups tracked queries are organized in. Names are stored lower-cased and must be unique in the project; each name that cannot be created is reported in "failed" without stopping the rest. Assign tracked queries with add_tracked_queries_to_clusters, or let start_auto_clustering propose groups. Pass a fresh requestId and reuse it if you retry.
Inputs: names (required), projectId (required), organizationId (required), requestId. Returns: Per-name results of creating clusters in bulk
create_competitorAdd a competitorAInspect
Add a competitor to a project, with its website domains and the names it is mentioned by; from then on its mentions and rankings are tracked beside the brand's. list_untracked_competitors shows the brands AI answers name that are not tracked yet. Pass a fresh requestId and reuse it if you retry.
Inputs: name (required), projectId (required), brandNames (required), organizationId (required), +2 more. Returns: A competitor tracked by a project
create_organizationCreate an organizationAInspect
Create a new organization, owned by the caller. Only with a Mencoro connection that is not limited to one organization. Requires a confirmationToken: call preview_operation with tool "create_organization" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: name (required), confirmationToken (required), requestId. Returns: id, name, status
create_projectCreate a projectAInspect
Create a project that monitors a brand: its website domains, the brand names to look for, and optionally its competitors. Tracked queries are added afterwards with create_tracked_queries. Before calling it, propose everything to the user at once: brand names from suggest_brand_names, and competitors from discover_competitors (poll get_job; each comes with its website and names); if that job is refused, fails or finds none, competitors you suggest with their websites instead (suggest_brand_names finds the names each one goes by), without holding up the setup. Pass the chosen competitors here: one added later only counts in checks from then on. After the first checks, list_untracked_competitors shows other brands the answers name. Pass a fresh requestId and reuse it if you retry, so a retry never creates a second project. Refused to a member restricted to selected projects.
Inputs: name (required), brandNames (required), organizationId (required), websiteDomains (required), +2 more. Returns: A project and the brand monitoring configuration its checks run against
create_tracked_queriesCreate tracked queriesAInspect
Start tracking queries: every combination of queryTexts x engines x countries (at most 100) becomes a tracked query, checked now and then on checkFrequency with nPasses passes, each check spending budget. Combinations the project already tracks, repeated ones and Google AI Mode in unsupported countries are skipped and reported. Requires a confirmationToken: call preview_operation with tool "create_tracked_queries" and these arguments first, show the returned plan (what is created, what it costs) to the user, and call this tool only after the user explicitly agrees. Pass a fresh requestId and reuse it if you retry.
Inputs: engines (required), nPasses (required), countries (required), projectId (required), +7 more. Returns: Per-combination results of creating tracked queries in bulk
delete_clusterDelete a query clusterADestructiveInspect
Delete a query cluster. Its tracked queries are not deleted; they only leave the cluster. Irreversible. Requires a confirmationToken: call preview_operation with tool "delete_cluster" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees.
Inputs: clusterId (required), projectId (required), organizationId (required), confirmationToken (required), +1 more. Returns: id, name, deleted
delete_competitorDelete a competitorADestructiveInspect
Remove a competitor from a project, together with every mention, search result and shopping result recorded for it. Irreversible. Requires a confirmationToken: call preview_operation with tool "delete_competitor" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees.
Inputs: projectId (required), competitorId (required), organizationId (required), confirmationToken (required), +1 more. Returns: The competitor as it was before it was deleted.
delete_tracked_queriesDelete tracked queriesADestructiveInspect
Delete up to 100 tracked queries, together with their captured answers, matches and metrics history. Irreversible; to stop spending budget without losing history, pause them with pause_tracked_queries instead. Requires a confirmationToken: call preview_operation with tool "delete_tracked_queries" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees.
Inputs: projectId (required), organizationId (required), trackedQueryIds (required), confirmationToken (required), +1 more. Returns: Per-item results of a batch write
discover_brandsDiscover more brand namesAInspect
Start a background job that finds other names the project's brand and each of its existing competitors go by in AI answers and search results (aliases, product and store names). It does not find new competitors. Poll get_job for the result, show it to the user, and add the chosen names with update_project (the brand) or update_competitor (a competitor, by competitorId), passing the full list including the names already there. shoppingEnabled also looks at Google Shopping; country narrows to one market (ISO 3166-1 alpha-2).
Inputs: projectId (required), organizationId (required), country, requestId, +1 more. Returns: jobId, nextStep, deduplicated
discover_competitorsDiscover competitorsAInspect
Start a background job that finds up to limit businesses (default 3, at most 5) competing with a website in one market: domains ranking on Google for the same searches, each with the brand name people use and up to 3 aliases. Pass the project's existing competitor domains in existingCompetitorDomains so they are not proposed again. Poll get_job for the result and show it to the user. During project setup, pass the chosen ones in create_project's competitors: a competitor added later with create_competitor only counts in answers captured from then on. An empty list is a valid answer. Country is ISO 3166-1 alpha-2 and language ISO 639-1. Requires an active subscription; refused to a member restricted to selected projects.
Inputs: domain (required), country (required), language (required), organizationId (required), +4 more. Returns: jobId, nextStep, deduplicated
discover_keywordsDiscover search keywordsAInspect
Start a background job that proposes search keywords for a project from a seed (a topic, a product, a URL). excludeQueries leaves out ones already tracked. Poll get_job for the result, review it with the user, then track the chosen ones with create_tracked_queries. Requires an active subscription.
Inputs: input (required), projectId (required), organizationId (required), country, +3 more. Returns: jobId, nextStep, deduplicated
discover_promptsDiscover AI promptsAInspect
Start a background job that proposes the questions people ask AI assistants about a topic in one country - the prompts worth tracking on AI engines. excludeQueries leaves out ones already tracked. Poll get_job for the result, review it with the user, then track the chosen ones with create_tracked_queries. Requires an active subscription.
Inputs: input (required), country (required), projectId (required), organizationId (required), +3 more. Returns: jobId, nextStep, deduplicated
get_available_filtersGet available project filtersARead-onlyIdempotentInspect
Discover the engines, countries, keyword clusters and competitors configured on a project so subsequent metric tools can be called with valid filter values. Engines and countries are returned as {code, label} (e.g. {"code":"chatgpt","label":"ChatGPT"}, {"code":"US","label":"United States"}); clusters and competitors as {id, name}. Always pass the "code"/"id" (never the label/name) to the other tools' engines / countries / queryClusterIds / competitorId(s) parameters. Call this before filtering.
Inputs: projectId (required), organizationId (required). Returns: engines, clusters, countries, competitors
get_cited_sourcesCited domains and pagesARead-onlyIdempotentInspect
The domains (groupBy=domain) or pages (groupBy=page) most cited across a project's AI answers in a date window — the sources the answer engines drew on. Per source: how many times it was cited, how many distinct answers and tracked queries it appeared in, and its average rank within the citation lists. The list is UNFILTERED by ownership: it includes the brand's, competitors' and third-party sources. Only AI answer engines (chatgpt, claude, perplexity, google_ai_overview, google_ai_mode) produce citations. Dates must fall within the data retention window. Answers questions like "which websites and pages does the AI cite or quote for me versus competitors".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +4 more. Returns: total, sources
get_cluster_breakdownRank tracking by keyword clusterARead-onlyIdempotentInspect
Rank-tracking metrics broken down per keyword cluster for a project over a date window: one row per cluster with its positions, share of voice and sentiment. Dates must fall within the data retention window. Answers questions like "which keyword clusters are strongest or weakest" or "how does my niche compare to my generic queries".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +4 more. Returns: rows, dataDirtySince
get_competitor_cooccurrenceCompetitor co-occurrence (head-to-head)ARead-onlyIdempotentInspect
For the AI answers where the brand and a competitor are BOTH mentioned, compares who is named higher. One row per tracked competitor: how many answers they co-appear in, how often the brand out-ranks / loses to / ties them (by best mention position), the win rate, the average positions, and one representative shared query. Optionally focus a single competitor via competitorId. Tracked competitors only. Dates must fall within the data retention window. Answers questions like "who wins when we both appear", "do I outrank competitor X", "who is mentioned first".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +3 more. Returns: competitors
get_growwer_offersGet Growwer offers for a tracked query's cited mediaARead-onlyIdempotentInspect
Which of the media one tracked query's captures cite are sold on Growwer, a sponsored-content marketplace, and at what price. The media are the third-party sites its AI answers cite (AI engines) or its search results list (traditional search) within the window, never the brand's or a tracked competitor's; shopping queries have none. Each item gives the host, the Growwer domain matched exactly to it, whether it is sold, every product (post, link_addition) and link type (dofollow, nofollow, citation) price in minor units of currency excluding VAT, the cheapest as fromPrice, and whether its posts are labelled as advertising. status "unavailable" means Growwer could not be asked and only recently cached hosts are listed. Each item also lists the organization's own Growwer orders for that media (id, type, state code, price in minor units, delivery URL, publication and creation dates), read from the Growwer account an owner connected in Mencoro's settings and only from one Growwer project whose website is this project's: growwerProjects lists those projects (id, name, url), and growwerProjectId is the one the orders come from, the first unless the growwerProjectId argument names another of them (any other is refused as growwer_project_not_matched). Without an offer Growwer answered for (no item, or status "unavailable") the account is not read: growwerProjects is empty, growwerProjectId null and the argument unchecked. ordersStatus is "ok", "not_connected", "revoked" (an owner must connect again in the app) or "unavailable" (Growwer did not answer, or a connected account was not read), and orders are empty unless it is "ok". Read only: purchases happen on Growwer itself, and no tool buys or connects a Growwer account. Dates are YYYY-MM-DD and default to the whole retention window.
Inputs: projectId (required), organizationId (required), trackedQueryId (required), dateTo, +2 more. Returns: offers, status, ordersStatus, growwerProjects, +1 more
get_jobGet a background jobARead-onlyIdempotentInspect
The status and, once completed, the result of a background job started by discover_brands, suggest_brand_names, discover_competitors, discover_keywords, discover_prompts or start_auto_clustering. Poll it every few seconds until status is "completed" or "failed"; do not start the job again while it is pending or running. A discover_prompts job usually finishes within 15 minutes and fails with error.code timed_out after about 30 minutes. A failed job carries error.code (timed_out, provider_failed, submission_failed or internal_error) and error.message, which says what to do next.
Inputs: jobId (required), organizationId (required). Returns: An asynchronous job and, once it has completed, its result, or once it has fail…
get_mencoro_guideMencoro guideARead-onlyIdempotentInspect
Answer questions about Mencoro itself from its public guide: what it tracks, how a check runs, what counts as a mention, how Coverage, Favorability, share of voice, positions and stability are calculated, how checks, plans and frequencies work, reliability and limits, how to use this MCP server (permissions, confirmations), how to analyse results and find what to improve, pairing with Ahrefs, Semrush, Search Console or Google Analytics MCP servers, and the REST API. Call it without a topic for the index, then with the topic that answers the question. No account data; works without signing in.
Inputs: topic. Returns: title, topic, source, topics, +3 more
get_mention_mixAI mention mix (type/tone/qualifier)ARead-onlyIdempotentInspect
The project brand's own AI text-mention counts over a date window grouped by type, tone and qualifier; competitors (tracked or untracked) and unrelated brands are excluded. Counts are raw per-pass rows and leave out cited links, so they show mention composition, not the exact share-of-voice inputs (share of voice averages each check over its passes and also weights links). Use to understand mention composition. For the positive/neutral/negative sentiment split use get_sentiment_breakdown; to read the actual mention texts use get_mention_samples. Dates must fall within the data retention window. Answers questions like "am I recommended or just listed" or "break my mentions down by type".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +2 more. Returns: byTone, byType, byQualifier
get_mention_samplesSample AI mention textsARead-onlyIdempotentInspect
Paginated sample of the raw AI mention texts themselves, for qualitative review and verifying sentiment labels. Use to READ individual mentions. For the aggregate sentiment split use get_sentiment_breakdown; for the brand's own mention counts by type, tone and qualifier use get_mention_mix. Filterable by engine, sentiment, mention type and competitor. Dates must fall within the data retention window. limit is 1-50 (default 20). Answers questions like "show or export the actual AI mention texts" for a query.
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +8 more. Returns: total, samples
get_metric_glossaryMetric glossaryARead-onlyIdempotentInspect
Map a plain-language or unfamiliar request to the right Mencoro metric and tool. Returns each metric with its everyday synonyms, unit, value range, whether higher or lower is better, the tool that serves it, and example questions. Call this first when a request is vague, non-technical, phrased in another language, or uses wording that does not match a tool name. Static reference; no project data.
Inputs: organizationId (required). Returns: metrics
get_organizationGet an organizationARead-onlyIdempotentInspect
An organization's profile, its status, the caller's own role in it, and how many active members and pending invitations it has, and how many of its projects the caller can access. Use list_projects first to find the organizationId.
Inputs: organizationId (required). Returns: stats, organization
get_organization_overviewOrganization brand overviewARead-onlyIdempotentInspect
Latest-snapshot rank-health board across the active projects the caller can access in an organization: one row per brand (share of voice, mention rate, average mention position, positivity, tracked-query count in total and per engine family: AI, SERP, Shopping) ranked by share of voice, plus an organization-level aggregate. This is a current-state snapshot and takes NO date window; for date-ranged comparison, call the per-project tools (e.g. get_project_rank_tracking_stats) for each project id returned here. Answers questions like "give me a company-wide summary of share of voice and sentiment across all my projects".
Inputs: organizationId (required). Returns: projects, aggregate
get_projectGet a projectBRead-onlyIdempotentInspect
A project's name and status, the website domains and brand names it is monitored for, and all of its competitors with their ids (update_competitor and delete_competitor take them).
Inputs: projectId (required), organizationId (required). Returns: A project and the brand monitoring configuration its checks run against
get_project_rank_tracking_statsProject rank-tracking overviewARead-onlyIdempotentInspect
Aggregated rank-tracking summary for a project over a date window: average positions, trends, share of voice (own and per competitor), sentiment split, mention/SERP/shopping rates, and position-distribution buckets. This is the project overview; prefer it before the per-cluster or time-series tools. Dates must fall within the data retention window. Answers questions like "how visible is my brand", "am I ahead of competitors", "how positive is my coverage".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +4 more. Returns: serpRate, trendLink, trendSerp, mentionRate, +37 more
get_project_sourcesProject sources and visibility opportunitiesARead-onlyIdempotentInspect
The hosts a project's AI answers cite and its SERPs list in a date window, as the Fuentes tab shows them, with each host's gap queries: the tracked queries with at least one response (an AI answer, each pass counted, or a SERP) that listed the host without the brand, meaning an answer that neither names the brand nor cites its site, or a SERP where no own domain ranks. view=opportunities (default) lists third-party hosts with a gap, most gap queries first: the sites to get the brand onto; view=all lists every host, the brand's and competitors' own sites included (ownership says which); view=cited-you lists third-party hosts cited in AI answers that featured the brand. counts gives each view's host count under the same filters. Pass host to get one host instead: its gap queries (one row per tracked query with the engines of its gap responses), the URLs cited, each list capped at 100 with gapQueriesTotal and citedUrlsTotal counting every row, and an excerpt of the latest answer citing it. Each third-party host carries growwer: whether Growwer sells a link on it (state offer, no_offer, or pending while Growwer has not answered for it yet), its starting price excluding VAT, the stored answer's age (stale after 48 hours) and the organization's own Growwer orders on that media (an order means one is already in progress), whether the organization already requested that media from Growwer (requested, requestedAt) and whether request_growwer_media can request it (canRequest; when false, the media is requested on Growwer's own site); onlyGrowwerOffers=true keeps the hosts Growwer sells, in the rows and in every count, and counts.growwerOffers counts them in the view. Offers are refreshed daily from Growwer, never asked for during this call; get_growwer_offers asks Growwer live for a tracked query's media. Dates must fall within the data retention window, and the period spans at most 92 days, both dates counted. Answers questions like "which sites should I get mentioned on", "where do AI answers cite my competitors but not me" or "which media cite me".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +13 more. Returns: total, counts, source, sources, +6 more
get_query_moversBiggest tracked-query moversARead-onlyIdempotentInspect
Ranks a project's tracked queries by how much a metric changed between the given window and the immediately preceding window of equal length — the biggest gainers and losers. Each row is one tracked query (a single engine + country) with its current position/share/sentiment and the signed trend delta (positive = improved). Sort by one of the trend keys; sortOrder desc = top gainers, asc = top losers. Dates must fall within the data retention window. Answers questions like "which queries moved the most" or "my biggest gains and drops versus last period".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +6 more. Returns: rows, total, dataDirtySince
get_rank_tracking_time_seriesRank-tracking time seriesARead-onlyIdempotentInspect
Time series of rank-tracking metrics for a project across a date window, bucketed by granularity (daily, weekly or monthly). Prefer weekly or monthly for long windows to keep the response compact. Optionally includes per-competitor lines. Dates must fall within the data retention window. Answers questions like "what changed in my AI visibility" or "show my share-of-voice trend split by engine".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +6 more. Returns: points, dataDirtySince
get_sentiment_breakdownAI mention sentiment breakdownARead-onlyIdempotentInspect
Positive/neutral/negative sentiment split of the brand's AI mentions over a date window, per AI engine and per competitor. Use for tone/sentiment questions. For the brand's own mention counts by type, tone and qualifier use get_mention_mix; to read the actual mention texts use get_mention_samples. Dates must fall within the data retention window. Answers questions like "is anything negative being said about my brand" or "how positive is my coverage".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +4 more. Returns: perEngine, perCompetitor
get_tracked_queryGet a tracked queryARead-onlyIdempotentInspect
One tracked query's settings: its text, engine, country, status, check frequency, passes per check, clusters and when it was last checked. Find ids with search_tracked_queries.
Inputs: projectId (required), organizationId (required), trackedQueryId (required). Returns: A tracked query and how it is checked
get_tracked_query_matchesGet a tracked query's matchesARead-onlyIdempotentInspect
The individual results behind one tracked query's metrics. kind "mention": each time the brand or a competitor was mentioned in an AI answer, with position, sentiment and the context it appeared in. kind "serp": each time one of their domains ranked in a search result, with its position. Newest first by default; dates are YYYY-MM-DD and default to the whole retention window.
Inputs: kind (required), projectId (required), organizationId (required), trackedQueryId (required), +5 more. Returns: kind, items, total
get_tracked_query_time_seriesSingle tracked-query time seriesARead-onlyIdempotentInspect
Time series of rank-tracking metrics for ONE tracked query across a date window, bucketed by granularity (daily, weekly or monthly). The tracked query fixes the engine and country, so those are not parameters. Use search_tracked_queries to find a trackedQueryId. Optionally includes per-competitor lines. Prefer weekly or monthly for long windows. Dates must fall within the data retention window. Answers questions like "show the share-of-voice and position history of this one query over the last N months".
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +3 more. Returns: points, dataDirtySince
get_tracking_coverageTracking coverage & stalenessARead-onlyIdempotentInspect
Coverage summary for a project's tracked queries: counts of total, active, paused, never-checked, and overdue (past their check-frequency interval) queries, plus a sample of the most-overdue ones. Answers "what is stale / not being tracked" in one call. Never-checked and overdue are scoped to active queries. This is a current-state snapshot and takes no date window. Answers questions like "what is stale or not being monitored", "which queries are overdue, paused, or never checked", "how fresh is my data".
Inputs: projectId (required), organizationId (required). Returns: total, active, paused, sample, +3 more
get_usageGet plan and usageARead-onlyIdempotentInspect
An organization's subscription, how many tracked queries its projects the caller can access have, and how many checks they are projected to run per month. Plan entitlements (tracked-query and check limits) are included for owners only, as in the web app; for other members "entitlements" is null. For a member restricted to selected projects, the plan, billing cycle, check budget, consumption and deactivation reason in "subscription" are null too. Use it before creating tracked queries or raising check frequency, to stay within the plan.
Inputs: organizationId (required). Returns: entitlements, subscription, trackedQueries, projectedMonthlyChecks
invite_memberInvite a memberAInspect
Invite someone to the organization by email with a role (owner, manager or viewer) and, optionally, the projects they will reach (projectAccess); they get an email to accept. Inviting an address that already belongs to a member creates nothing and says so. Requires a confirmationToken: call preview_operation with tool "invite_member" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: role (required), email (required), organizationId (required), confirmationToken (required), +2 more. Returns: object
list_ai_responsesList captured AI answersARead-onlyIdempotentInspect
The AI answers captured for a project's tracked queries - the full answer text, the engine, when it was captured, and the sources it cited. Filter by engine, by one tracked query, or by capture date (YYYY-MM-DD). Newest first by default. Use it to read what an engine actually said; for aggregates use the metric tools.
Inputs: projectId (required), organizationId (required), limit, dateTo, +5 more. Returns: items, total
list_clustersList query clustersBRead-onlyIdempotentInspect
A project's query clusters (the groups its tracked queries are organized in), by name, with their ids.
Inputs: projectId (required), organizationId (required), limit, offset, +1 more. Returns: items, total
list_keyword_listingsList keyword performanceARead-onlyIdempotentInspect
One row per tracked query text across all its engine and country variants, with its share of voice, positivity, mention, link, search and shopping positions over the date range (YYYY-MM-DD, inclusive). A variant not checked in the range contributes its latest earlier position; carriedPositions says which position figures were carried and from when. Filter by engine, country, cluster, status, check frequency, passes or text; sort by any metric. The keyword-level view of a project.
Inputs: dateTo (required), dateFrom (required), projectId (required), organizationId (required), +12 more. Returns: items, total, dataDirtySince, totalVariantCount
list_membersList organization membersARead-onlyIdempotentInspect
The members of an organization, oldest first, with their role and state; optionally also its pending invitations. Owners only, as in the web app. The member "id" (not the userId) is what change_member_role, suspend_member and reactivate_member take.
Inputs: organizationId (required), limit, offset, includeInvitations. Returns: members, pendingInvitations
list_projectsList organizations and projectsARead-onlyIdempotentInspect
List every organization the caller belongs to and the active projects they can access in it. Call this FIRST: the returned (organizationId, projectId) pairs are required by every other tool.
Inputs: no named parameters. Returns: organizations
list_search_snapshotsList captured search resultsARead-onlyIdempotentInspect
The search result pages captured for a project's tracked queries. kind "serp": Google search results with each result's position, title and URL. kind "shopping": Google Shopping results with each offer's position, merchant and price. Filter by one tracked query or by capture date (YYYY-MM-DD). Newest first by default.
Inputs: kind (required), projectId (required), organizationId (required), limit, +5 more. Returns: kind, items, total
list_untracked_competitorsBrands the AI answers name that you do not trackARead-onlyIdempotentInspect
The brands a project's AI answers name that are not tracked as competitors (another brand offering the same thing), most-seen first: in how many answers and tracked queries, how often, their average position among the brands named, one query that named them, and when they were last seen. They count in no metric until tracked, so this is where to find competitors worth adding with create_competitor (their websites are not known here; confirm them with the user). Needs checks to have run; after a project is created its first checks run straight away. dateFrom and dateTo (YYYY-MM-DD) default to the last 30 days.
Inputs: projectId (required), organizationId (required), limit, dateTo, +3 more. Returns: brands, dateTo, dateFrom
pause_tracked_queriesPause tracked queriesADestructiveIdempotentInspect
Pause up to 100 tracked queries: their checks stop until resume_tracked_queries restarts them, so they spend no budget meanwhile; use get_usage to see the effect. Checks skipped while paused are never made up later, and pausing also cancels a check still in progress. Each one that cannot be paused is reported in "failed". Safe to retry.
Inputs: projectId (required), organizationId (required), trackedQueryIds (required). Returns: Per-item results of a batch write
preview_operationPreview an operation before running itARead-onlyInspect
Describe exactly what a confirmable write tool would do and get the confirmationToken it requires. Pass the name of the write tool as "tool" and the arguments you would pass it (without confirmationToken and requestId) as "arguments". Show the returned plan to the user and wait for an explicit yes before calling the tool with the same arguments and this confirmationToken. The token is single-use, expires after a few minutes, and is refused if anything the plan describes has changed.
Inputs: tool (required), arguments (required). Returns: plan, tool, nextStep, expiresAt, +2 more
reactivate_memberReactivate a memberAInspect
Give a suspended member their access to the organization back. memberId is the member id from list_members, not the user id. Requires a confirmationToken: call preview_operation with tool "reactivate_member" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: memberId (required), organizationId (required), confirmationToken (required), requestId. Returns: A membership of an organization
remove_tracked_queries_from_clustersRemove tracked queries from clustersADestructiveIdempotentInspect
Take up to 100 tracked queries out of one or more query clusters. Other cluster memberships are left alone. Removing also takes the tracked query's past results out of that cluster's reports until it is added back with add_tracked_queries_to_clusters. Each tracked query that cannot be changed is reported in "failed" without stopping the rest. Safe to retry.
Inputs: projectId (required), organizationId (required), queryClusterIds (required), trackedQueryIds (required). Returns: Per-item results of a batch write
rename_clusterRename a query clusterBIdempotentInspect
Rename a query cluster. The name is stored lower-cased and must be unique in the project. Safe to retry.
Inputs: name (required), clusterId (required), projectId (required), organizationId (required). Returns: A keyword cluster of a project
report_ai_responseReport a wrongly analysed AI answerAInspect
Flag a captured AI answer whose analysis is wrong - most often a brand or competitor mention that was missed - so Mencoro reviews it. type "missed_mention" or "other"; comment says what is wrong. Find the ids with list_ai_responses.
Inputs: type (required), projectId (required), aiResponseId (required), organizationId (required), +3 more. Returns: Acknowledgement of a report about a captured AI answer
request_growwer_mediaRequest media from GrowwerAIdempotentInspect
Ask Growwer, a sponsored-content marketplace, to find media on one source host for a project, through the Growwer account an owner connected in Mencoro's settings, for the Growwer project whose website is this project's (the first one, as get_growwer_offers picks it). Nothing is bought or paid; Growwer may tell the media's sellers a buyer is interested. Use it on a host get_project_sources lists with a growwer block whose canRequest is true. Idempotent per project and host: a host already requested answers with its first requestedAt and Growwer is not asked again. Refusals that mean the request must be made on Growwer's own site instead: growwer_not_connected, growwer_connection_revoked and growwer_connection_read_only (an owner must connect Growwer again, granting write access), growwer_project_not_matched (no Growwer project of the account has this project's website); these are checked before Growwer is asked, so the same requestId can be retried, after a new preview, once the connection is fixed. growwer_media_request_failed means Growwer refused or did not answer; nothing was stored and it can be tried again with a new preview and a new requestId. growwer_media_host_invalid: the host names no host, or is an IPv6 address. Requires a confirmationToken: call preview_operation with tool "request_growwer_media" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees.
Inputs: host (required), projectId (required), organizationId (required), confirmationToken (required), +1 more. Returns: host, requested, requestedAt
restore_organizationRestore an organizationAInspect
Bring an archived organization back to active. Requires a confirmationToken: call preview_operation with tool "restore_organization" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: organizationId (required), confirmationToken (required), requestId. Returns: An organization the caller is a member of
restore_projectRestore an archived projectAIdempotentInspect
Bring an archived project back: it reappears in the project list and its active tracked queries are checked again on their schedule.
Inputs: projectId (required), organizationId (required). Returns: A project and the brand monitoring configuration its checks run against
resume_tracked_queriesResume tracked queriesAIdempotentInspect
Restart the checks of up to 100 paused tracked queries; they spend budget again, so use get_usage to see the effect. Checks skipped while they were paused are not made up. Each one that cannot be resumed is reported in "failed". Safe to retry.
Inputs: projectId (required), organizationId (required), trackedQueryIds (required). Returns: Per-item results of a batch write
run_checksCheck tracked queries nowAInspect
Check tracked queries now instead of waiting for their schedule: name up to 100 in trackedQueryIds, or pass all: true for every active tracked query of the project, however recently it was checked (a query whose check is still running is skipped). Each check spends budget (each pass counts as one check; a Claude pass counts as five). Requires a confirmationToken: call preview_operation with tool "run_checks" and these arguments first, show the returned plan (which checks run, what they cost) to the user, and call this tool only after the user explicitly agrees. Results arrive over the next minutes; read them with the analytics tools.
Inputs: projectId (required), organizationId (required), confirmationToken (required), all, +2 more. Returns: Per-id outcomes when trackedQueryIds were named; the submitted ids when all was…
search_tracked_queriesSearch tracked queriesARead-onlyIdempotentInspect
Search and paginate the tracked queries (keywords) of a project with their latest rank positions and metrics. Filter by status (active/paused), engines, countries and a free-text search. Sort by one of: queryText, lastSerpPosition, lastMentionPosition, lastShoppingPosition, lastShareOfVoice, lastPositivityIndex, lastMentionCount, lastCheckedAt. limit is 1-100 (default 20). Answers questions like "list my top queries by share of voice" or "find a specific tracked query".
Inputs: projectId (required), organizationId (required), limit, offset, +6 more. Returns: items, total
set_member_project_accessSet a member's project accessADestructiveInspect
Set which projects of the organization a member reaches: every project (mode "all") or only the projects in projectIds (mode "selected"); a project outside a selection answers as if it did not exist. It applies from the member's next request, including through their API keys and MCP connections. An owner always reaches every project and cannot be limited. memberId is the member id from list_members, not the user id; projectIds come from list_projects. Requires a confirmationToken: call preview_operation with tool "set_member_project_access" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: mode (required), memberId (required), organizationId (required), confirmationToken (required), +2 more. Returns: A membership of an organization
set_tracked_query_check_frequencySet how often tracked queries are checkedADestructiveIdempotentInspect
Change how often up to 100 tracked queries are checked: daily, weekly or monthly. A lower frequency spends less budget; use get_usage to see the effect. Checks skipped at a lower frequency are never made up later. Each one that cannot be changed is reported in "failed". Safe to retry.
Inputs: projectId (required), checkFrequency (required), organizationId (required), trackedQueryIds (required). Returns: Per-item results of a batch write
set_tracked_query_passesSet how many answers each check capturesADestructiveIdempotentInspect
Change how many answers each check of up to 100 tracked queries captures (nPasses; above 1 only for AI engines). Fewer passes spend less budget; use get_usage to see the effect. Passes no longer captured are never made up later. Each one that cannot be changed is reported in "failed". Safe to retry.
Inputs: nPasses (required), projectId (required), organizationId (required), trackedQueryIds (required). Returns: Per-item results of a batch write
start_auto_clusteringPropose query clusters automaticallyAInspect
Start a background job that proposes how to group up to 500 tracked queries into clusters. mode "fill_gaps" places only queries that have no cluster yet; "add_on_top" adds clusters without touching existing memberships; "full_regroup" proposes a fresh grouping of every query. restrictToExistingClusters only uses the project's current clusters. Nothing changes until apply_auto_clustering: poll get_job, show the proposal to the user, then apply it. Requires an active subscription.
Inputs: mode (required), projectId (required), organizationId (required), trackedQueryIds (required), +2 more. Returns: jobId, nextStep, deduplicated
suggest_brand_namesSuggest brand namesAInspect
Start a background job that proposes the names a brand is mentioned by, from its name and website - the first step of setting up a project, before it exists. Poll get_job for the result and confirm the names with the user before create_project. Refused to a member restricted to selected projects.
Inputs: name (required), organizationId (required), websiteDomains (required), country, +2 more. Returns: jobId, nextStep, deduplicated
suspend_memberSuspend a memberADestructiveInspect
Suspend an organization member: they lose access immediately but stay a member, and reactivate_member gives it back. memberId is the member id from list_members, not the user id. Requires a confirmationToken: call preview_operation with tool "suspend_member" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: memberId (required), organizationId (required), confirmationToken (required), requestId. Returns: A membership of an organization
update_competitorUpdate a competitorADestructiveIdempotentInspect
Replace a competitor's name, website domains and brand names. Replaces all three: pass every domain and name the competitor should keep. A domain or brand name left out is removed, and later checks no longer match on it; results already recorded are not re-matched or deleted. Show the user the full new lists before calling. Safe to retry.
Inputs: name (required), projectId (required), brandNames (required), competitorId (required), +2 more. Returns: A competitor tracked by a project
update_organizationUpdate an organizationADestructiveIdempotentInspect
Change the name, description or contact email of an organization; arguments left out are unchanged. A value passed overwrites the current one, and no tool returns the old value afterwards. Requires a confirmationToken: call preview_operation with tool "update_organization" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.
Inputs: organizationId (required), confirmationToken (required), name, requestId, +2 more. Returns: An organization the caller is a member of
update_projectUpdate a projectADestructiveIdempotentInspect
Rename a project, replace the website domains and brand names it is monitored for, or both. A rename alone removes nothing. brandProfile replaces both lists entirely: pass every domain and name the project should keep. A domain or brand name left out is removed, and later checks no longer match on it; results already recorded are not re-matched or deleted. Show the user the full new lists before calling. A member restricted to selected projects may not change the website domains, only resubmit them unchanged. Safe to retry.
Inputs: projectId (required), organizationId (required), name, brandProfile. Returns: project, brandProfile
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Track and manage your brand's visibility in AI answers: ChatGPT, Gemini, Google AI, Copilot.
Track how AI assistants mention, cite, and rank your brand and competitors in AI search.
Track brand mentions, share of voice and cited URLs in ChatGPT, Perplexity, Gemini and AI Overviews.
Your brand's visibility in AI answers: trends, competitor ranking, cited sources and next tasks.
Related MCP Servers
AlicenseAqualityCmaintenanceMonitors brand mentions, citations, sentiment, competitor share of voice, and GEO performance across AI search engines.1MIT- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.169 npm1MIT
- AlicenseAqualityDmaintenanceTrack brand visibility across ChatGPT, Perplexity, Claude, and Gemini.6277 npm11MIT
- AlicenseAqualityDmaintenanceTrack how your brand appears in AI-generated answers across ChatGPT, Perplexity, and other AI models. Analyze visibility, sentiment, citations, and domain rankings with 31 tools — including analytics reports, chat inspection, query analysis, and full CRUD for brands, prompts, tags, and topics.17105 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.