mcp server
Prowlo — Reddit & X for AI agents
Reddit & X data for AI agents over MCP. Semantic search, hosted, no Reddit API.
Description as published by the maintainer. Source
- version 1.0.1
- active
- retrieval
active — Most recent push to the repository was 2026-06-18. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.
What this server can do
42 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
alert_create(name, query, status, threshold, destination)- Create an Alert. It fires when newly-ingested records match `query`. REQUIRED: `query.any` must have at least one mention term (brand/product/domain) — an alert with no mentions would match every record and is rejected. Per-match by default (one notification per new match, batched); provide `threshold` for volume/spike firing. Delivers to Slack and/or the given webhooks. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: name, query, destination.
alert_delete(id)- Delete an Alert by id. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
alert_get_deliveries(id, limit)- List recent deliveries (fires) for one Alert — what was matched and where it was sent. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
alert_list- List your organization’s Alerts (persistent rules that fire to Slack/webhooks when records match). Includes last-delivered time and total deliveries. Not metered. (requires a free Prowlo account — call it to get a signup link)
alert_update(id, name, query, status, threshold, destination)- Update an Alert (name, query, destination, threshold, or status). Only provided fields change. If `query` is provided it must still include at least one `query.any` mention term. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
get_account- Get your Prowlo account details: organization ID + name, your user ID, email, role, plan, account status, and integration state (connected Slack channels, webhook endpoints). Check `integrations` before setting an Alert destination — `destination.slack` only delivers if Slack is connected, and `destination.webhookIds` must reference the webhook ids listed here. Use this to identify your account when contacting support — quote the organizationId so we can find you quickly. (requires a free Prowlo account — call it to get a signup link)
get_alerts(limit)- Read recent operational alerts derived from real failures: errored crawl runs (critical) and failed webhook deliveries (warning), merged and time-sorted. NOT metered. (requires a free Prowlo account — call it to get a signup link)
get_crawl_activity(limit, cursor)- Read crawl-run activity: a summary (total runs, errored runs, new posts, matched, stored bytes) plus a paginated list of recent runs with per-run fetched/matched/new/duration and any error. NOT metered. (requires a free Prowlo account — call it to get a signup link)
get_dataset_summary- High-level summary of your Dataset: record count, last ingest time, number of watchers/sources, busiest channels, plus your daily live-read usage and reset time. NOT a live Reddit call — free, rate-limited only. Use this first to understand the size and shape of your archive before querying it. (requires a free Prowlo account — call it to get a signup link)
get_product_profile- Get your organization's product profile: name, description, audience, value propositions, tone, and reply guidelines. Useful context for crafting relevant replies. (requires a free Prowlo account — call it to get a signup link)
get_record(id)- Fetch one Dataset record by id (full body + intent/embedding signals + tags). NOT a live Reddit call — free, rate-limited only. (requires a free Prowlo account — call it to get a signup link) Required: id.
get_usage- Get your daily live-read usage: today's passthrough count, your daily cap, and reset time. Live-Reddit reads (social_search, social_list_posts, social_get_post, social_get_user, social_get_user_activity, social_find_channels) count toward a daily cap, charged on success. Internal-data reads (list_records, search_dataset, get_record, list_watchers, get_dataset_summary, get_crawl_activity, get_alerts, get_account) are NOT metered — only rate-limited. (requires a free Prowlo account — call it to get a signup link)
humanize_comment(text, character)- Rewrite YOUR drafted comment so it reads like a real person typed it, not an AI: strips AI tells, compresses to the 1-2 points that matter, varies rhythm, and lightly "dirties" it (lowercase sentence starts, no markdown). Best AFTER you draft a reply — write the real substance, then humanize it. INPUT RULES for best results: (1) put every fact/number/name you want kept IN the text — it never invents any; (2) keep it to ONE or TWO points — it cuts hard and drops the rest; (3) plain text only — markdown, bullet lists, and em-dashes are stripped; (4) shorter is better, ≤2000 chars; (5) one comment per call, do NOT include the post you are replying to. Pick `character` for the voice. Returns the rewrite, the AI "tells" found in your draft (so you can draft cleaner next time), and remaining daily quota. Output is intentionally imperfect + non-deterministic — do NOT "fix" it or retry for a cleaner version. Free · daily-capped · no Reddit credits. (usable right now without an account, daily-capped per IP) Required: text.
keyword_create(keyword, keywords, description, languageMode)- [DEPRECATED — renamed tag_rule_create. Will be removed after 2026-10-07.] Create TAGGING RULES (the dashboard's 'Tagging rules') — org-wide labels for posts your Watchers already ingest. This does NOT search Reddit: to add a Keyword Monitor entry that searches all of Reddit daily, use keyword_monitor_create instead. Each rule tags records across all your Watchers where the title or body mentions its term as a whole word — "f5bot" matches "f5bot." but not "f5bots". All languages are tagged by default; if the term is also an ordinary word in another language (the Swedish word "syften" means "purposes") and you only care about English posts, pass `languageMode: "non-other"` to skip records confidently detected as non-English. Pass one term as `keyword` or several at once as `keywords`. If you have no Watchers yet, create one first (with at least one subreddit) and then add rules. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link)
keyword_delete(id)- [DEPRECATED — renamed tag_rule_delete. Will be removed after 2026-10-07.] Remove a TAGGING RULE (dashboard: 'Tagging rules') and stop it from tagging posts — not a Keyword Monitor entry (those are Watchers; see watcher_delete). This action cannot be undone. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link) Required: id.
keyword_list- [DEPRECATED — renamed tag_rule_list. Will be removed after 2026-10-07.] List your org's TAGGING RULES (the dashboard's 'Tagging rules') — labels applied to posts your Watchers already ingest. NOT the dashboard's Keyword Monitor: for the keywords that search all of Reddit daily, use keyword_monitor_list. Each rule tags matching Dataset records whose title or body mentions its term as a whole word. Returns the term, active status, and match statistics. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link)
keyword_monitor_create(tags, query, description)- Add a Keyword Monitor entry — searches all of Reddit daily for this query and ingests matches into your Dataset. This is the tool for "track keyword X on Reddit". Draws from your plan's keyword limit (see keyword_monitor_list). Creates a Watcher with platform "reddit_search" under the hood, so watcher_update/watcher_delete manage it afterwards. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: query.
keyword_monitor_list- List your Keyword Monitor entries (the dashboard's "Keywords" page): each searches all of Reddit once a day for its query and ingests matches into your Dataset. Returns your keyword quota (used/max; max -1 = unlimited). Add via keyword_monitor_create; pause via watcher_update; delete via watcher_delete (ids are Watcher ids). NOT the tagging rules — see tag_rule_list. Not a live Reddit call — free, rate-limited only. (requires a free Prowlo account — call it to get a signup link)
keyword_update(id, active, keyword, description)- [DEPRECATED — renamed tag_rule_update. Will be removed after 2026-10-07.] Update a TAGGING RULE (dashboard: 'Tagging rules') — not a Keyword Monitor entry (those are Watchers; see watcher_update). Rename its term (pass `keyword`), set what it refers to (pass `description`), and/or pause/resume it (pass `active`). Renaming keeps already-tagged records on the old tag; new matches use the new term. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link) Required: id.
list_records(to, any, from, tags, view, limit, cursor, intent, exclude, include, keyword, minScore, platforms, watcherId, subreddits, minComments, includeSuppressed)- List records in your Dataset (Prowlo’s indexed posts from crawled sources). NOT a live Reddit call — free, rate-limited only. Filter by view (all/matched), subreddits, platforms, tags, keyword, `any` (brand-variant OR-group), include/exclude, intent, score/comments, date range, watcherId. Paginated via cursor. Note: tags / watcherId are record-level, so passing either uses the "matched" view automatically. Records whose keyword match was AI-judged coincidental are hidden by default (pass includeSuppressed:true to see them; each record carries a `verification` field). A filtered page can hold fewer than `limit` items — page until nextCursor is null. Long record bodies are trimmed to keep the page scannable — use get_record for a record’s full body. (requires a free Prowlo account — call it to get a signup link)
list_watchers- List the Watchers configured for your organization (the same ones the dashboard manages). Each Watcher shows its sources (platform + channel), paused state, tags (including ones set in the dashboard), record counts, and how many records arrived today. Watchers with platform "reddit_search" are the dashboard's Keyword Monitor entries — for those, the subreddit field holds the search query, not a subreddit. NOT a live Reddit call — free, rate-limited only. (requires a free Prowlo account — call it to get a signup link)
search_dataset(to, any, from, mode, tags, tier, limit, query, cursor, intent, exclude, include, minScore, platforms, watcherId, subreddits, minComments, includeSuppressed)- Semantic or keyword search across your Dataset (vector + full-text over your indexed corpus). NOT a live Reddit call — free, rate-limited only. Supports the full record filter: subreddits, platforms, `any` (brand-variant OR-group), include/exclude, intent, score/comments, date range, tags, watcherId. Records whose keyword match was AI-judged coincidental are hidden by default (pass includeSuppressed:true to see them; each record carries a `verification` field). Long record bodies are trimmed to keep results scannable — use get_record for a match’s full body. (requires a free Prowlo account — call it to get a signup link) Required: query.
social_find_channels(query, channel, include, platform)- Discover or inspect channels (Reddit subreddits). Pass `query` to search, or an exact `channel` for its metadata (+ rules via include:["rules"]). Reddit only — hackernews has no channels. 1 credit · read-only. (requires a free Prowlo account — call it to get a signup link) Required: platform.
social_get_post(id, platform, commentLimit, includeComments)- Fetch one post/story with its comment thread. id: reddit permalink URL / t3_xxx / bare id; hackernews numeric item id. includeComments (default true), commentLimit≤20. 1 credit · read-only. Reddit comments via RSS are flat/unscored. (requires a free Prowlo account — call it to get a signup link) Required: platform, id.
social_get_user(platform, username)- Fetch a user profile. reddit: account age, karma, verified-email. hackernews: karma, about, created, submission count. 1 credit · read-only. (requires a free Prowlo account — call it to get a signup link) Required: platform, username.
social_get_user_activity(kind, limit, platform, username)- Fetch a user's recent submissions or comments. kind=submissions|comments (default submissions). reddit via RSS (newest-first, ~20). 1 credit · read-only. (requires a free Prowlo account — call it to get a signup link) Required: platform, username.
social_list_posts(sort, time, limit, channel, platform)- List posts/stories. platform="reddit": REQUIRES channel (subreddit); sort? hot|new|top|rising|controversial; time? for top/controversial; limit≤20. platform="hackernews": sort carries the ranking top|new|best|ask|show|job (default top); channel ignored; limit≤30. 1 credit · read-only. (requires a free Prowlo account — call it to get a signup link) Required: platform.
social_search(sort, tags, time, limit, query, since, author, platform, minPoints, subreddit)- Live full-text search of a source. platform="reddit": params query, subreddit? (restrict), sort? (relevance/hot/new/top/comments), time?, limit≤20. platform="hackernews": params query, sort? (relevance/new), tags? (story/ask_hn/show_hn), minPoints?, author?, since? (unix), limit≤20. 1 credit · read-only. Reddit results come via RSS (score/comments may be 0). Long bodies are truncated; fetch a single post for the full text. (requires a free Prowlo account — call it to get a signup link) Required: platform, query.
tag_rule_create(keyword, keywords, description, languageMode)- Create TAGGING RULES (the dashboard's 'Tagging rules') — org-wide labels for posts your Watchers already ingest. This does NOT search Reddit: to add a Keyword Monitor entry that searches all of Reddit daily, use keyword_monitor_create instead. Each rule tags records across all your Watchers where the title or body mentions its term as a whole word — "f5bot" matches "f5bot." but not "f5bots". All languages are tagged by default; if the term is also an ordinary word in another language (the Swedish word "syften" means "purposes") and you only care about English posts, pass `languageMode: "non-other"` to skip records confidently detected as non-English. Pass one term as `keyword` or several at once as `keywords`. If you have no Watchers yet, create one first (with at least one subreddit) and then add rules. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link)
tag_rule_delete(id)- Remove a TAGGING RULE (dashboard: 'Tagging rules') and stop it from tagging posts — not a Keyword Monitor entry (those are Watchers; see watcher_delete). This action cannot be undone. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link) Required: id.
tag_rule_list- List your org's TAGGING RULES (the dashboard's 'Tagging rules') — labels applied to posts your Watchers already ingest. NOT the dashboard's Keyword Monitor: for the keywords that search all of Reddit daily, use keyword_monitor_list. Each rule tags matching Dataset records whose title or body mentions its term as a whole word. Returns the term, active status, and match statistics. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link)
tag_rule_update(id, active, keyword, description)- Update a TAGGING RULE (dashboard: 'Tagging rules') — not a Keyword Monitor entry (those are Watchers; see watcher_update). Rename its term (pass `keyword`), set what it refers to (pass `description`), and/or pause/resume it (pass `active`). Renaming keeps already-tagged records on the old tag; new matches use the new term. Changes take effect on the next scheduled processing cycle. Existing opportunity scores and matches are not retroactively updated. (requires a free Prowlo account — call it to get a signup link) Required: id.
trend_create(name, query, window, interval)- Create a Trend: a saved match query bucketed over time. `interval` is "hour" or "day"; `window` is how far back to compute (e.g. "30d"). Points recompute periodically. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: name, query.
trend_delete(id)- Delete a Trend by id. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
trend_get(id)- Get one Trend with its computed time-series points (count + per-intent breakdown per interval bucket). Points are sparse: interval buckets with zero matches are omitted, not stored as 0 — treat missing buckets as zero when charting. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
trend_list- List your organization’s Trends (saved queries that produce a time-series, e.g. brand-mention counts over time). Includes computed point counts. Points are sparse: only interval buckets with at least one matching record are stored, so pointCount can be far below window÷interval — a 30d daily trend with matches on one day has pointCount 1. Not metered. (requires a free Prowlo account — call it to get a signup link)
trend_update(id, name, query, window, interval)- Update a Trend (name, query, interval, or window). Only provided fields change. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
watcher_add_source(channel, platform, subreddit, watcherId)- Deprecated: a Watcher watches exactly one community/query. Use watcher_create to watch another community (one Watcher is created per source). Not metered. (requires a free Prowlo account — call it to get a signup link) Required: watcherId.
watcher_create(tags, sources)- Create Watchers — including KEYWORD MONITOR entries (the dashboard's "Keywords" page): pass platform "reddit_search" with the search query as `channel`; each searches all of Reddit daily and draws from its own per-plan keyword limit (keyword_monitor_create is the one-query shortcut). Community watchers (a subreddit or HN feed) are the default platform. A Watcher watches exactly ONE community/query, so each `sources` entry creates its own Watcher (its name is derived from the source, e.g. "r/saas"). Subject to your plan's Watcher limits. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: sources.
watcher_delete(id)- Delete a Watcher by id (also removes its source and records). Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
watcher_remove_source(sourceId, watcherId)- Remove a source from a Watcher by source id. (A source-less Watcher ingests nothing — usually you want watcher_delete.) Not metered. (requires a free Prowlo account — call it to get a signup link) Required: watcherId, sourceId.
watcher_update(id, tags, paused)- Pause/resume a Watcher and/or replace its tags. (Names are derived from the source and cannot be changed.) `tags` replaces the Watcher's plain tags — tags added by conditional tagging rules in the dashboard are unaffected. Not metered. (requires a free Prowlo account — call it to get a signup link) Required: id.
Last successful function declaration observed on . Source: https://api.prowlo.com/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://api.prowlo.com/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 0 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-06-18 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 1 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 1.0.1 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-18 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-06-18 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 42 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | api.prowlo.com | |
| mcp endpoint status | ok | The server listed 42 functions when asked. | as of probe | api.prowlo.com |
Where to get it
Related, by what their authors tagged them
-
Reddit Trends API
— last commit 2026-08-03, shares reddit, social-listening
Reddit discussion volume and subreddit growth over time. Free key at trendsapi.ai
-
com.tweetsmash/mcp
— last commit 2026-07-11, shares twitter, x
Search, label, and manage your X (Twitter) bookmarks from any MCP client via Tweetsmash
-
CarryFeed
— last commit 2026-05-16, shares twitter, x
Resolve public X/Twitter profiles, posts, and media through CarryFeed.
-
UnifAPI
— last commit 2026-05-31, shares social-listening
Hosted MCP server for live public-data APIs and Skills for AI agents.
-
io.github.AutomateLab-tech/content-distribution
— last commit 2026-06-08, shares reddit, twitter
Publish content to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, and Medium.
-
Adlicio
— last commit 2026-07-30, shares reddit
Scrape customer comments and reviews from Reddit, YouTube, Amazon, TikTok, and 25+ platforms.
-
io.github.AbYousef739/signalpipe
— last commit 2026-06-11, shares reddit
Agentic Reddit/HN buying-signal detection for Claude Code, Cursor, and Windsurf via MCP.
-
Reddit Ads
— last commit 2026-07-28, shares reddit
Reddit Ads API v3: campaigns, ad groups, ads, reports, plus working writes with safety tiers.
-
Social Trends Intelligence MCP
— last commit 2026-07-16, shares reddit
Trending topics, cross-platform sentiment, viral content, community pulse & brand mentions.
-
io.github.alexcloudstar/makers-page-mcp
— last commit 2026-08-03, shares twitter
Marketing Assistant MCP: draft, approve, and publish posts to X from your coding agent.
These share tags the maintainers applied themselves, such as reddit, social-listening, twitter, x. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
How the author describes it
Topics the maintainer set on GitHub: ai-agents, claude, cline, cursor, mcp, mcp-server, model-context-protocol, reddit, reddit-mcp, reddit-mcp-server, semantic-search, social-listening, twitter, x.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json