Mencoro
OCI · GHCR.IO/MENCORO/MENCORO-MCP · 3 COMPONENTS
Track and manage how your brand appears in AI answers: rank, mentions, sentiment, share of voice.
Available components
Last scanned (7 hours ago)
Scores higher than 85% of OCI servers
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 5 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 10863 tokens (~159/item across 68 items; 68 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management91
- Stability check failed: the tool surface changed between 1.1.0 and 2.0.0: 3 tool removals, 1 breaking changes, 10 additions. See how to fix → Fail
Tool Coverage73
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 20% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 88 to 91.
- 4 Nov 26 −1
No change was recorded against any check on this day. Stability & Change Management went from 94 to 88.
- 30 Oct 26 −1
- Stability: pass → fail ▼ security
- Schema quality: 9270 → 10863 ▼ functional
- Package version: 1.1.0 → 2.0.0 functional
- 29 Oct 26 +1
- Stability: 0.97 → pass security
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed oci/ghcr.io/mencoro/mencoro-mcp@2.0.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_tracked_queries_to_clusters Add tracked queries to clusters ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
apply_auto_clustering Apply a proposed clustering ~220
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.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
archive_organization Archive an organization ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
archive_project Archive a project ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
No output schema declared.
No examples provided.
cancel_invitation Cancel an invitation ~134
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| invitationId | string | yes | – |
| organizationId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
change_member_role Change a member's role ~149
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| memberId | string | yes | – |
| organizationId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
| role | string | yes | – |
No output schema declared.
No examples provided.
create_clusters Create query clusters ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| names | array | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
create_competitor Add a competitor ~143
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandNames | array | yes | – |
| name | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
| websiteDomains | array | yes | – |
No output schema declared.
No examples provided.
create_organization Create an organization ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| name | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
create_project Create a project ~237
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandNames | array | yes | The names the brand is mentioned by, e.g. ["Acme", "Acme Corp"] |
| competitors | array | – | – |
| name | string | yes | – |
| organizationId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
| websiteDomains | array | yes | The brand's own domains, e.g. ["acme.com"] |
No output schema declared.
No examples provided.
create_tracked_queries Create tracked queries ~303
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.
| Name | Type | Req | Description |
|---|---|---|---|
| checkFrequency | string | yes | – |
| confirmationToken | string | yes | – |
| countries | array | yes | ISO 3166-1 alpha-2 codes, e.g. ["US", "ES"] |
| engines | array | yes | – |
| locale | null|string | – | Optional two-letter language the engines should answer in |
| nPasses | integer | yes | Answers captured per check; more than 1 only for AI engines. Each pass counts as one check against your plan; a Claude pass counts as five. |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | – |
| queryTexts | array | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
delete_cluster Delete a query cluster ~109
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.
| Name | Type | Req | Description |
|---|---|---|---|
| clusterId | string | yes | – |
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
No output schema declared.
No examples provided.
delete_competitor Delete a competitor ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| competitorId | string | yes | – |
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
No output schema declared.
No examples provided.
delete_tracked_queries Delete tracked queries ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
discover_brands Discover more brand names ~185
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).
| Name | Type | Req | Description |
|---|---|---|---|
| country | null|string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
| shoppingEnabled | boolean | – | – |
No output schema declared.
No examples provided.
discover_keywords Discover search keywords ~147
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.
| Name | Type | Req | Description |
|---|---|---|---|
| country | null|string | – | – |
| excludeQueries | array | – | – |
| input | string | yes | – |
| language | null|string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
discover_prompts Discover AI prompts ~150
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.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | – |
| excludeQueries | array | – | – |
| input | string | yes | – |
| language | null|string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
No output schema declared.
No examples provided.
get_available_filters Get available project filters ~137
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_cited_sources Cited domains and pages ~259
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".
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode (only AI engines carry citations) |
| groupBy | string | – | "domain" to roll up by host, "page" to roll up by exact URL |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_cluster_breakdown Rank tracking by keyword cluster ~258
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".
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| includeUngroupedQueries | boolean | – | Sent alone, returns only the ungrouped row: the tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds that row to those clusters. Omit both for every… |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | restrict to these keyword clusters |
No output schema declared.
No examples provided.
get_competitor_cooccurrence Competitor co-occurrence (head-to-head) ~269
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".
| Name | Type | Req | Description |
|---|---|---|---|
| competitorId | – | – | optional competitor UUID to focus on a single rival; competitor UUIDs are listed by get_available_filters (competitors[].id) |
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode (SERP/Shopping have no AI text mentions) |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_job Get a background job ~142
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.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | – |
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
get_mencoro_guide Mencoro guide ~162
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.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | null|string | – | The topic to read; omit it, or pass "index", for the list of topics. |
No output schema declared.
No examples provided.
get_mention_mix AI mention mix (type/tone/qualifier) ~256
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".
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_mention_samples Sample AI mention texts ~291
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.
| Name | Type | Req | Description |
|---|---|---|---|
| competitorId | – | – | UUID of a single competitor to filter to; competitor UUIDs are listed by get_available_filters (competitors[].id). Omit to include all competitors |
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| limit | integer | – | – |
| mentionType | – | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sentiment | – | – | – |
| sortBy | string | – | – |
No output schema declared.
No examples provided.
get_metric_glossary Metric glossary ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
get_organization Get an organization ~64
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
get_organization_overview Organization brand overview ~145
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".
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
get_project Get a project ~62
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).
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_project_rank_tracking_stats Project rank-tracking overview ~278
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".
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| includeUngroupedQueries | boolean | – | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | restrict to these keyword clusters |
No output schema declared.
No examples provided.
get_query_movers Biggest tracked-query movers ~277
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".
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sortBy | string | – | which trend delta to rank by |
| sortOrder | string | – | desc for top gainers, asc for top losers |
No output schema declared.
No examples provided.
get_rank_tracking_time_series Rank-tracking time series ~305
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".
| Name | Type | Req | Description |
|---|---|---|---|
| competitorIds | array | – | UUIDs of competitors to add as extra series; competitor UUIDs are listed by get_available_filters (competitors[].id) |
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| granularity | string | – | – |
| includeUngroupedQueries | boolean | – | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | restrict to these keyword clusters |
No output schema declared.
No examples provided.
get_sentiment_breakdown AI mention sentiment breakdown ~277
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".
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping |
| includeUngroupedQueries | boolean | – | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | restrict to these keyword clusters |
No output schema declared.
No examples provided.
get_share_of_voice_formula Share-of-voice formula constants ~80
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_tracked_query Get a tracked query ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryId | string | yes | – |
No output schema declared.
No examples provided.
get_tracked_query_matches Get a tracked query's matches ~162
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | null|string | – | – |
| dateTo | null|string | – | – |
| kind | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sortOrder | string | – | – |
| trackedQueryId | string | yes | – |
No output schema declared.
No examples provided.
get_tracked_query_time_series Single tracked-query time series ~210
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".
| Name | Type | Req | Description |
|---|---|---|---|
| competitorIds | array | – | UUIDs of competitors to add as extra series; competitor UUIDs are listed by get_available_filters (competitors[].id) |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| granularity | string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryId | string | yes | a tracked query UUID from search_tracked_queries (items[].id) |
No output schema declared.
No examples provided.
get_tracking_coverage Tracking coverage & staleness ~135
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".
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
get_usage Get plan and usage ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
invite_member Invite a member ~251
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| string | yes | – | |
| organizationId | string | yes | – |
| projectAccess | object | – | Optional. The projects the invitee will reach once they accept: {"mode": "all"}, the default, or {"mode": "selected", "projectIds": [...]} with 1 to 500 distinct project ids of this organization from… |
| requestId | null|string | – | Optional idempotency key, 8-255 printable characters. Reuse it only to retry this same call. |
| role | string | yes | – |
No output schema declared.
No examples provided.
list_ai_responses List captured AI answers ~153
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | null|string | – | – |
| dateTo | null|string | – | – |
| engines | array | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sortOrder | string | – | – |
| trackedQueryId | null|string | – | – |
No output schema declared.
No examples provided.
list_clusters List query clusters ~67
A project's query clusters (the groups its tracked queries are organized in), by name, with their ids.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sortOrder | string | – | – |
No output schema declared.
No examples provided.
list_keyword_listings List keyword performance ~276
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.
| Name | Type | Req | Description |
|---|---|---|---|
| checkFrequencies | array | – | – |
| countries | array | – | – |
| dateFrom | string | yes | – |
| dateTo | string | yes | – |
| engines | array | – | – |
| includeUngroupedQueries | boolean | – | Sent alone, restricts to keywords with variants that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all keywords. |
| limit | integer | – | – |
| nPasses | array | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | – | – |
| search | null|string | – | – |
| sortBy | string | – | – |
| sortOrder | string | – | – |
| status | null|string | – | – |
No output schema declared.
No examples provided.
list_members List organization members ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| includeInvitations | boolean | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
No output schema declared.
No examples provided.
list_projects List organizations and projects ~46
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_search_snapshots List captured search results ~149
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | null|string | – | – |
| dateTo | null|string | – | – |
| kind | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| sortOrder | string | – | – |
| trackedQueryId | null|string | – | – |
No output schema declared.
No examples provided.
list_untracked_competitors Brands the AI answers name that you do not track ~248
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.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO-3166 alpha-2 country codes; a project's configured codes are listed by get_available_filters |
| dateFrom | null|string | – | – |
| dateTo | null|string | – | – |
| engines | array | – | allowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode (SERP/Shopping have no AI text mentions) |
| limit | integer | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
mencoro_setup Mencoro setup instructions ~49
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
pause_tracked_queries Pause tracked queries ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
preview_operation Preview an operation before running it ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| arguments | object | yes | The arguments the write tool would be called with, without confirmationToken and requestId. |
| tool | string | yes | – |
No output schema declared.
No examples provided.
How do I install the Mencoro MCP server?
Mencoro runs locally as a container image, launched with docker run --rm -i -e MENCORO_API_KEY ghcr.io/mencoro/mencoro-mcp:2.0.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · ghcr.io/mencoro/mencoro-mcp
claude mcp add com-mencoro-mencoro -- docker run --rm -i -e MENCORO_API_KEY ghcr.io/mencoro/mencoro-mcp:2.0.0
This image reads MENCORO_API_KEY. Set it in your client's env block for this server; docker run -e passes it through to the container.
What is the Mencoro MCP server?
Mencoro is an MCP server listed in the public MCP registry as com.mencoro/mencoro. Track and manage how your brand appears in AI answers: rank, mentions, sentiment, share of voice. This page covers its container image (ghcr.io/mencoro/mencoro-mcp).
Is the Mencoro MCP server safe to use?
Mencoro scores 52 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Mencoro MCP server expose?
Mencoro exposes 68 tools: mencoro_setup, add_tracked_queries_to_clusters, apply_auto_clustering, archive_organization, archive_project, and 63 more. Their descriptions and schemas cost roughly 10,803 tokens of context every time the server is loaded.
Is the Mencoro MCP server still maintained?
Mencoro is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Mencoro MCP server under?
Mencoro declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.