mcp-b2b-reddit-conversation-monitor
LocalAbout mcp-b2b-reddit-conversation-monitor
This MCP server runs the Mamba Labs Reddit Conversation Monitor actor on Apify to analyze public Reddit discussions about companies, product categories, or topics. It returns tagged threads and comments alongside summaries such as competitor share of voice and recurring unanswered questions.
Key features
- 01Company, category, and gap analysis modes
- 02Tagged threads and comments with sentiment
- 03Competitor share-of-voice summaries
- 04Recurring questions grouped by theme
- 05Optional Slack-compatible webhook
Use cases
- 01Compare brand mentions with competitors on Reddit
- 02Identify frequently discussed tools in a product category
- 03Find recurring questions that go unanswered
MCP support
The server exposes the `monitor_reddit_conversations` tool, which starts an Apify actor run and returns its dataset rows to MCP clients. Calls require an Apify API token.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-b2b-reddit-conversation-monitorAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | enum | No | company (default), category, or gap.company | category | gap |
| topic | string | No | Gap mode. What the questions are about. |
| domains | array | No | Company mode. Several domains, up to 50. |
| only_new | enum | No | Skip rows an earlier run with the same state_key returned. Default false.true | false |
| state_key | string | No | Names the seen list for only_new. |
| proxy_mode | enum | No | auto uses the Apify datacenter proxy and moves to residential when Reddit refuses; residential uses residential only. A reliability choice; proxy use adds nothing to the price. Default auto.auto | residential |
| since_days | string | No | Only threads from the last this many days. Default 90. |
| subreddits | array | No | Limit searches to these subreddits, without r/. |
| brand_names | array | No | Company mode. Names to search for, as the company writes them. Empty: resolved from the domain. |
| competitors | array | No | Company mode. Competitor names. Empty: found in the brand threads when discover_competitors is true. |
| max_threads | string | No | Thread rows per input, up to 1000. Each thread row is billed. Default 100. |
| topic_terms | array | No | Gap mode. More search phrases for the same need. Reddit returns only posts with every word of a query, so a two word topic can be narrow. Up to 10. |
| webhook_url | string | No | Optional https URL. One POST at the end with a Slack compatible text field and the top rows. |
| comment_depth | string | No | Reply levels read. Default 2. |
| product_names | array | No | Company mode. Product names to search for beside the brand. |
| webhook_top_n | string | No | Rows in the webhook, 1 to 50. Default 10. |
| company_domain | string | No | Company mode. One company domain, for example smartlead.ai. |
| max_charge_usd | string | No | Optional. The run stops before any row that would take its charges over this amount. |
| known_companies | array | No | Category and gap modes. Names to always count. |
| max_competitors | string | No | Company mode. 0 to 5. Default 5. |
| include_comments | enum | No | Return comments as billed rows: comments that name the brand or a competitor (company mode), a company or keyword (category mode), or answers that name a tool (gap mode). Default true in company and gap modes, false in category mode.true | false |
| category_keywords | array | No | Category mode. Product lane phrases, for example cold email tools. |
| vendor_subreddits | enum | No | A vendor's own subreddit (named after the brand, a competitor, or a company found in the run) is read as marketing. exclude (default) drops those threads; flag keeps them with vendor_subreddit true and out of every count; include keeps them with vendor_subreddit true and counts them. A subreddit named in subreddits is never treated as one.exclude | flag | include |
| exclude_subreddits | array | No | Drop rows from these subreddits. |
| discover_subreddits | enum | No | Gap mode. Find up to 8 subreddits from the topic when none are given. Default true.true | false |
| include_hacker_news | enum | No | Also search Hacker News. Default false.true | false |
| max_comment_threads | string | No | Threads opened to read comments, highest intent first. Default 20, 30 in category mode, 50 in gap mode. |
| discover_competitors | enum | No | Company mode. Find competitors in the brand threads when none are given. Default true.true | false |
| use_identity_resolver | enum | No | Company mode, when brand_names is empty. true runs Mamba Labs Company Identity Resolver from your account, which Apify charges at its own result price (0.007 USD per domain); false uses the homepage title. Default true.true | false |
| max_comments_per_thread | string | No | Comments read per opened thread. Default 25. |
Details
From the project READMEB2B Reddit Conversation Monitor MCP Server
An MCP server for the Mamba Labs B2B Reddit Conversation Monitor actor on Apify. Give it a company domain, product category keywords, or a topic. Each run reads public Reddit feeds and returns tagged threads and comments, plus summary rows: share of voice against competitors, the most discussed companies in a category, or recurring questions grouped by theme.
What's Inside
- What it does
- Quick start
- Prerequisites
- Example prompts
- Tool
- Inputs
- Pricing
- Your keys
- Full actor documentation
- License
What it does
Three modes:
- company: give
company_domain(for example smartlead.ai). You get the threads and comments that name the brand or its competitors, each tagged complaint, praise, comparison, alternative_request, switching, buying_intent, feature_request, or question, with sentiment and a 0 to 100 intent score. A row getsdisplacement_signaltrue when one sentence names a competitor and complains about it, switches from it, or asks for an alternative to it. One company summary row carries mention counts, the sentiment split, share of voice per competitor, and the top complaint themes. - category: give
category_keywords(for example cold email tools). You get the threads plus one row per company discussed in two or more threads, with mention counts, sentiment, and share of voice. - gap: give
subreddits, atopic, or both. You get the questions people ask (is there a tool for, how do I, alternative to), grouped by theme, with how many went unanswered and which tools the answers named.
Tags, sentiment, and the score are rule based. Blocked or empty results come back free with a row_status saying so. All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-b2b-reddit-conversation-monitor": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-b2b-reddit-conversation-monitor"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
Restart the client. The monitor_reddit_conversations tool appears.
Prerequisites
- Node.js 18 or newer.
- An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
- "What are people on Reddit saying about smartlead.ai versus Instantly in the last 60 days? Show the displacement signals."
- "Which cold email tools get recommended most on Reddit this year?"
- "What do people in r/sales and r/LeadGeneration keep asking for that nobody answers?"
Tool
monitor_reddit_conversations. One tool. Example arguments:
{
"mode": "company",
"company_domain": "smartlead.ai",
"brand_names": ["Smartlead"],
"competitors": ["Instantly", "lemlist"],
"since_days": "60"
}
Inputs
Every buyer facing input of the actor, unchanged. Omitted inputs take the actor's own defaults. Numbers and booleans are sent as strings.
| Input | Type | Description |
|---|---|---|
mode | string | company (default), category, or gap |
company_domain | string | Company mode. One domain |
domains | array | Company mode. Up to 50 domains |
brand_names | array | Company mode. Names to search for; empty resolves them from the domain |
product_names | array | Company mode. Product names beside the brand |
competitors | array | Company mode. Competitor names; empty discovers them |
discover_competitors | string | true or false. Default true |
max_competitors | string | 0 to 5. Default 5 |
use_identity_resolver | string | true runs Mamba Labs Company Identity Resolver when brand_names is empty, charged by Apify at its own price (0.007 USD per domain). Default true |
category_keywords | array | Category mode. Product lane phrases |
known_companies | array | Category and gap modes. Names to always count |
topic | string | Gap mode. What the questions are about |
topic_terms | array | Gap mode. More search phrases for the same need |
subreddits | array | Limit searches to these subreddits |
exclude_subreddits | array | Drop rows from these subreddits |
vendor_subreddits | string | exclude (default) or flag. A vendor's own subreddit is dropped, or kept with vendor_subreddit true and out of every count |
discover_subreddits | string | Gap mode. Default true |
since_days | string | Date window in days. Default 90 |
max_threads | string | Thread rows per input, up to 1000. Default 100 |
include_comments | string | Comment rows. Default true in company and gap, false in category |
max_comment_threads | string | Threads opened for comments. Default 20, 30 in category, 50 in gap |
max_comments_per_thread | string | Default 25 |
comment_depth | string | Default 2 |
include_hacker_news | string | Default false |
max_charge_usd | string | Optional cost cap for the run |
only_new | string | Skip rows an earlier run with the same state_key returned. Default false |
state_key | string | Names the seen list |
webhook_url | string | Optional https URL for a Slack compatible POST |
webhook_top_n | string | Default 10 |
proxy_mode | string | auto or residential. Default auto |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
thread-row, per thread row | $0.0018 | $0.0017 | $0.0016 | $0.0015 |
comment-row, per comment row | $0.001 | $0.00095 | $0.0009 | $0.00085 |
summary-row, per company summary, category company, or question theme row | $0.003 | $0.00285 | $0.0027 | $0.00255 |
apify-actor-start, per run start | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Blocked, error, and no results rows, and rows skipped by only_new, are free.
Your keys
The actor needs no key. It reads public Reddit feeds and holds no Reddit key or any other key. Proxy traffic adds nothing to your price: Mamba Labs pays the platform costs of the run. proxy_mode is a reliability setting.
Full actor documentation
apify.com/mambalabs/b2b-reddit-conversation-monitor
License
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.