Skip to main content
Glama

RedReplier

List Your Mentions

list_mentions
Read-only

List the mentions RedReplier saved for the user's keywords: public posts on Reddit, Hacker News, X, Bluesky, and Facebook, each AI-scored 0-100 with its source, matched keyword, status, content, and any generated relevanceReason and aiReplySuggestion. Two defaults hide rows: REJECTED mentions are excluded unless statuses names them, and mentions below the website's minimum score (30 by default) are hidden unless includeLowRelevance is true, even when scoreBuckets asks for LOW or VERY_LOW. Returns { mentions, total, limit, offset }; page with offset while offset < total. Sort RELEVANCE for the best leads, RECENT for what is new; from/to filter on ingestion time, not publish time. Reads mentions already saved in the account; it does not search or contact any network. Each mention is a public post with its text, URL and the author's public handle as shown on that network; private Facebook groups are never read. Use count_mentions for the number alone, explain_mention for one mention's reasoning, and update_mention_status to triage.

Input Schema

NameRequiredDescriptionDefault
toNoOnly mentions ingested at/before this ISO 8601 datetime
fromNoOnly mentions ingested at/after this ISO 8601 datetime
sortNoRELEVANCE (default, highest score first) or RECENT (newest first)
limitNoMax results (1-500)
offsetNoPagination offset
sourcesNoFilter by source: REDDIT_POST, REDDIT_COMMENT, TWITTER (X), BLUESKY, HACKERNEWS, FACEBOOK (posts outside groups), FACEBOOK_GROUP (posts in Facebook groups)
keywordsNoFilter to mentions matched by these keyword values (case-insensitive exact match, as shown in list_websites)
minScoreNoOnly mentions scoring at least this (0-100); unscored mentions are left out. Stacks on the website minimum, so set includeLowRelevance to go below it
statusesNoFilter by status (NEW, APPROVED, REJECTED); omit to get everything except REJECTED
websiteIdNoFilter to one website (UUID)
workspaceIdNoWorkspace to act in: an id from list_workspaces. Omit to use the default workspace. Use the same workspaceId for every call about the same workspace, since ids from one workspace do not exist in another
scoreBucketsNoRelevance buckets, OR-combined: VERY_LOW (<10), LOW (10-29), MEDIUM (30-49), HIGH (50-74), VERY_HIGH (75+). LOW and VERY_LOW only show when includeLowRelevance is also true
includeLowRelevanceNoInclude mentions below the website minimum score (30 by default), hidden otherwise

Output Schema

NameRequiredDescriptionDefault
resultNo{ mentions, total, limit, offset }: each mention has id, source, keyword, title, contentText, url, author, subreddit (the subreddit for Reddit, the group id for FACEBOOK_GROUP, otherwise null), status, relevanceScore, relevanceReason, aiReplySuggestion, tags, publishedAt, ingestedAt, reviewedAt.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed3 schema fields changed
    • changedInput schema / properties / sources / description
      Previous value: -"Filter by source: REDDIT_POST, REDDIT_COMMENT, TWITTER (X), BLUESKY, HACKERNEWS"New value: +"Filter by source: REDDIT_POST, REDDIT_COMMENT, TWITTER (X), BLUESKY, HACKERNEWS, FACEBOOK (posts outside groups), FACEBOOK_GROUP (posts in Facebook groups)"
    • changedInput schema / properties / sources / items / enum
      Previous value: -[
      -  "REDDIT_POST",
      -  "REDDIT_COMMENT",
      -  "TWITTER",
      -  "BLUESKY",
      -  "HACKERNEWS"
      -]New value: +[
      +  "REDDIT_POST",
      +  "REDDIT_COMMENT",
      +  "TWITTER",
      +  "BLUESKY",
      +  "HACKERNEWS",
      +  "FACEBOOK",
      +  "FACEBOOK_GROUP"
      +]
    • changedOutput schema / properties / result / description
      Previous value: -"{ mentions, total, limit, offset }: each mention has id, source, keyword, title, contentText, url, author, subreddit (Reddit only), status, relevanceScore, relevanceReason, aiReplySuggestion, tags, publishedAt, ingestedAt, reviewedAt."New value: +"{ mentions, total, limit, offset }: each mention has id, source, keyword, title, contentText, url, author, subreddit (the subreddit for Reddit, the group id for FACEBOOK_GROUP, otherwise null), status, relevanceScore, relevanceReason, aiReplySuggestion, tags, publishedAt, ingestedAt, reviewedAt."
  3. Changed2 schema fields changed
    • addedInput schema / properties / minScore
      Added value: +{
      +  "description": "Only mentions scoring at least this (0-100); unscored mentions are left out. Stacks on the website minimum, so set includeLowRelevance to go below it",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / workspaceId
      Added value: +{
      +  "description": "Workspace to act in: an id from list_workspaces. Omit to use the default workspace. Use the same workspaceId for every call about the same workspace, since ids from one workspace do not exist in another",
      +  "type": "string"
      +}
  4. Changed5 schema fields changed
    • changedInput schema / properties / includeLowRelevance / description
      Previous value: -"Include mentions scoring below 30 (hidden by default)"New value: +"Include mentions below the website minimum score (30 by default), hidden otherwise"
    • changedInput schema / properties / keywords / description
      Previous value: -"Filter to mentions matched by these keywords"New value: +"Filter to mentions matched by these keyword values (case-insensitive exact match, as shown in list_websites)"
    • changedInput schema / properties / scoreBuckets / description
      Previous value: -"Relevance buckets: VERY_LOW (<10), LOW (10-29), MEDIUM (30-49), HIGH (50-74), VERY_HIGH (75+)"New value: +"Relevance buckets, OR-combined: VERY_LOW (<10), LOW (10-29), MEDIUM (30-49), HIGH (50-74), VERY_HIGH (75+). LOW and VERY_LOW only show when includeLowRelevance is also true"
    • changedInput schema / properties / statuses / description
      Previous value: -"Filter by status (NEW, APPROVED, REJECTED)"New value: +"Filter by status (NEW, APPROVED, REJECTED); omit to get everything except REJECTED"
    • changedOutput schema / properties / result / description
      Previous value: -"Array of mentions, each with its source, matched keyword, relevance score, status, and content."New value: +"{ mentions, total, limit, offset }: each mention has id, source, keyword, title, contentText, url, author, subreddit (Reddit only), status, relevanceScore, relevanceReason, aiReplySuggestion, tags, publishedAt, ingestedAt, reviewedAt."
  5. First observed

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld=false/destructive=false, and the description reinforces this ('Reads mentions already saved in the account; it does not search or contact any network') and adds genuinely non-obvious behavior: two default filters that silently drop rows, the minScore/website-minimum stacking, and the privacy boundary that private Facebook groups are never read. It does not state rate limits or what happens on invalid pagination, but the substantive behavioral gaps are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads what is listed, then defaults, then return/pagination, then constraints and siblings — highly efficient for 13 parameters. Minor redundancy remains (the first sentence already lists content, and a later sentence re-describes text/URL/author handle to make the privacy point), so it falls just short of zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 optional parameters, an output schema, and safe-read annotations, the description covers everything an agent needs: what is returned, how to page, how defaults silently filter, time-field semantics, and which sibling to use instead. No material gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description adds real meaning beyond the schema: from/to filter on ingestion time not publish time, keywords follow the values shown in list_websites, minScore stacks on the website minimum, and scoreBuckets LOW/VERY_LOW only surface when includeLowRelevance is true. It also supplies the limit/offset/total return contract that pagination depends on.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource and an explicit scope ('mentions RedReplier saved for the user's keywords'), enumerates the sources covered, and distinguishes itself from the three closest siblings (count_mentions, explain_mention, update_mention_status). An agent can identify this tool without opening its schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use routing to count_mentions, explain_mention and update_mention_status, plus when-to-use sort values (RELEVANCE for best leads, RECENT for what is new) and the exact conditions for surfacing hidden rows (name statuses to see REJECTED; set includeLowRelevance to go below the website minimum). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources