Mencoro
NPM · @MENCORO/MCP · 3 COMPONENTS
Track and manage how your brand appears in AI answers: rank, mentions, sentiment, share of voice.
Available components
Last scanned (5 hours ago)
Scores higher than 95% of npm 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 Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 3 of 14 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to mencoro/mencoro-mcp). View diagnostics → Pass
- 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
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.
- 3 Nov 26 −1
- Stability: pass → fail ▼ security
- 31 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- Schema quality: 9270 → 10863 ▼ functional
- Security disclosure: pass → unverified ▼ functional
- Package version: 1.1.0 → 2.0.0 functional
- 28 Oct 26 +1
- Stability: 0.97 → pass security
- 27 Oct 26 −1
- Stability: pass → 0.97 functional
- 17 Oct 26 +3
- Stability: 0.83 → pass security
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 npm/@mencoro/mcp@2.0.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | mencoro/mencoro-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/mencoro/mencoro-mcp/.github/workflows/release.yml@refs/tags/v2.0.0 |
| Rekor log index | 3595671629 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:21fe4e55468b0d8e9169cdc214e76f45845ca228bf0d1708d73d5d72cad5e2785196a3175a1e0b1c86602feefd7e39f8b7040d02a648bb94d32b7c96f |
Background: How many MCP packages publish verified provenance →
Dependencies 14 packages
| Packages resolved | 14 |
|---|---|
| Stale | 3 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
reactivate_member Reactivate a member ~140
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.
| 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. |
No output schema declared.
No examples provided.
remove_tracked_queries_from_clusters Remove tracked queries from clusters ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
| queryClusterIds | array | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
rename_cluster Rename a query cluster ~63
Rename a query cluster. The name is stored lower-cased and must be unique in the project. Safe to retry.
| Name | Type | Req | Description |
|---|---|---|---|
| clusterId | string | yes | – |
| name | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
report_ai_response Report a wrongly analysed AI answer ~121
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aiResponseId | string | yes | – |
| comment | null|string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
| trackedQueryId | string | yes | – |
| type | string | yes | – |
No output schema declared.
No examples provided.
restore_organization Restore an organization ~114
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.
| 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.
restore_project Restore an archived project ~50
Bring an archived project back: it reappears in the project list and its active tracked queries are checked again on their schedule.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
resume_tracked_queries Resume tracked queries ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
run_checks Check tracked queries now ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | – |
| confirmationToken | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| requestId | null|string | – | – |
| trackedQueryIds | array | – | – |
No output schema declared.
No examples provided.
search_tracked_queries Search tracked queries ~249
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".
| 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 |
| 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 | – |
| search | – | – | – |
| sortBy | string | – | – |
| sortOrder | string | – | – |
| status | – | – | – |
No output schema declared.
No examples provided.
set_member_project_access Set a member's project access ~262
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| memberId | string | yes | – |
| mode | string | yes | – |
| organizationId | string | yes | – |
| projectIds | array|null | – | The projects a "selected" access reaches: at least one and at most 500 distinct projects, all of this organization; a repeated id counts once. Leave it out for "all". |
| 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.
set_tracked_query_check_frequency Set how often tracked queries are checked ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| checkFrequency | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
set_tracked_query_passes Set how many answers each check captures ~115
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.
| Name | Type | Req | Description |
|---|---|---|---|
| nPasses | integer | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
start_auto_clustering Propose query clusters automatically ~180
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | 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. |
| restrictToExistingClusters | boolean | – | – |
| trackedQueryIds | array | yes | – |
No output schema declared.
No examples provided.
suggest_brand_names Suggest brand names ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| country | null|string | – | – |
| enteredBrandNames | array | – | Names the user already knows the brand by |
| 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 | – |
No output schema declared.
No examples provided.
suspend_member Suspend a member ~150
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.
| 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. |
No output schema declared.
No examples provided.
update_competitor Update a competitor ~128
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandNames | array | yes | – |
| competitorId | string | yes | – |
| name | string | yes | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
| websiteDomains | array | yes | – |
No output schema declared.
No examples provided.
update_organization Update an organization ~167
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmationToken | string | yes | – |
| contactEmail | null|string | – | – |
| description | null|string | – | – |
| name | null|string | – | – |
| 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.
update_project Update a project ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandProfile | object|null | – | Replaces the website domains and brand names the project is monitored for. |
| name | null|string | – | – |
| organizationId | string | yes | – |
| projectId | string | yes | – |
No output schema declared.
No examples provided.
How do I install the Mencoro MCP server?
Mencoro runs locally as an npm package, launched with npx -y @mencoro/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @mencoro/mcp
claude mcp add com-mencoro-mencoro -- npx -y @mencoro/mcp
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 npm package (@mencoro/mcp).
Is the Mencoro MCP server safe to use?
Mencoro scores 92 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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.