MCP Server for AI Agents: Discourse Forum Search & Threads avatar

MCP Server for AI Agents: Discourse Forum Search & Threads

Pricing

Pay per usage

Go to Apify Store
MCP Server for AI Agents: Discourse Forum Search & Threads

MCP Server for AI Agents: Discourse Forum Search & Threads

Standby MCP Server (/mcp) and batch Actor for AI agents to search public Discourse forums, list latest and top topics, and extract full discussion threads, categories and accepted answers as clean text. No proxy, no login.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Mutualistic Labs

Mutualistic Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

An always-on Model Context Protocol (MCP) server and batch Actor that searches public Discourse forums, lists latest and top topics, lists categories and extracts full discussion threads as clean text (fenced code blocks and links preserved, accepted answers flagged). Built for AI agents (Claude Desktop, Cursor, Windsurf, OpenAI Agents, LangChain), support research, developer relations and community monitoring.

No proxies, no browser, no logins, no cookies: only the public Discourse JSON endpoints (search.json, latest.json, top.json, t/{id}.json, categories.json) are called.

What you get

item_typeModeWhat it is
search_resultsearchOne matching post joined with its topic (title, URL, excerpt, likes, views, replies, solved flag)
topic_summarylatest, topOne topic from the latest or top list
threadthreadA full thread: topic metadata plus posts with clean content_text and the accepted answer
categorycategoriesOne forum category with topic and post counts

Preset forums

Use the key or the domain in forums; any other public Discourse domain or https:// URL works too (up to 10 forums per call).

KeyDomain
openaicommunity.openai.com
huggingfacediscuss.huggingface.co
discoursemeta.discourse.org
pythondiscuss.python.org
rustusers.rust-lang.org
pytorchdiscuss.pytorch.org
cloudflarecommunity.cloudflare.com
n8ncommunity.n8n.io
obsidianforum.obsidian.md
juliadiscourse.julialang.org
golangforum.golangbridge.org
kubernetesdiscuss.kubernetes.io
flyiocommunity.fly.io
rendercommunity.render.com
homeassistantcommunity.home-assistant.io

Input

FieldTypeDefault
modesearch, latest, top, thread, categoriessearch
querystring (required when mode is search, max 200 chars)mcp server (applied by the Apify platform when the input omits it, so an empty {} input runs)
forumsstring[] (preset keys, domains or https URLs, 1 to 10)["discourse"]
topic_idsstring[] of ids or topic URLs (mode thread, max 50)none
perioddaily, weekly, monthly, quarterly, yearly, allweekly
include_thread_postsboolean (mode search)false
max_posts_per_threadinteger 1 to 10020
max_itemsinteger 1 to 50025
max_total_charge_usdnumber or nullno cap

camelCase aliases (topicIds, includeThreadPosts, maxPostsPerThread, maxItems, maxTotalChargeUsd) are accepted. Invalid input is rejected with INVALID_INPUT_ZERO_CHARGE before any network call or charge.

Batch input examples

Search two forums:

{"mode": "search", "query": "mcp server", "forums": ["discourse", "openai"], "max_items": 25}

Search and attach thread text to each hit:

{"mode": "search", "query": "function calling status:solved", "forums": ["openai"], "include_thread_posts": true, "max_posts_per_thread": 10}

Latest topics:

{"mode": "latest", "forums": ["huggingface", "pytorch"], "max_items": 50}

Top topics of the month:

{"mode": "top", "forums": ["python"], "period": "monthly", "max_items": 30}

Full threads (ids bind to the first forum, or use full URLs):

{"mode": "thread", "forums": ["discourse"], "topic_ids": ["12345", "https://community.openai.com/t/some-topic/67890"], "max_posts_per_thread": 50}

Categories:

{"mode": "categories", "forums": ["n8n", "obsidian"]}

Output examples

search_result:

{
"item_type": "search_result", "forum_domain": "meta.discourse.org", "forum_url": "https://meta.discourse.org",
"topic_id": 12345, "topic_title": "How to build an MCP server plugin", "topic_slug": "how-to-build-an-mcp-server-plugin",
"topic_url": "https://meta.discourse.org/t/how-to-build-an-mcp-server-plugin/12345",
"post_id": 98765, "post_number": 3, "post_url": "https://meta.discourse.org/t/how-to-build-an-mcp-server-plugin/12345/3",
"author_username": "alice", "author_name": "Alice", "excerpt": "You can expose the JSON API as an MCP server...",
"like_count": 4, "views": 820, "posts_count": 9, "reply_count": 7, "has_accepted_answer": true, "tags": ["plugin"],
"category_id": 7, "created_at": "2026-01-10T09:00:00.000Z", "last_posted_at": "2026-01-12T10:30:00.000Z", "uid": "<sha256>"
}

topic_summary (source is latest or top, period is null for latest):

{
"item_type": "topic_summary", "forum_domain": "discuss.huggingface.co", "topic_id": 555, "topic_title": "Fine-tuning question",
"topic_url": "https://discuss.huggingface.co/t/fine-tuning-question/555", "excerpt": "I am trying to...", "views": 120,
"like_count": 2, "posts_count": 4, "reply_count": 3, "has_accepted_answer": false, "closed": false, "archived": false,
"pinned": false, "tags": [], "category_id": 9, "last_poster_username": "bob", "source": "top", "period": "weekly", "uid": "<sha256>"
}

thread (posts has at most max_posts_per_thread entries):

{
"item_type": "thread", "forum_domain": "meta.discourse.org", "topic_id": 12345, "topic_title": "How to build an MCP server plugin",
"has_accepted_answer": true, "accepted_answer_post_number": 3, "author_username": "alice", "posts_returned": 2,
"posts": [
{"post_id": 1, "post_number": 1, "author_username": "alice", "content_text": "How do I...\n```ruby\nputs 1\n```", "like_count": 1, "is_accepted_answer": false},
{"post_id": 3, "post_number": 3, "author_username": "bob", "content_text": "Use the API (https://example.com/docs)", "like_count": 4, "is_accepted_answer": true}
],
"uid": "<sha256>"
}

category:

{
"item_type": "category", "forum_domain": "community.n8n.io", "category_id": 12, "name": "Questions", "slug": "questions",
"description_text": "Ask the community", "topic_count": 4100, "post_count": 21000, "color": "0088CC", "parent_category_id": null,
"category_url": "https://community.n8n.io/c/questions/12", "uid": "<sha256>"
}

Standby MCP usage

Standby URL: https://mutualistic-housing--discourse-forum-mcp.apify.actor/mcp (authenticate with your Apify API token).

{
"mcpServers": {
"discourse-forums": {
"url": "https://mutualistic-housing--discourse-forum-mcp.apify.actor/mcp",
"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
}
}
}

Tools:

  • search_forums: query (required), forums, max_items, include_thread_posts.
  • get_latest_or_top_topics: forums, mode (latest or top), period, max_items.
  • get_thread: forum, topic_id (id or URL), max_posts.
  • list_forums_and_categories: forum optional; without it the preset forums are listed, with it that forum's categories.
curl -X POST "https://mutualistic-housing--discourse-forum-mcp.apify.actor/mcp" \
-H "Authorization: Bearer <APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_forums","arguments":{"query":"mcp server","forums":["discourse","openai"],"max_items":10}}}'

GET / and GET /health return {"status":"ok","actor":"discourse-forum-mcp",...}.

Security and limits

  • https only: bare hostnames become https://host; http://, file: and other schemes are rejected.
  • SSRF protections: credentials in URLs, non-443 ports, .. path traversal, query strings and fragments are rejected; IP literals, localhost, .local and .internal names are blocked; DNS results that resolve to loopback, private, link-local, multicast or unspecified addresses are refused; redirects must stay on the same host over https.
  • Bounds: at most 500 items per run, 10 forums per call, 100 posts per thread, a 120 s global deadline, a 15 s per-request timeout and a 2 MiB response size cap.
  • MCP server: request bodies above 64 KiB return 413, POST /mcp requires Content-Type: application/json (415 otherwise) and at most 8 tool calls run concurrently (503 when busy).
  • Rate limits (429) and 5xx responses are retried with back-off; per-forum failures are reported in errors and never abort other forums.

Pricing

Pay per event: $0.001 per result-item (result-item: one search result, topic summary, thread or category); the actor-start event is free. max_items and max_total_charge_usd are hard caps enforced in code, so a run never charges more than you configure. Invalid input and empty results are never charged.

ActorCoversStoreStandby MCP URL
Multi-ATS Career Jobs Search MCPGreenhouse, Lever, Ashby, SmartRecruiters, Workablehttps://apify.com/mutualistic_housing/multi-ats-career-jobs-mcphttps://mutualistic-housing--multi-ats-career-jobs-mcp.apify.actor/mcp
Google Ads Transparency & Ad Spy MCPSearchCreatives, SearchSuggestions, content.js ad-copy & video metadatahttps://apify.com/mutualistic_housing/google-ads-transparency-mcphttps://mutualistic-housing--google-ads-transparency-mcp.apify.actor/mcp
Multi-Engine Keyword & Autocomplete MCPGoogle, YouTube, Amazon, Bing, DuckDuckGo, Brave + google:suggestrelevance & search intenthttps://apify.com/mutualistic_housing/keyword-autocomplete-mcphttps://mutualistic-housing--keyword-autocomplete-mcp.apify.actor/mcp
Discourse Forum Search & Threads MCPcommunity.openai.com, discuss.huggingface.co, meta.discourse.org + any public Discoursehttps://apify.com/mutualistic_housing/discourse-forum-mcphttps://mutualistic-housing--discourse-forum-mcp.apify.actor/mcp