---
title: "Tools"
description: "All 55 MCP tools by area, with what each one does."
canonical: https://docs.rumoro.dev/mcp/tools
markdown: https://docs.rumoro.dev/mcp/tools.mdx
---

# Tools

All 55 MCP tools by area, with what each one does.

The server has 55 tools. Inputs, validation and responses match the REST API (see [Conventions](/conventions)), with four differences. `search_mentions` returns `{ "data", "hasMore" }` and no cursor, so an agent narrows its filters instead of paging. Delete tools return `{ "id", "deleted": true }`. `split_person` returns `{ "id", "unlinked" }`. `log_activity` returns the activity and the person.

A `read` key or OAuth grant lists only the read tools. Annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`) tell a client which calls to confirm with you. Wrong arguments return JSON-RPC error `-32602` naming the first problem.

## Mentions

| Tool | Access | What it does |
| --- | --- | --- |
| `search_mentions` | read | Find mentions by keyword, keyword kind or group, platform, status, relevance, confidence, sentiment, intent, language, text (`q`), time, person, assignee, followers, engagement, review stars, author tags, linked hosts, replies, bots (`automated`), an alert (`alertId`) or a saved view (`viewId`). `not` lists exclude and `anyOf` adds OR groups. Snoozed mentions stay hidden unless `snoozed` is true. `sort` is `newest` or `priority` (past 30 days). Returns 10 by default and up to 100 with `limit`. |
| `get_mention` | read | Fetches one mention, classification included (relevance, sentiment, intents, confidence, uncertain, note). |
| `update_mention` | write | Handle a mention with `status` (`open`, `ignored`, `done`), `assigneeId`, `snoozedUntil` and `note`, or correct the classifier with `relevant` and `sentiment`. `null` clears a field, and fields you leave out stay as they are. |
| `get_mention_stats` | read | Returns mention counts for the past N days (7 by default), by platform and by sentiment. |

## Keywords and filters

| Tool | Access | What it does |
| --- | --- | --- |
| `list_keywords` | read | Your keywords with stats, polling status, matching rules and context. Filter by text, kind, status, platform or group, in pages. |
| `get_keyword` | read | A keyword by id with its settings, monthly cap (`pausedForCap`), stats and polling status per platform. |
| `get_keyword_health` | read | Shows whether a keyword is worth its cost over `range` (`7d`, `30d`, `90d`). Returns a status with reasons, noise by platform and week, the cost, and suggestions with a `patch` you can pass to `update_keyword`. `ai: true` adds a rewritten context. |
| `add_keyword` | write | Start monitoring a keyword with `kind` (`brand`, `competitor`, `topic`), `platforms`, `matching` rules, a classifier `context`, a monthly `cap`, a `groupId` and `reviewSources` (App Store, Google Play, Trustpilot, Google Maps). |
| `update_keyword` | write | Change a keyword's platforms, mute, `kind`, `context`, `matching` rules, `cap`, group or review sources. Rules only affect new mentions. |
| `delete_keyword` | write, destructive | Delete a keyword and its mentions. This cannot be undone, and muting keeps the mentions. |
| `get_filters` | read | The noise filters every keyword goes through before a mention is stored. They cover excluded terms, authors and GitHub repositories, and allowed or blocked subreddits. |
| `update_filters` | write | Change the workspace filters. A list you leave out stays as it is, and an empty list clears it. |

## Groups

| Tool | Access | What it does |
| --- | --- | --- |
| `list_groups` | read | Lists the workspace's keyword groups, the default first. |
| `get_group` | read | Returns a keyword group by id, with its number of keywords. |
| `create_group` | write | Create a keyword group with a `name`, an optional `externalId` (your own id, such as a client's) and an optional `context`, a company description the classifier reads instead of the workspace profile for this group's keywords. |
| `update_group` | write | Rename a group or change its `externalId` or `context`. `null` clears a field. The default group takes no context. |
| `delete_group` | write, destructive | Delete a keyword group with all its keywords and their mentions. The default group cannot be deleted. |

## Company

| Tool | Access | What it does |
| --- | --- | --- |
| `get_company` | read | What the classifier knows about the company, with the profile, own accounts and the `context` text it reads to score relevance. |
| `update_company` | write | Change the company profile (`name`, `description`, `useCases`, `accounts`) or set the classifier `context` yourself. |

## Workspace and usage

| Tool | Access | What it does |
| --- | --- | --- |
| `whoami` | read | Returns the workspace this credential works in, the kind of credential (an API key or an OAuth sign-in), whether it can write, and the signed-in user if there is one. |
| `list_members` | read | Lists workspace members with their role (owner, admin, member), email and user id. |
| `get_usage` | read | The prepaid balance, daily spend and days left, running and paused keywords, matches today and over 30 days, and whether tracking is stopped or the balance is low. |
| `get_usage_breakdown` | read | Usage and charges in US cents over a `range` (`7d`, `30d`, `90d`) or a calendar `month`, grouped `by` keyword, group, platform or day, with totals. In pages. |
| `list_ledger` | read | All changes to the prepaid balance, latest first. Welcome credit, top-ups, refunds, daily debits and adjustments, in pages. |

## Analytics

Each of the five reads one period, set with `range` (`7d`, `30d`, `90d`, `365d`) or with `from` and `to`. They also take `keywordIds`, `platforms`, `timezone` (IANA, UTC by default) and `compare`, which adds the period just before.

| Tool | Access | What it does |
| --- | --- | --- |
| `get_analytics_summary` | read | The main counts. Matched and relevant mentions, posts and people, sentiment, buying intent and questions, estimated reach, and triage. |
| `get_analytics_series` | read | Counts per hour, day, week or month (`bucket`), as one series or split `by` platform, keyword or sentiment. |
| `get_analytics_breakdown` | read | A table grouped `by` platform, keyword, sentiment, intent, status, hour, person or language, up to 50 rows. |
| `get_share_of_voice` | read | Your brand compared with competitors. Each keyword's counts and its part of all brand and competitor matches. |
| `get_reviews_report` | read | App Store, Google Play, Trustpilot and Google reviews. Totals, star distribution, tags of unhappy reviews, and average stars per review page over time. |

## Alerts, channels and attention

[Alerts](/alerts) explains alerts and channels, and [Webhooks](/webhooks) the payloads.

| Tool | Access | What it does |
| --- | --- | --- |
| `list_alerts` | read | All alerts with their filter, mode, schedule and channels. |
| `get_alert` | read | Fetches an alert by id. |
| `create_alert` | write | Create an alert. `mode` is `instant`, `hourly` (no email channel), `daily` at `schedule.hour` in `schedule.timezone`, or `weekly` on `schedule.weekday`. The `filter` can use keywords, platforms, relevance, sentiment, intent, authors, followers, tags or linked hosts. `channelIds` come from `list_channels`. |
| `update_alert` | write | Changes an alert's name, enabled, mode, schedule, filter or channelIds. filter and channelIds are replaced in full. |
| `delete_alert` | write, destructive | Delete an alert. Its channels remain. |
| `mute_authors` | write | Adds authors to an alert's muted list and keeps the rest of the filter. |
| `unmute_authors` | write | Takes authors off an alert's muted list and keeps the rest of the filter. |
| `list_channels` | read | Lists alert destinations (Slack channels, Telegram chats, email lists, webhooks). |
| `list_attention` | read | What someone should look at now. A mention spike, a jump in negative sentiment, a keyword that became noisy, or a failing channel. Open items by default. |
| `dismiss_attention` | write | Moves an attention item (att_... from list_attention) out of the open list for as long as its condition lasts. |

## People

| Tool | Access | What it does |
| --- | --- | --- |
| `list_people` | read | The authors of your mentions, with counts, sentiment and outreach. Filter by platform, name, handle, segment, stage, owner or bots, and sort by mentions or recency. |
| `get_person` | read | A person with counts, tags, notes, outreach and public profile. `profile.email` is always null. |
| `update_person` | write | Changes your workspace's details on a person. |
| `merge_people` | write, destructive | Tells your workspace that two accounts are the same individual by merging account `id` into person `into`. |
| `split_person` | write | Reverses a merge, so the account is a separate person again in your workspace. |
| `list_activities` | read | The outreach log for one person, latest first, with who reached out, the channel, the time and a note. |
| `log_activity` | write | Record that someone contacted a person. If the person has no owner, the first contact sets one and moves them to `contacted`. |
| `delete_activity` | write, destructive | Deletes an outreach activity that was logged by mistake. |

## Segments and views

| Tool | Access | What it does |
| --- | --- | --- |
| `list_segments` | read | Saved audience segments with their current size, plus presets for `create_segment`. |
| `create_segment` | write | Save an audience segment with a name and a filter on platforms, tags, followers, mention counts, intents, keyword kinds, first seen or linked hosts. Members are worked out on each read. |
| `update_segment` | write | Changes a saved segment's name, description or filter. |
| `delete_segment` | write, destructive | Deletes a saved segment. |
| `list_views` | read | Saved views, which are named mention filters. Pass an id as `viewId` to `search_mentions`. |
| `create_view` | write | Save a view with a name and a `search_mentions` filter, including `not` lists and `anyOf`. It shows whatever matches when read. |
| `update_view` | write | Changes a saved view's name, description or filter. |
| `delete_view` | write, destructive | Deletes a saved view and leaves its mentions untouched. |
