Skip to main content
Glama
Mencoro MCP server

Mencoro MCP server


Mencoro tracks how brands surface in AI answer engines — ChatGPT, Perplexity, Google AI Overview and AI Mode — and in Google Search and Shopping. The MCP server exposes that data to any MCP client, and lets it manage projects, tracked queries, clusters and organizations, as 67 tools (31 that read, 36 that change something) and 20 prompts. One of them, get_mencoro_guide, answers questions about Mencoro itself and works without signing in.

The server is hosted. Most clients should connect to it directly:

https://api.mencoro.com/mcp

This repository holds the public metadata for that server plus a small stdio bridge (@mencoro/mcp) for hosts that can only launch a local process. It does not contain the Mencoro application source.

Connect

No install, no local process. Sign in with OAuth, or paste a personal access token as a header.

Client

How

Claude (web, Desktop, mobile)

Settings → Connectors → Add custom connector → paste the URL → Sign in. Or use the one-click link.

ChatGPT

Settings → Apps & Connectors → developer mode → add the URL → sign in.

Claude Code

claude mcp add --transport http mencoro https://api.mencoro.com/mcp then /mcp to sign in

Cursor

config below

VS Code

config below

OpenAI Codex

config below

Gemini CLI

config below

OpenCode

config below

Google Antigravity

config below

Clients that can only spawn a local process

Claude Desktop's manual configuration, and older stdio-only hosts, need a bridge. That is what this package is:

npx -y @mencoro/mcp
// claude_desktop_config.json
{
  "mcpServers": {
    "mencoro": {
      "command": "npx",
      "args": ["-y", "@mencoro/mcp"],
      "env": { "MENCORO_API_KEY": "mcp_pat_your_token" }
    }
  }
}

The token goes through the environment rather than an argument, so it does not appear in ps output and does not have to survive the host's argument splitting.

Related MCP server: MentionsAPI MCP Server

Authentication

Two ways in. Both carry the same three permissions, and neither can ever do more than your own role in an organization allows:

Scope

Allows

read

Every read tool. Always granted.

write

Creating, changing and deleting projects, competitors, clusters and tracked queries; running checks; starting discovery jobs.

organization:manage

Creating, renaming, archiving and restoring organizations; invitations; members' roles and suspension.

OAuth 2.1 — the one-click path. Supported by Claude, ChatGPT, Claude Code and any client that implements the MCP authorization spec. Nothing to copy or paste; revoke it from the app. The consent screen pre-selects the scopes the client asked for (all three when it asked for none), and you can untick any but read. The server advertises PKCE (S256), Client ID Metadata Documents, Dynamic Client Registration and RFC 9728 resource metadata, so clients discover everything they need from https://api.mencoro.com/.well-known/oauth-protected-resource/mcp. Calling a tool the connection lacks the scope for answers 403 insufficient_scope naming the scopes to request, so a client that supports step-up authorization asks you to reconnect with the extra permission.

Personal access token — for CLI clients, config files, and this bridge. Create one at tool.mencoro.com/me/mcp-server; it is shown once, starts with mcp_pat_, carries the permissions you tick (all three by default), and can be pinned to a single organization and given an expiry. Send it as Authorization: Bearer mcp_pat_…. A call the token lacks the permission for fails with a tool error naming it; a token cannot be upgraded, so create a new one to add a permission.

Connections and tokens created before write access existed have read and write but not organization:manage.

ChatGPT cannot send a custom Authorization header to a remote connector — use OAuth there.

Client configuration

{
  "mcpServers": {
    "mencoro": {
      "url": "https://api.mencoro.com/mcp",
      "headers": { "Authorization": "Bearer mcp_pat_your_token" }
    }
  }
}
{
  "servers": {
    "mencoro": {
      "type": "http",
      "url": "https://api.mencoro.com/mcp",
      "headers": { "Authorization": "Bearer mcp_pat_your_token" }
    }
  }
}
[mcp_servers.mencoro]
url = "https://api.mencoro.com/mcp"
http_headers = { "Authorization" = "Bearer mcp_pat_your_token" }
{
  "mcpServers": {
    "mencoro": {
      "httpUrl": "https://api.mencoro.com/mcp",
      "headers": { "Authorization": "Bearer mcp_pat_your_token" }
    }
  }
}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mencoro": {
      "type": "remote",
      "url": "https://api.mencoro.com/mcp",
      "enabled": true,
      "headers": { "Authorization": "Bearer mcp_pat_your_token" },
      "oauth": false
    }
  }
}

oauth: false stops OpenCode negotiating OAuth against an endpoint that also advertises it, which would otherwise override the token you just configured.

{
  "mcpServers": {
    "mencoro": {
      "serverUrl": "https://api.mencoro.com/mcp",
      "headers": { "Authorization": "Bearer mcp_pat_your_token" }
    }
  }
}
{
  "mcpServers": {
    "mencoro": {
      "type": "http",
      "url": "https://api.mencoro.com/mcp",
      "headers": { "Authorization": "Bearer ${MENCORO_API_KEY}" }
    }
  }
}

Tools

31 tools read and 35 change something. Every tool declares all four MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) explicitly, so a client can decide what to ask you before calling it.

Reading

Every read tool needs only the read scope.

Tool

What it answers

list_projects

The organizations and active projects you can see. Call this first — every other tool needs the ids it returns.

get_project

One project's status, website domains, brand names and competitors with their ids.

list_clusters

A project's keyword clusters, by name, with their ids.

get_available_filters

Which engines, countries, keyword clusters and competitors a project actually has.

get_metric_glossary

Maps everyday wording ("visibility", "tone", "ranking") onto the right metric and tool.

get_organization_overview

Current-state board across every active project in an organization, ranked by Share of Voice.

get_organization

An organization's profile, status, your role in it, and its member, project and invitation counts.

list_members

An organization's members with their role and state, optionally with pending invitations. Owners only.

get_usage

The subscription, tracked-query count and projected monthly checks, against the plan's limits.

get_project_rank_tracking_stats

The project summary: positions, trends, Share of Voice per competitor, sentiment split, mention/SERP/shopping rates.

get_rank_tracking_time_series

Those metrics over time, bucketed daily, weekly or monthly, optionally per competitor.

get_tracked_query_time_series

The same history for one tracked query.

get_query_movers

The tracked queries that gained or lost the most versus the previous period.

get_cluster_breakdown

The same metrics broken down per keyword cluster.

search_tracked_queries

Search and paginate a project's tracked queries with their latest positions.

get_tracked_query

One tracked query's settings: text, engine, country, status, frequency, passes, clusters and last check.

list_keyword_listings

One row per query text across its engine and country variants, with every metric, sortable.

get_tracking_coverage

What is stale: paused, never-checked and overdue tracked queries.

get_sentiment_breakdown

Positive / neutral / negative split of your AI mentions, per engine and per competitor.

get_mention_mix

Mention counts by type, tone and qualifier — the inputs behind the Share of Voice weighting.

get_mention_samples

The raw AI mention texts, paginated and filterable, for qualitative review.

get_share_of_voice_formula

The weights and multipliers the Share of Voice score is built from.

get_competitor_cooccurrence

Head-to-head: when you and a competitor appear in the same answer, who is named higher.

get_cited_sources

The domains and pages the answer engines cited, with counts and average citation rank.

list_ai_responses

The captured AI answers themselves: full text, engine, capture time and cited sources.

list_search_snapshots

The captured Google Search and Shopping result pages.

get_tracked_query_matches

Every mention or ranking behind one tracked query's metrics.

get_job

Progress and result of a background job started by a discovery or clustering tool.

preview_operation

What a confirmable change would affect and cost, plus the one-time token to run it.

list_untracked_competitors

Brands the AI answers name that you do not track yet, most-seen first: the competitors worth adding.

get_mencoro_guide

The public Mencoro guide: how checks, mentions and every metric work, plans, reliability, this server, analysis advice, pairing with Ahrefs, Semrush, Search Console or Google Analytics servers. No credential needed.

Changing things

A tool marked C needs a confirmation: call preview_operation with the tool's name and arguments, show the plan to the user, and call the tool with the returned confirmationToken only after they agree. The token is single-use, expires after a few minutes, and is refused if anything the plan described has changed. Creating tools, job starters and confirmable tools also accept a requestId: a retry with the same one returns the first result instead of doing the work twice.

Tool

Scope

What it does

create_project

write

Create a project from brand names and domains.

update_project

write

Rename a project, or replace its website domains and brand names.

archive_project

write

C

Archive a project; its tracked queries stop being checked.

restore_project

write

Bring an archived project back.

create_competitor

write

Add a competitor to a project.

update_competitor

write

Replace a competitor's name, website domains and brand names.

delete_competitor

write

C

Remove a competitor with every mention and search or shopping result recorded for it.

create_tracked_queries

write

C

Add tracked queries in bulk across engines and countries; the preview shows the checks they will spend.

pause_tracked_queries

write

Pause up to 100 tracked queries; skipped checks are not made up.

resume_tracked_queries

write

Resume up to 100 paused tracked queries.

set_tracked_query_check_frequency

write

Change how often up to 100 tracked queries are checked.

set_tracked_query_passes

write

Change how many answers each check of up to 100 tracked queries captures.

delete_tracked_queries

write

C

Delete up to 100 tracked queries with their captured answers, matches and history.

run_checks

write

C

Check tracked queries now, spending budget.

report_ai_response

write

Flag a captured AI answer that was analysed wrong.

create_clusters

write

Create keyword clusters.

rename_cluster

write

Rename a cluster.

delete_cluster

write

C

Delete a cluster; its tracked queries stay.

add_tracked_queries_to_clusters

write

Add tracked queries to clusters.

remove_tracked_queries_from_clusters

write

Remove tracked queries from clusters.

start_auto_clustering

write

Start a job that proposes a clustering.

apply_auto_clustering

write

Apply a proposal the user approved.

suggest_brand_names

write

Start a job that suggests brand names for a website.

discover_brands

write

Start a job that finds other names a project's brand and its competitors go by.

discover_keywords

write

Start a job that proposes search keywords worth tracking.

discover_prompts

write

Start a job that proposes AI prompts worth tracking.

create_organization

organization:manage

C

Create an organization.

update_organization

organization:manage

C

Change an organization's name, description or contact email.

archive_organization

organization:manage

C

Archive an organization.

restore_organization

organization:manage

C

Restore an archived organization.

invite_member

organization:manage

C

Invite someone by email with a role and, optionally, the projects they will reach.

cancel_invitation

organization:manage

C

Cancel a pending invitation.

change_member_role

organization:manage

C

Give a member another role.

set_member_project_access

organization:manage

C

Limit a member to selected projects, or give them every project back.

suspend_member

organization:manage

C

Suspend a member, taking their access away.

reactivate_member

organization:manage

C

Give a suspended member their access back.

A change is refused exactly where the Mencoro app refuses it: your role in the organization, an archived project, or a missing subscription where the app requires one.

Dates are ISO YYYY-MM-DD and must fall inside the retention window. Positions are 1-based and lower is better; every other metric improves as it rises.

The live definitions — names, descriptions, input and output schemas, annotations — are readable without a credential at https://api.mencoro.com/public/v1/mcp, a discovery-only mount of the same server that answers initialize, ping, tools/list, prompts/list and the public guide (get_mencoro_guide), and refuses everything else. Calling any other tool requires signing in at https://api.mencoro.com/mcp.

Prompts

Twenty ready-made starting points, surfaced by clients that support MCP prompts. Twelve ask about your data:

brand_ai_overview · whats_changed · organization_overview · top_queries · biggest_movers · query_history · competitor_standing · head_to_head · negative_mentions · cited_sources · coverage_health · sov_explainer

Four script a change step by step, stopping for your approval where it matters:

Prompt

Workflow

set_up_project

Start monitoring a brand from its website in a short conversation: one proposal with brand names and suggested competitors before anything is created, then the first prompts to track, then the other brands the answers name.

expand_query_set

Find new prompts or keywords worth tracking and add the ones you pick.

reorganise_clusters

Let Mencoro propose a clustering, review it, and apply it.

tune_tracking_costs

Review what each tracked query costs in checks and change frequency, passes or status to fit the plan.

Four turn the data into decisions:

Prompt

Analysis

visibility_report

A structured report for a period against the previous one, ending with recommended actions.

results_review

Whether a change (content, PR, a launch) moved visibility, before and after against a baseline.

optimization_opportunities

A prioritised list of what to improve: where competitors win, sources to be present on, sentiment and coverage gaps.

cross_source_analysis

Mencoro together with the Ahrefs, Semrush, Search Console or Google Analytics servers your assistant has connected. Mencoro has no integration with them; the assistant calls each with your own account.

ChatGPT submission and skills

chatgpt-app-submission.json contains the app submission metadata, tool annotation justifications, and review test cases. Keep its tool descriptions and justifications aligned with the hosted server when capabilities change.

Ten optional skills turn the tools into reusable workflows. ChatGPT does not surface MCP prompts, so these are how its users get the same guided flows.

Six analyse, and change nothing:

  • Visibility report: performance summaries, trends, and query gains or losses.

  • Competitor analysis: share of voice and head-to-head comparisons.

  • Sentiment review: sentiment breakdowns with attributed mention excerpts.

  • Coverage audit: current monitoring coverage and stale queries.

  • Results review: whether a change moved AI visibility, before and after against a baseline.

  • Optimization insights: a prioritised list of what to improve, optionally with connected Ahrefs, Semrush, Search Console or Google Analytics tools.

Four make changes, each only after the user approves it, and need the write scope:

  • Project setup: a monitored project from a website in a short conversation, with brand names and suggested competitors proposed before anything is created.

  • Query expansion: new prompts or keywords worth tracking, added as the user picks them.

  • Cluster reorganisation: a proposed clustering, reviewed and applied.

  • Cost tuning: frequency, pass and pause changes that bring check spend within the plan.

In the submission portal's Skills step, upload each skill folder under skills/, or a ZIP containing that folder. Include both SKILL.md and agents/openai.yaml; the latter declares the existing Mencoro MCP connection. Users need to connect their Mencoro account through OAuth. These skills require no additional backend endpoint or local executable.

The portal stores an uploaded snapshot. Upload revised bundles when instructions change, and test each workflow with a connected account before submitting the app. See the OpenAI skills guide.

The bridge

Run it

export MENCORO_API_KEY=mcp_pat_your_token
npx -y @mencoro/mcp            # serve on stdio
npx -y @mencoro/mcp doctor     # check the endpoint, the token, and list the tools

Docker

docker run --rm -i -e MENCORO_API_KEY=mcp_pat_your_token ghcr.io/mencoro/mencoro-mcp

-i is required and -t must be omitted: the MCP transport is this process's stdin and stdout.

Options

MENCORO_API_KEY

Personal access token. Without it the bridge still starts and still advertises the full catalogue; get_mencoro_guide answers from the public guide, and every other tool answers with setup instructions instead of data.

MENCORO_MCP_URL

Upstream endpoint. Defaults to https://api.mencoro.com/mcp.

--url <url>

Same, as an argument.

--header "Name: value"

Extra HTTP header, repeatable. An Authorization header here overrides MENCORO_API_KEY.

doctor

Connect once, print the server version, negotiated protocol, tool and prompt catalogue, then exit.

--help, --version

What it actually does

It splices your client's stdio transport onto a Streamable HTTP transport and forwards every JSON-RPC frame verbatim, in both directions. The only frame it looks inside is the handshake — enough to echo the negotiated protocol version back upstream and to rebuild the session if the server evicts it, which a deploy or a scale-down will do. It knows no other method, so it cannot drift from the server: tools, prompts, resources, completions, progress notifications and anything added later all pass straight through.

Without a credential

The bridge starts anyway, serving catalog.json — a committed copy of what the hosted server advertises — plus a mencoro_setup tool. So npx -y @mencoro/mcp introspects to the same tools and prompts a credentialed run does, and anything that scans the package sees a real catalogue rather than a server that looks empty. Calling one of those tools returns the setup instructions as an error; it never returns invented data. The exception is get_mencoro_guide, which reads only published material: the bridge forwards it to the hosted server's anonymous endpoint and returns the real answer.

npm run sync:catalog refreshes the file from the anonymous catalogue endpoint, and npm run check:catalog fails if the committed copy has fallen behind. A scheduled workflow runs the check weekly, because the catalogue it mirrors lives in another repository and nothing in a pull request here would notice it drifting.

Limits

Access

read always; write and organization:manage only when granted, and never beyond your own role. Confirmable changes run only with a token from preview_operation.

Batches

Tools that act on tracked queries or clusters by id take at most 100 per call (500 for start_auto_clustering); each tool's input schema states its limits.

Retention

Up to 16 months of history; dates outside the window are rejected.

Transport

Streamable HTTP.

Rate limiting

Repeatedly presenting an invalid credential is rate limited per IP.

Result size

Large result sets are paginated; ask for a narrower window or a coarser granularity if a client truncates.

Repository contents

src/, test/

The stdio bridge published as @mencoro/mcp.

catalog.json

What the hosted server advertises, served by the bridge when it has no credential.

scripts/

Manifest and catalogue checks run by CI.

server.json

The MCP registry manifest.

glama.json

Glama directory ownership metadata.

chatgpt-app-submission.json

ChatGPT app submission metadata and tool justifications.

skills/

Ten reusable Mencoro workflows for ChatGPT: six analyses and four guided changes.

Dockerfile

The image published to ghcr.io/mencoro/mencoro-mcp.

assets/, logo.png

Brand assets used by directory listings.

Development

npm ci
npm run typecheck
npm test            # builds first, then runs the suite
npm run check:manifests
npm run check:catalog   # asks the hosted server whether catalog.json is still current

Tests run the TypeScript sources directly through Node's type stripping, so development needs Node 22.18 or newer. The published package targets Node 22+, which CI verifies separately against the built artifact.

Releases are cut by tagging. npm version <patch|minor|major>, mirror the new version into server.json (.version, the npm package entry, and the image tag), run npm run check:manifests, then push the tag — CI publishes to npm, GHCR and the MCP registry, in that order, then creates the GitHub release, which is what Glama builds a new version from.

Support

Licence

MIT. See LICENSE.

The Mencoro name, logo and brand assets in assets/ are trademarks of Mencoro and are not covered by that licence.

Available Tools

68 tools
add_tracked_queries_to_clustersAdd tracked queries to clustersB
Idempotent
Inspect

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).

apply_auto_clusteringApply a proposed clusteringA
Destructive
Inspect

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.

archive_organizationArchive an organizationA
Destructive
Inspect

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.

archive_projectArchive a projectA
Destructive
Inspect

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.

cancel_invitationCancel an invitationA
Destructive
Inspect

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.

change_member_roleChange a member's roleA
Destructive
Inspect

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.

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.

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.

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.

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 you suggest with their websites (no tool finds competitors; suggest_brand_names finds the names each one goes by). 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.

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.

delete_clusterDelete a query clusterA
Destructive
Inspect

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.

delete_competitorDelete a competitorA
Destructive
Inspect

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.

delete_tracked_queriesDelete tracked queriesA
Destructive
Inspect

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.

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.

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.

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.

get_available_filtersGet available project filtersA
Read-onlyIdempotent
Inspect

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).

get_cited_sourcesCited domains and pagesA
Read-onlyIdempotent
Inspect

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.

get_cluster_breakdownRank tracking by keyword clusterA
Read-onlyIdempotent
Inspect

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.

get_competitor_cooccurrenceCompetitor co-occurrence (head-to-head)A
Read-onlyIdempotent
Inspect

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.

get_jobGet a background jobA
Read-onlyIdempotent
Inspect

The status and, once completed, the result of a background job started by discover_brands, suggest_brand_names, 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).

get_mencoro_guideMencoro guideA
Read-onlyIdempotent
Inspect

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.

get_mention_mixAI mention mix (type/tone/qualifier)A
Read-onlyIdempotent
Inspect

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.

get_mention_samplesSample AI mention textsA
Read-onlyIdempotent
Inspect

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.

get_metric_glossaryMetric glossaryA
Read-onlyIdempotent
Inspect

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).

get_organizationGet an organizationA
Read-onlyIdempotent
Inspect

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).

get_organization_overviewOrganization brand overviewA
Read-onlyIdempotent
Inspect

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).

get_projectGet a projectB
Read-onlyIdempotent
Inspect

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).

get_project_rank_tracking_statsProject rank-tracking overviewA
Read-onlyIdempotent
Inspect

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.

get_query_moversBiggest tracked-query moversA
Read-onlyIdempotent
Inspect

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.

get_rank_tracking_time_seriesRank-tracking time seriesA
Read-onlyIdempotent
Inspect

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.

get_sentiment_breakdownAI mention sentiment breakdownA
Read-onlyIdempotent
Inspect

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.

get_share_of_voice_formulaShare-of-voice formula constantsB
Read-onlyIdempotent
Inspect

The constants behind the share-of-voice score: per-mention-type base weights and tone/qualifier multipliers. Use this to explain how the share-of-voice metric is derived. Global (not project-specific), but scoped to a project you can access.

Inputs: projectId (required), organizationId (required).

get_tracked_queryGet a tracked queryB
Read-onlyIdempotent
Inspect

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).

get_tracked_query_matchesGet a tracked query's matchesA
Read-onlyIdempotent
Inspect

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.

get_tracked_query_time_seriesSingle tracked-query time seriesA
Read-onlyIdempotent
Inspect

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.

get_tracking_coverageTracking coverage & stalenessA
Read-onlyIdempotent
Inspect

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).

get_usageGet plan and usageA
Read-onlyIdempotent
Inspect

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).

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.

list_ai_responsesList captured AI answersA
Read-onlyIdempotent
Inspect

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.

list_clustersList query clustersC
Read-onlyIdempotent
Inspect

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.

list_keyword_listingsList keyword performanceA
Read-onlyIdempotent
Inspect

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.

list_membersList organization membersA
Read-onlyIdempotent
Inspect

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.

list_projectsList organizations and projectsA
Read-onlyIdempotent
Inspect

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.

list_search_snapshotsList captured search resultsA
Read-onlyIdempotent
Inspect

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.

list_untracked_competitorsBrands the AI answers name that you do not trackA
Read-onlyIdempotent
Inspect

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.

mencoro_setupMencoro setup instructionsA
Read-onlyIdempotent
Inspect

Explain how to finish connecting this bridge to Mencoro. The bridge has no API token, so no project, ranking, mention or share-of-voice data can be read until one is configured.

Inputs: no named parameters.

pause_tracked_queriesPause tracked queriesA
DestructiveIdempotent
Inspect

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).

preview_operationPreview an operation before running itA
Read-only
Inspect

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).

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.

remove_tracked_queries_from_clustersRemove tracked queries from clustersA
DestructiveIdempotent
Inspect

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).

rename_clusterRename a query clusterA
Idempotent
Inspect

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).

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.

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.

restore_projectRestore an archived projectA
Idempotent
Inspect

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).

resume_tracked_queriesResume tracked queriesA
Idempotent
Inspect

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).

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.

search_tracked_queriesSearch tracked queriesA
Read-onlyIdempotent
Inspect

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.

set_member_project_accessSet a member's project accessA
Destructive
Inspect

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.

set_tracked_query_check_frequencySet how often tracked queries are checkedA
DestructiveIdempotent
Inspect

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).

set_tracked_query_passesSet how many answers each check capturesA
DestructiveIdempotent
Inspect

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).

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.

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.

suspend_memberSuspend a memberA
Destructive
Inspect

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.

update_competitorUpdate a competitorA
DestructiveIdempotent
Inspect

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.

update_organizationUpdate an organizationA
DestructiveIdempotent
Inspect

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.

update_projectUpdate a projectA
DestructiveIdempotent
Inspect

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. Safe to retry.

Inputs: projectId (required), organizationId (required), name, brandProfile.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 68 tools

    Disambiguation4/5

    The descriptions are unusually strong and explicitly cross-reference related tools, so most boundaries are clear. Still, the analytics surface has several closely related tools (project stats, time series, movers, keyword listings, mention samples/mix), and the sheer size increases misselection risk.

    Naming Consistency4/5

    Almost all tools follow a predictable snake_case verb_noun pattern (list_, get_, create_, update_, delete_, set_, archive_, restore_, etc.). The main outlier is mencoro_setup, with a few noun-first or setup-style names, but the convention is otherwise very readable.

    Tool Count2/5

    68 tools is far beyond a practical MCP tool surface for an agent, even for a broad platform. Many tools are specialized and earn a place in the product, but the overall count creates a heavy context and selection burden.

    Completeness4/5

    Coverage is extensive across organizations, projects, members, competitors, clusters, tracked queries, analytics, jobs, usage, and guidance. Minor gaps remain, such as full deletion/removal flows for some resources and broader cluster update operations, but archive/suspend workflows largely cover lifecycles.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables 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.
      16
      9 npm
      1
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables AI agents to check brand mentions across AI search surfaces like ChatGPT, Claude, Gemini, Perplexity, and Google AI Overviews using natural language queries.
      4
      14 npm
      1
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to monitor and analyze a brand's visibility across ChatGPT, Claude, Perplexity, and Google AI Overviews, providing insights, recommendations, and competitive analysis without switching tabs.
      25
      806 npm
      1
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables querying a brand's visibility in AI assistant answers, including competitor presence, tracked prompts, and the answers and sources behind the metrics.
      60
      MIT