Skip to content

Rumoro

by rumoro.dev · remote · no sign-in to list tools · v1.0.1 · published by dev.rumoro

Track what people say about your product on Reddit, X, Hacker News, GitHub and more

Deletes · 7Changes · 21

57 tools: 7 can delete or cancel things, 21 change things and 29 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http rumoro https://mcp.rumoro.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn1 info
  • The server marks "list_mention_comments" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_mention_comments" says "list": a word for reading.

    What this check looks for
  • The server marks "log_activity" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_activity" says "log": a word for reading.

    What this check looks for
  • Infowhoami

    The description mentions "credential".

    Matched text

    description: "Returns the workspace this credential works in, the kind of credential (an AP..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

57 tools

Deletes or cancels 7Claude Code: deny
  • delete_activityDeletes an outreach activity that was logged by mistake.No findings

    Why it is in this group

    • The name "delete_activity" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deletes an outreach activity that was logged by mistake. The person keeps the same owner and stage.

    Annotations the server declares

    • title: Delete activity
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_alertDeletes an alert.No findings

    Why it is in this group

    • The name "delete_alert" says "delete": a word for removing or ending something.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deletes an alert. Its channels remain and other alerts can use them. This cannot be undone. To keep the alert, disable it with update_alert enabled=false instead.

    Annotations the server declares

    • title: Delete alert
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_groupDeletes a keyword group and all of its keywords, each as delete_keyword would, mentions included.No findings

    Why it is in this group

    • The name "delete_group" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deletes a keyword group and all of its keywords, each as delete_keyword would, mentions included. The default group cannot be deleted. The answer says how many keywords were deleted.

    Annotations the server declares

    • title: Delete group
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_keywordStops monitoring a keyword and deletes its mentions, but keeps a post that another keyword also matched.No findings

    Why it is in this group

    • The name "delete_keyword" says "delete": a word for removing or ending something.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Stops monitoring a keyword and deletes its mentions, but keeps a post that another keyword also matched. Alerts that named it drop it, and an alert that named only this keyword is disabled instead of widening to all keywords. This cannot be undone. Muting with update_keyword muted=true keeps the mentions.

    Annotations the server declares

    • title: Delete keyword
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_segmentDeletes a saved segment.No findings

    Why it is in this group

    • The name "delete_segment" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deletes a saved segment. The people in it are not changed.

    Annotations the server declares

    • title: Delete segment
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_viewDeletes a saved view and leaves its mentions untouched.No findings

    Why it is in this group

    • The name "delete_view" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deletes a saved view and leaves its mentions untouched.

    Annotations the server declares

    • title: Delete view
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • merge_peopleTells your workspace that two accounts are the same individual by merging account `id` into person `into`.No findings

    Why it is in this group

    • The name "merge_people" says "merge": a word for a change that another call does not undo.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Tells your workspace that two accounts are the same individual by merging account `id` into person `into`. Their mentions, tags and notes are combined, and the merged account appears among the person's platforms.

    Annotations the server declares

    • title: Merge people
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Changes things 21Claude Code: ask
  • add_keywordCreates a keyword to track.No findings

    Why it is in this group

    • The name "add_keyword" says "add": a word for a change.
    Description, as the server wrote it
    Creates a keyword to track. kind is "brand" (default), "competitor" or "topic". platforms limits where it runs, all by default. New posts with the term are matched, classified and delivered. To narrow a common word, set `matching` (requiredTerms with requiredMode any or all, excludedTerms with a `*` wildcard at either end, excludedAuthors, caseSensitive). Rejected posts are never stored or billed. `context` is one sentence for this keyword's classifier, such as "Basil is our deploy tool, not the herb." `cap` ({ mentions: N }) sets a monthly limit on matches. A capped keyword stops matching until the 1st (UTC) or a higher cap, and is still charged daily. `groupId` picks a group from list_groups, otherwise the default group. A term can exist once per group. `reviewSources` adds review pages, each as a url (App Store or Google Play app, Trustpilot page, Google Maps place or maps.app.goo.gl link) or a platform (appstore, googleplay, trustpilot, googlemaps) and id. App stores also take countries (two-letter, default us), and Google Play a language (default en). Every review becomes a mention, pages are read daily, and the last 30 days (up to 100 reviews) arrive free at once. `feeds` reads RSS or Atom feeds, each as { url }: a feed's address, or a page's (a forum, a community, a blog) whose advertised feed is used; an address with no feed is refused. An item is a mention when it holds the term, feeds are read every hour, and the newest 10 matching items of the last 30 days arrive at once, billed like any mention. `platforms: []` makes a reviews-only or feeds-only keyword. `comments` ({ enabled: true, maxPerPost: N }, off by default) reads the comments under its relevant mentions from 30 minutes after each post while its platform's conversations last, at most maxPerPost (default 20) per mention, $0.008 per comment delivered; list them with list_mention_comments.

    Annotations the server declares

    • title: Add keyword
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_alertCreates an alert.No findings

    Why it is in this group

    • The name "create_alert" says "create": a word for a change.
    Description, as the server wrote it
    Creates an alert. mode "instant" sends each matching mention as it arrives. "hourly" sends a digest of the previous UTC hour at five past, skips hours with no mention above the minimum, and takes no schedule and no email channel (only Slack, Telegram and webhooks). "daily" sends one digest at schedule.hour in schedule.timezone. "weekly" sends one a week on schedule.weekday, from 0 for Sunday to 6 for Saturday. filter can use keywordIds, platforms, minRelevance, minConfidence, sentiments, intents, excludeAuthors, minFollowers, tags and linkHosts (hosts a post links to, including subdomains). Without minRelevance only relevant mentions (40 and up) are sent, and 0 sends every scored match, noise included. channelIds come from list_channels.

    Annotations the server declares

    • title: Create alert
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_groupCreates a keyword group with a name that is unique in the workspace.No findings

    Why it is in this group

    • The name "create_group" says "create": a word for a change.
    Description, as the server wrote it
    Creates a keyword group with a name that is unique in the workspace. You can add externalId, your own unique id such as a client id. You can also add context, a company description saying who the business is, what it sells and to whom. The classifier reads it instead of the whole workspace profile, guidelines and competitors included, for this group's keywords, so put any group rule in that text. An agency can make one group per client with the client's description, so each client's mentions are scored for that client. Then pass the group's id as groupId to add_keyword.

    Annotations the server declares

    • title: Create group
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_segmentSaves an audience segment with a name and a filter.No findings

    Why it is in this group

    • The name "create_segment" says "create": a word for a change.
    Description, as the server wrote it
    Saves an audience segment with a name and a filter. The filter can use platforms, tags, follower range, minimum mentions or negative mentions, intents, keyword kinds the person did or did not mention, first seen within N days, and linkHosts they linked to. Members are worked out on each read, not stored.

    Annotations the server declares

    • title: Create segment
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_viewSaves a view with a name and a filter.No findings

    Why it is in this group

    • The name "create_view" says "create": a word for a change.
    Description, as the server wrote it
    Saves a view with a name and a filter. The filter uses the fields of search_mentions, such as keywords or keyword kinds, platforms, status, relevant, sentiments, intents, languages, author tags, follower range, replies, link hosts, automated and free text. A list matches any value, a `not` list matches none, and all conditions are joined by AND. anyOf adds OR with groups of such conditions, at least one of which must match. Nothing is stored ahead of time, so the view shows whatever matches when read.

    Annotations the server declares

    • title: Create view
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • dismiss_attentionMoves an attention item (att_...No findings

    Why it is in this group

    • The name "dismiss_attention" says "dismiss": a word for a change.
    Description, as the server wrote it
    Moves an attention item (att_... from list_attention) out of the open list for as long as its condition lasts.

    Annotations the server declares

    • title: Dismiss attention
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • duplicate_keywordCreates a new keyword with an existing keyword's settings.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Creates a new keyword with an existing keyword's settings. Give the new term, or the same term with another groupId, since a group tracks a term once. It copies the kind, platforms, context, every matching rule, the monthly mention cap and the comments setting. Review pages and feeds are copied only when listed in include (reviewSources, feeds), because two keywords on one page collect and bill every review twice. The copy is a new keyword: $5 a month, and its last 30 days come in at once.

    Annotations the server declares

    • title: Duplicate keyword
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • list_mention_commentsThe comments under a mention's post, newest first, whether or not each names your keyword, with a light sentiment and intent read and mentionId when a comment is itself one of your…1 finding

    Why it is in this group

    • The name "list_mention_comments" says "list": a word for reading.
    • The description's first verb is "comment": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "list_mention_comments" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_mention_comments" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    The comments under a mention's post, newest first, whether or not each names your keyword, with a light sentiment and intent read and mentionId when a comment is itself one of your mentions. Filled for new relevant mentions of keywords with comments on, from 30 minutes after the post.

    Annotations the server declares

    • title: List mention comments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • log_activityLogs that someone on the team contacted a person, for example by email, direct message or call.1 finding

    Why it is in this group

    • The name "log_activity" says "log": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "log_activity" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_activity" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Logs that someone on the team contacted a person, for example by email, direct message or call. A not_contacted person moves to contacted, and a person with no owner gets the contacting member as owner. A later stage or an existing owner stays, and update_person changes them. memberId falls back to the signed-in user. Called with an API key and no memberId, it logs an activity without a member and sets no owner. Returns the new activity and the updated person.

    Annotations the server declares

    • title: Log activity
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mute_authorsAdds authors to an alert's muted list and keeps the rest of the filter.No findings

    Why it is in this group

    • The description's first verb is "add": a word for a change.
    Description, as the server wrote it
    Adds authors to an alert's muted list and keeps the rest of the filter. Entries can be profile or post links, @handles, u/names, Bluesky DIDs or display names. Links are stored as the author's profile. Authors already on the list are skipped, and entries that don't name a person are refused.

    Annotations the server declares

    • title: Mute authors
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • split_personReverses a merge, so the account is a separate person again in your workspace.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Reverses a merge, so the account is a separate person again in your workspace.

    Annotations the server declares

    • title: Split person
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • unmute_authorsTakes authors off an alert's muted list and keeps the rest of the filter.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Takes authors off an alert's muted list and keeps the rest of the filter. Each entry can be the stored value or a link to the person's profile or posts. Authors not on the list are skipped.

    Annotations the server declares

    • title: Unmute authors
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_alertChanges an alert's name, enabled, mode, schedule, filter or channelIds.No findings

    Why it is in this group

    • The name "update_alert" says "update": a word for a change.
    Description, as the server wrote it
    Changes an alert's name, enabled, mode, schedule, filter or channelIds. filter and channelIds are replaced in full.

    Annotations the server declares

    • title: Update alert
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_companyChanges the company profile (name, description, useCases, accounts) or sets the classifier context yourself.No findings

    Why it is in this group

    • The name "update_company" says "update": a word for a change.
    Description, as the server wrote it
    Changes the company profile (name, description, useCases, accounts) or sets the classifier context yourself. Profile changes rebuild the context, and a context you set applies until the next profile change. The context affects relevance scores more than anything else, so keep it accurate and specific. It does not apply to keywords in a group with its own description, which you change with update_group. Fields you leave out stay as they are.

    Annotations the server declares

    • title: Update company
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_filtersChanges the workspace filters.No findings

    Why it is in this group

    • The name "update_filters" says "update": a word for a change.
    Description, as the server wrote it
    Changes the workspace filters. These are excludedTerms (`*` at either end is a wildcard), excludedAuthors (links, handles or names), excludedRepos (owner/name or a github.com link), subreddits.only (allowed subreddits, and when set, excluded is ignored) and subreddits.excluded. Every list is optional. A list you leave out stays as it is, and an empty list clears it. New mentions follow the change within a minute.

    Annotations the server declares

    • title: Update filters
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_groupChanges a keyword group's name, its externalId or its company description in context.No findings

    Why it is in this group

    • The name "update_group" says "update": a word for a change.
    Description, as the server wrote it
    Changes a keyword group's name, its externalId or its company description in context. Null clears externalId. Null clears context too, so the workspace profile applies again, and new mentions use the change right away. The default group can be renamed but takes no description, because it is the workspace itself and uses the company profile (update_company).

    Annotations the server declares

    • title: Update group
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_keywordChanges a keyword.No findings

    Why it is in this group

    • The name "update_keyword" says "update": a word for a change.
    Description, as the server wrote it
    Changes a keyword. You can rename it with term: the new term is tracked from now on, with no look-back, and the keyword keeps its id, settings and what the old term found. You can set its platforms (a list, or null for all), mute or unmute it, change its kind, or set its classifier context (null clears it). You can change its matching rules, where each field is optional and an empty list clears it, with requiredTerms and requiredMode any or all, excludedTerms with a `*` wildcard at either end, excludedAuthors and caseSensitive. You can set its monthly cap with cap: { mentions: N }, where null removes it and a cap above this month's count resumes a capped keyword right away. You can move it with groupId, which returns 409 if that group already has the term. You can set reviewSources, the full list of App Store, Google Play, Trustpilot or Google Maps pages, where an empty list disconnects them and a newly added app or country brings its last 30 days free. You can replace the RSS or Atom feeds it reads with feeds, the whole list of { url }, where an empty list disconnects them and a newly added feed brings its newest 10 matching items of the last 30 days. You can switch comments on or off with comments ({ enabled, maxPerPost }; $0.008 per comment delivered). Rules only affect new mentions. Returns the keyword after the change, with its stats.

    Annotations the server declares

    • title: Update keyword
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • update_mentionThe only way to change a mention.No findings

    Why it is in this group

    • The name "update_mention" says "update": a word for a change.
    Description, as the server wrote it
    The only way to change a mention. Set status to "ignored" when it is not interesting, "done" when handled, or "open" to reopen it. Assign it with assigneeId, or null to remove the assignment. Hide it from the feed until an ISO 8601 time with snoozedUntil, or null to bring it back. Add a team note with note, or null to remove it. Correct the classifier with `relevant`, where true or false sets relevance to 100 or 0 and moves the mention into or out of the relevant feed, and null removes your judgment. `sentiment` sets the label, and null brings back the classifier's. Use these corrections when the user says a mention is noise or was missed. Fields you leave out stay as they are. Delivery and billing never change.

    Annotations the server declares

    • title: Update mention
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_personChanges your workspace's details on a person.No findings

    Why it is in this group

    • The name "update_person" says "update": a word for a change.
    Description, as the server wrote it
    Changes your workspace's details on a person. You can set their full tag list, notes, mute, the outreach owner (ownerId, a member's user id, or null to remove) and stage. Muting hides their posts from the feed and all channels. Collection and billing do not change.

    Annotations the server declares

    • title: Update person
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_segmentChanges a saved segment's name, description or filter.No findings

    Why it is in this group

    • The name "update_segment" says "update": a word for a change.
    Description, as the server wrote it
    Changes a saved segment's name, description or filter. `filter` sets the full new filter.

    Annotations the server declares

    • title: Update segment
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_viewChanges a saved view's name, description or filter.No findings

    Why it is in this group

    • The name "update_view" says "update": a word for a change.
    Description, as the server wrote it
    Changes a saved view's name, description or filter. `filter` sets the full new filter.

    Annotations the server declares

    • title: Update view
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 29Claude Code: allow
  • get_alertFetches an alert by id.No findings

    Why it is in this group

    • The name "get_alert" says "get": a word for reading.
    Description, as the server wrote it
    Fetches an alert by id. Includes delivery stats as well as its filter, mode, schedule and channels.

    Annotations the server declares

    • title: Get alert
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_analytics_breakdownReturns a table grouped by `by`.No findings

    Why it is in this group

    • The name "get_analytics_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    Returns a table grouped by `by`. That is platform, keyword, sentiment, intent, status (open, ignored, done), hour (weekday and hour in timezone, to see when people post) or person (the most active authors, with followers). Each row has matched, relevant, its percentage of the period, a sentiment split and, with compare=true, the same row for the period just before. The period works as in get_analytics_summary. Up to 50 rows, the one with the most matches first.

    Annotations the server declares

    • title: Get analytics breakdown
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_analytics_seriesCounts matched, relevant and sentiment mentions per day or week (bucket, days by default up to 90 days).No findings

    Why it is in this group

    • The name "get_analytics_series" says "get": a word for reading.
    Description, as the server wrote it
    Counts matched, relevant and sentiment mentions per day or week (bucket, days by default up to 90 days). Returns one "total" series, or splits by="platform" or by="keyword" (top 20, rest as "other"). Period options match get_analytics_summary. compare=true adds `previous`, the prior period, aligned by index.

    Annotations the server declares

    • title: Get analytics series
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_analytics_summaryReturns summary counts for a period.No findings

    Why it is in this group

    • The name "get_analytics_summary" says "get": a word for reading.
    Description, as the server wrote it
    Returns summary counts for a period. Covers matched and relevant mentions, unique posts and people, sentiment, buying intent, questions, reach and triage. Reach sums followers where known. Triage gives open, ignored and done counts, mentions waiting over 24h, handled rate and median time to done. Set the period with range (7d, 30d, 90d or 365d, ending today) or from and to (YYYY-MM-DD). keywordIds and platforms take lists. timezone (IANA, default UTC) sets day boundaries. compare=true adds the prior period as `previous`. Dates are publish dates.

    Annotations the server declares

    • title: Get analytics summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_companyReturns the company profile the classifier reads, with name, description, use cases, own accounts and the context text built from them for relevance scoring.No findings

    Why it is in this group

    • The name "get_company" says "get": a word for reading.
    Description, as the server wrote it
    Returns the company profile the classifier reads, with name, description, use cases, own accounts and the context text built from them for relevance scoring. A group with its own description replaces that text for its keywords (see list_groups).

    Annotations the server declares

    • title: Get company
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_filtersReturns the workspace noise rules that run before any mention is stored, for every keyword.No findings

    Why it is in this group

    • The name "get_filters" says "get": a word for reading.
    Description, as the server wrote it
    Returns the workspace noise rules that run before any mention is stored, for every keyword. They exclude terms, authors and GitHub repositories, and allow or block subreddits. Rejected posts are never classified, sent or billed. Keywords add their own `matching` rules.

    Annotations the server declares

    • title: Get filters
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_groupReturns a keyword group by id, with its number of keywords.No findings

    Why it is in this group

    • The name "get_group" says "get": a word for reading.
    Description, as the server wrote it
    Returns a keyword group by id, with its number of keywords.

    Annotations the server declares

    • title: Get group
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_keywordFetches a keyword by id.No findings

    Why it is in this group

    • The name "get_keyword" says "get": a word for reading.
    Description, as the server wrote it
    Fetches a keyword by id. Returns its setup (term, kind, platforms, matching rules, context, monthly cap, pausedForCap), its stats and how polling goes on each platform.

    Annotations the server declares

    • title: Get keyword
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_keyword_healthChecks whether a keyword earns its cost, over range 7d, 30d or 90d (default 30d).No findings

    Why it is in this group

    • The name "get_keyword_health" says "get": a word for reading.
    Description, as the server wrote it
    Checks whether a keyword earns its cost, over range 7d, 30d or 90d (default 30d). Returns a status with plain-word reasons. noisy is 20+ scored matches with under 30% relevant, quiet is 7+ days old with nothing relevant, new is under 7 days old, and the rest are healthy, capped or paused. Also returns matches, relevant and noise share by platform and week, cost, the words and authors behind the noise, and suggestions. To apply one, pass its `patch` and the keyword id to update_keyword (lists replace the whole list). Its `effect` shows the noise and relevant matches and the cents the matcher's rules say it would have removed in the period. ai=true adds a model-written context (cached a day, 20 calls an hour per workspace). Read only, never billed, cached 5 minutes.

    Annotations the server declares

    • title: Get keyword health
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_mentionFetches one mention, classification included (relevance, sentiment, intents, confidence, uncertain, note).No findings

    Why it is in this group

    • The name "get_mention" says "get": a word for reading.
    Description, as the server wrote it
    Fetches one mention, classification included (relevance, sentiment, intents, confidence, uncertain, note).

    Annotations the server declares

    • title: Get mention
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_mention_statsReturns mention counts for the past N days (7 by default), by platform and by sentiment.No findings

    Why it is in this group

    • The name "get_mention_stats" says "get": a word for reading.
    Description, as the server wrote it
    Returns mention counts for the past N days (7 by default), by platform and by sentiment. You can limit it to one platform or keyword. Mentions without a score are counted under the sentiment "unclassified".

    Annotations the server declares

    • title: Get mention stats
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_personReturns one person from your audience with their counts, your tags, notes and mute, and their outreach status (owner, stage, last contacted).No findings

    Why it is in this group

    • The name "get_person" says "get": a word for reading.
    Description, as the server wrote it
    Returns one person from your audience with their counts, your tags, notes and mute, and their outreach status (owner, stage, last contacted). It also has their public profile where the platform shows one, with bio, company, location, website and linked accounts. profile.email is always null here. GitHub authors are looked up the same day, and profile is null until then.

    Annotations the server declares

    • title: Get person
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_reviews_reportReports on the reviews your keywords collect from the App Store, Google Play, Trustpilot and Google over a period.No findings

    Why it is in this group

    • The name "get_reviews_report" says "get": a word for reading.
    Description, as the server wrote it
    Reports on the reviews your keywords collect from the App Store, Google Play, Trustpilot and Google over a period. Includes totals (reviews, average stars, star distribution, replies, open 1 and 2 star reviews), tags from unhappy reviews, and each review page's average stars per day or week (bucket). Two keywords matching one review count it once. Period options match get_analytics_summary, and compare=true adds the prior period.

    Annotations the server declares

    • title: Get reviews report
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_share_of_voiceCompares your brand with competitors.No findings

    Why it is in this group

    • The name "get_share_of_voice" says "get": a word for reading.
    Description, as the server wrote it
    Compares your brand with competitors. Returns each keyword with matches in the period, with matched, relevant, negative and buy-intent counts and its percentage of all brand and competitor matches. Topics are counted but not part of the split. The period works as in get_analytics_summary. compare=true adds each keyword's matches for the period just before.

    Annotations the server declares

    • title: Get share of voice
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_usageShows whether tracking is stopped or the balance is low, with the prepaid balance (ledger, pending mention charges, effective), daily spend and days left, running and balance-pause…No findings

    Why it is in this group

    • The name "get_usage" says "get": a word for reading.
    Description, as the server wrote it
    Shows whether tracking is stopped or the balance is low, with the prepaid balance (ledger, pending mention charges, effective), daily spend and days left, running and balance-paused keywords, and matches today and over 30 days. Pricing is $0.008 per matched mention and $5 a month per active keyword, charged daily.

    Annotations the server declares

    • title: Get usage
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_usage_breakdownUsage and charges for a period in US cents at list price, grouped by one `by` per call.No findings

    Why it is in this group

    • The name "get_usage_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    Usage and charges for a period in US cents at list price, grouped by one `by` per call. keyword (default) gives days charged, mentions billed and totalCents per keyword, with deleted keywords marked keyword.removed=true. platform and day also work. Pick a trailing `range` (7d, 30d or 90d, default 30d) or a calendar `month` (YYYY-MM), which matches a bill or a per-client margin. Every call includes totals (keyword-days, matched and billed mentions, list-price total, actual ledger debits). Rows are paged (limit, offset, total). Use it for "what did keyword X cost". get_usage tells how much is left, and get_keyword has each keyword's month-to-date cost as stats.cost.

    Annotations the server declares

    • title: Get usage breakdown
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_activitiesShows who on the team has contacted a person, latest first.No findings

    Why it is in this group

    • The name "list_activities" says "list": a word for reading.
    Description, as the server wrote it
    Shows who on the team has contacted a person, latest first. Each entry has the member, the channel, the time and a note. Channels are email, x, linkedin, bluesky, reddit, github, call, meeting and other. Look at this and the outreach owner before contacting someone, so teammates don't double up.

    Annotations the server declares

    • title: List activities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_alertsReturns every alert with its filter, mode, schedule and channels.No findings

    Why it is in this group

    • The name "list_alerts" says "list": a word for reading.
    Description, as the server wrote it
    Returns every alert with its filter, mode, schedule and channels. The mode is instant, or hourly, daily or weekly for a digest.

    Annotations the server declares

    • title: List alerts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_attentionLists items that need a person, latest first.No findings

    Why it is in this group

    • The name "list_attention" says "list": a word for reading.
    Description, as the server wrote it
    Lists items that need a person, latest first. Kinds are mention.spike (mentions jumped in the last hour), sentiment.negative_spike (24-hour negative share jumped), keyword.noisy (turned noisy) and channel.failing (recent sends all failed). Checks run hourly, and items resolve when the condition ends. Open items by default, and status "all" adds the history. Items have a one-line title, numbers in data, and data.url to the dashboard.

    Annotations the server declares

    • title: List attention
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_channelsLists alert destinations (Slack channels, Telegram chats, email lists, webhooks).No findings

    Why it is in this group

    • The name "list_channels" says "list": a word for reading.
    Description, as the server wrote it
    Lists alert destinations (Slack channels, Telegram chats, email lists, webhooks). Connect Telegram chats in the dashboard under Settings, Integrations. The API can't.

    Annotations the server declares

    • title: List channels
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_groupsLists the workspace's keyword groups, the default first.No findings

    Why it is in this group

    • The name "list_groups" says "list": a word for reading.
    Description, as the server wrote it
    Lists the workspace's keyword groups, the default first. Groups organize keywords, for example by client, campaign or product. Every keyword is in one group, a group can hold a term once, and get_usage_breakdown with by=group shows each group's cost. externalId finds the group with your own id.

    Annotations the server declares

    • title: List groups
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_keywordsLists the workspace's keywords with stats, polling status, matching rules and context, plus `total`.No findings

    Why it is in this group

    • The name "list_keywords" says "list": a word for reading.
    Description, as the server wrote it
    Lists the workspace's keywords with stats, polling status, matching rules and context, plus `total`. With no arguments you get all keywords, latest first. q searches the term and context. You can filter by kind, status (active, muted by someone, paused for balance, noisy when the noise brake paused it, or capped at its monthly mention cap), platform or groupId, order with sort, and page with limit and offset.

    Annotations the server declares

    • title: List keywords
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_ledgerShows the prepaid balance's history, latest first.No findings

    Why it is in this group

    • The name "list_ledger" says "list": a word for reading.
    Description, as the server wrote it
    Shows the prepaid balance's history, latest first. Entries cover the welcome credit, top-ups, refunds, adjustments, and the daily keyword-day and mention debits. Debits carry their UTC settlement day and cumulative units. Cursor pages, limit up to 100. Funds are added on the dashboard's billing page or with POST /v1/billing/top-ups.

    Annotations the server declares

    • title: List ledger
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_membersLists workspace members with their role (owner, admin, member), email and user id.No findings

    Why it is in this group

    • The name "list_members" says "list": a word for reading.
    Description, as the server wrote it
    Lists workspace members with their role (owner, admin, member), email and user id. Use the user id for assigneeId in update_mention and ownerId in update_person.

    Annotations the server declares

    • title: List members
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_peopleLists the authors of mentions of your keywords.No findings

    Why it is in this group

    • The name "list_people" says "list": a word for reading.
    Description, as the server wrote it
    Lists the authors of mentions of your keywords. Each has name, profile, platform, how many posts matched and how many scored relevant, sentiment split, first and last seen, and outreach status (owner, stage, last contacted). You can filter by platform or name, find one person by handle or profile link (handle), and filter by outreach stage (stages), owner (ownerIds, or "none" for no owner) or automated (bots whose posts are mostly machine-made). Sort by mentions or by recency. To read what one person said, use search_mentions with personId.

    Annotations the server declares

    • title: List people
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_segmentsLists your saved audience segments, which are named people filters such as "Large accounts" or "Open to switching", with the current number of people in each.No findings

    Why it is in this group

    • The name "list_segments" says "list": a word for reading.
    Description, as the server wrote it
    Lists your saved audience segments, which are named people filters such as "Large accounts" or "Open to switching", with the current number of people in each. Also returns presets you can save with create_segment. To see who is in a segment, pass its id to list_people.

    Annotations the server declares

    • title: List segments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_viewsLists your saved views, which are named mention filters such as "Bug reports" or "Waiting on us".No findings

    Why it is in this group

    • The name "list_views" says "list": a word for reading.
    Description, as the server wrote it
    Lists your saved views, which are named mention filters such as "Bug reports" or "Waiting on us". Pass a view's id as viewId to search_mentions to get exactly what it shows.

    Annotations the server declares

    • title: List views
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_mentionsSearches the workspace's mentions.No findings

    Why it is in this group

    • The name "search_mentions" says "search": a word for reading.
    Description, as the server wrote it
    Searches the workspace's mentions. You can filter by keyword, platform, status (open, ignored, done), relevant, minimum relevance, minimum confidence (0 to 1), sentiment, intent, text (q, in the post or the author's name) and time range (ISO 8601). You can also filter by one person (personId from list_people), assignee (assigneeId), author followers (minFollowers, maxFollowers), engagement counts from the platform (minLikes, minReposts, minReplies, minQuotes, minViews, minBookmarks, where posts without that count are left out), review stars (ratings, or notRatings to exclude some), author tags (tags, any of them), linked hosts (linkHosts, a host or its subdomains), replies or not (isReply), and machine-made posts (automated true or false). alertId applies an alert's whole filter, giving the mentions it would send. viewId applies a saved view from list_views on top of the rest. keywordKinds filters by the kind of keyword that matched (brand, competitor, topic), and groupIds or notGroupIds by the keyword's group (ids from list_groups). All filters are joined by AND. For OR, anyOf takes up to 10 groups of the same conditions, each an object whose conditions are joined by AND, and keeps a mention when one group matches as well as the rest. For example anyOf=[{platforms:["github"],intents:["bug_report"]},{sentiments:["negative"]}]. Snoozed mentions are hidden unless snoozed=true. sort is "newest" (the default) or "priority", an attention score built from relevance, author reach, intent and age that covers only the past 30 days of matches and comes on each mention as `priority`. Returns 10 mentions by default, up to 100 with limit. Each mention contains post, author, classification and triage.

    Annotations the server declares

    • title: Search mentions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • whoamiReturns 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.1 finding

    Why it is in this group

    • The name "whoami" says "whoami": a word for reading.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Returns the workspace this credential works in, the kind of credential (an AP..."

      What this check looks for
    Description, as the server wrote it
    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. Call it once when a session starts, to name the workspace and learn whether write tools will work.

    Annotations the server declares

    • title: Whoami
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http rumoro https://mcp.rumoro.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rumoro__list_segments",
      "mcp__rumoro__list_views",
      "mcp__rumoro__list_groups",
      "mcp__rumoro__get_group",
      "mcp__rumoro__search_mentions",
      "mcp__rumoro__get_mention",
      "mcp__rumoro__get_analytics_summary",
      "mcp__rumoro__get_analytics_series",
      "mcp__rumoro__get_analytics_breakdown",
      "mcp__rumoro__get_share_of_voice",
      "mcp__rumoro__get_reviews_report",
      "mcp__rumoro__list_alerts",
      "mcp__rumoro__get_alert",
      "mcp__rumoro__list_channels",
      "mcp__rumoro__list_attention",
      "mcp__rumoro__list_keywords",
      "mcp__rumoro__get_keyword",
      "mcp__rumoro__get_keyword_health",
      "mcp__rumoro__whoami",
      "mcp__rumoro__list_members",
      "mcp__rumoro__get_usage",
      "mcp__rumoro__get_usage_breakdown",
      "mcp__rumoro__list_ledger",
      "mcp__rumoro__get_filters",
      "mcp__rumoro__get_company",
      "mcp__rumoro__list_people",
      "mcp__rumoro__get_person",
      "mcp__rumoro__list_activities",
      "mcp__rumoro__get_mention_stats"
    ],
    "ask": [
      "mcp__rumoro__create_segment",
      "mcp__rumoro__update_segment",
      "mcp__rumoro__create_view",
      "mcp__rumoro__update_view",
      "mcp__rumoro__create_group",
      "mcp__rumoro__update_group",
      "mcp__rumoro__list_mention_comments",
      "mcp__rumoro__update_mention",
      "mcp__rumoro__add_keyword",
      "mcp__rumoro__update_keyword",
      "mcp__rumoro__duplicate_keyword",
      "mcp__rumoro__dismiss_attention",
      "mcp__rumoro__create_alert",
      "mcp__rumoro__update_alert",
      "mcp__rumoro__mute_authors",
      "mcp__rumoro__unmute_authors",
      "mcp__rumoro__update_filters",
      "mcp__rumoro__update_company",
      "mcp__rumoro__update_person",
      "mcp__rumoro__split_person",
      "mcp__rumoro__log_activity"
    ],
    "deny": [
      "mcp__rumoro__delete_segment",
      "mcp__rumoro__delete_view",
      "mcp__rumoro__delete_group",
      "mcp__rumoro__delete_alert",
      "mcp__rumoro__delete_keyword",
      "mcp__rumoro__merge_people",
      "mcp__rumoro__delete_activity"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rumoro. Review it before you use it.