Discourse MCP
Overview
Description from the maker (original English)
Discourse MCP CLI server (stdio) exposing Discourse tools via MCP
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs on your computer
- Transport: stdio
- Category: Developer tools
Install
Pick the AI app you use, then copy the settings.
Passed 2/2 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
Install Node.js
One time only; it works for every server that needs Node.js
Open the Claude desktop app’s settings file
SettingsDeveloperEdit Config
Paste these settings and save the file
{ "mcpServers": { "discourse": { "command": "npx", "args": [ "-y", "@discourse/mcp" ] } } }Quit Claude and open it again
Try it
Use Discourse MCP and tell me what you can do for me, then show me one thing✓ If Claude says it is using Discourse MCP or shows a Discourse MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Discourse MCP yet
Discourse MCP runs on your computer, but ChatGPT can only connect servers that run on the web
What you can do instead
A · Use an app that can connect Discourse MCP
- Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
- Install Node.js on your computer first (one time)
- Install Node.js on your computer first (one time)
- Install Node.js on your computer first (one time)
B · Others in Developer tools that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
- Sentry✓ ChatGPT
- Front-End Checklist✓ ChatGPT
- Compiler Explorer✓ ChatGPT
Works with Claude Code, with some setup first
Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Open Terminal
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Paste this command and press Enter
claude mcp add discourse -- npx -y @discourse/mcpType /mcp in Claude Code
You should see Discourse MCP listed as connected
Try it
Use Discourse MCP and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Discourse MCP or shows a Discourse MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Open the AI chat in Cursor in Agent mode
Try it
Use Discourse MCP and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Discourse MCP or shows a Discourse MCP tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Open the AI chat in VS Code in Agent mode
Try it
Use Discourse MCP and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Discourse MCP or shows a Discourse MCP tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
For developers: Terminal commands and JSON settings
Installed on your computer
Claude Code
claude mcp add discourse -- npx -y @discourse/mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"discourse": {
"command": "npx",
"args": [
"-y",
"@discourse/mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"discourse": {
"command": "npx",
"args": [
"-y",
"@discourse/mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"discourse": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@discourse/mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
At a glance
Which apps can use it
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Related guides
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account discourse, which owns the repo
- ✓ Pass
Still maintained
Code last changed 6 days ago
- … Not checked yet
Has a licence
We have not read this repo from GitHub yet
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Discussion
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
User reviews
No reviews yet
Compared with others in Developer toolsi
- More stars than 96% of the other 5751 servers in this category
- Published to the registry more recently than 31% of the other 5751 servers in this category
- Basic checks equal to or better than 100% of the other 5751 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is Discourse MCP safe?
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
The registry does not list a required key, though some servers ask you to sign in on first use.
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed 6 days ago, and the latest version (0.3.1) reached the registry 3 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
What can I use instead?
In the same category: REA, Netdata, Front-End Checklist
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Discourse MCP
A Model Context Protocol (MCP) stdio server that exposes Discourse forum capabilities as tools and resources for AI agents.
- Entry point:
src/index.ts→ compiled todist/index.js(binary name:discourse-mcp) - SDK:
@modelcontextprotocol/sdk - Node: >= 24
- Version: 0.3.1 (simplifies write opt-in so
--allow_writesis sufficient and deprecatesread_only=false; 0.3.0 added operator-selectable toolsets, structured directory output, and expanded opt-in administration capabilities; 0.2.x introduced breaking changes from 0.1.x, including JSON-only tool output; category/group resources remain deprecated compatibility surfaces alongside canonical list tools)
Quick start (release)
- Run (read‑only, recommended to start)
npx -y @discourse/mcp@latest
Then, in your MCP client, either:
- Call the
discourse_select_sitetool with{ "site": "https://try.discourse.org" }to choose a site, or - Start the server tethered to a site using
--site https://try.discourse.org(in which casediscourse_select_siteis hidden).
- Enable writes (opt‑in, safe‑guarded)
npx -y @discourse/mcp@latest --allow_writes --auth_pairs '[{"site":"https://try.discourse.org","api_key":"'$DISCOURSE_API_KEY'","api_username":"system"}]'
- Run with only Data Explorer built-in tools
npx -y @discourse/mcp@latest --toolsets data_explorer --tools_mode discourse_api_only
This exposes discourse_select_site plus the read-only Data Explorer tools. Add --site, authentication, and the write flags as needed; see Built-in toolsets.
- Use in an MCP client (example: Claude Desktop) — via npx
{
"mcpServers": { "discourse": { "command": "npx", "args": ["-y", "@discourse/mcp@latest"], "env": {} } } }
Alternative: if you prefer a global binary after install, the package exposes
discourse-mcp.
`json
{
"mcpServers": {
"discourse": { "command": "discourse-mcp", "args": [] }
}
}
`
Configuration
The server registers tools under the MCP server name @discourse/mcp. Choose a target Discourse site either by:
- Using the
discourse_select_sitetool at runtime (validates via/about.json), or - Supplying
--siteto tether the server to a single site at startup (validates via/about.jsonand hidesdiscourse_select_site).
- Auth
- None by default.
- Admin API Keys (require admin permissions): `--auth_pairs '[{"site":"https://example.com","api_key":"...","api_username":"system"}]'`
- User API Keys (any user can generate): `--auth_pairs '[{"site":"https://example.com","user_api_key":"...","user_api_client_id":"..."}]'`
- HTTP Basic Auth (for sites behind a reverse proxy): Add
http_basic_userandhttp_basic_passto anyauth_pairsentry. This is useful for Discourse sites protected by HTTP Basic Authentication at the reverse proxy level. - You can include multiple entries in
auth_pairs; the matching entry is used for the selected site. If bothuser_api_keyandapi_keyare provided for the same site,user_api_keytakes precedence.
- Write safety
- Writes are disabled by default.
- Built-in write tools are only registered when
--allow_writesis enabled. This includes post, topic, private-message, category, user, upload, draft, and saved Data Explorer query mutations. - Private-message listing and reading also require a matching authenticated site because PM data is never public.
- Toolset selection does not bypass write safety. A selected write tool remains absent unless writes are enabled.
- Write tools require a matching
auth_pairsentry for the selected site; otherwise they return an error. - A ~1 req/sec rate limit is enforced for write actions.
- Flags & defaults
--help,-h, or positionalhelp: print current CLI help and exit successfully before loading profiles or starting a transport.--version,-v, or positionalversion: print one package-version line and exit successfully.-vmeans version; logging verbosity uses--log_level.
--allow_writes(default: false): enable mutation tools. This single explicit opt-in is sufficient.--read_only: deprecated compatibility setting.trueis an explicit read-only override and conflicts with--allow_writes;falsehas no effect and should be removed from commands and profiles.--timeout_ms(default: 15000)--concurrency(default: 4)--log_level(default: info)debug: Shows HTTP request URLs, statuses, and detailed network/retry information (response bodies are never logged because admin APIs may echo sensitive content)info: Shows retry attempts and general operational messageserror: Shows only errorssilent: No logging output--show_emails(default: false). includes emails in user tools. Requires admin access--tools_mode(default: auto)--toolsets: Expose selected built-in domains. Omit for the compact default catalog (all non-opt-in domains); use--toolsets allto include opt-in category/group/tag-group, moderation, workflow, and AI administration domains. See Built-in toolsets.--site: Tether MCP to a single site and hidediscourse_select_site.--default-search: Unconditionally prefix every search query (e.g.,tag:ai order:latest).--max-read-length: Maximum characters returned for post content (default 50000). Applies todiscourse_read_postand per-post content indiscourse_read_topicanddiscourse_read_private_message. The tools preferrawcontent by requestinginclude_raw=true.--allowed_upload_paths: Comma-separated list or JSON array of directories allowed for local file uploads. Required to enable local file uploads indiscourse_upload_file. Example:--allowed_upload_paths "/home/user/images,/tmp/uploads"or--allowed_upload_paths '["/home/user/images"]'. These security-sensitive paths do not receive~expansion.--transport(default: stdio): Use standard input/output by default, or loopback-only Streamable HTTP with JSON responses. HTTP explicitly supports one stateful MCP client/session per process. Every post-initialize request must carry the returnedMcp-Session-Id; a second initialize is rejected. After session DELETE/close, restart the process before connecting another client./healthreturns503 restart_requiredin that closed state. Request bodies are bounded to 4 MiB.--port(default: 3000): Port to listen on when using HTTP transport.--cache_dir(reserved)--profile(see below)
- Profile file (keep secrets off the command line)
{
"auth_pairs": [ { "site": "https://try.discourse.org", "api_key": " ", "api_username": "system" }, { "site": "https://example.com", "user_api_key": " ", "user_api_client_id": " " }, { "site": "https://protected.example.com", "api_key": " ", "api_username": "system", "http_basic_user": "username", "http_basic_pass": "password" } ], "allow_writes": true, "show_emails": true, "log_level": "info", "tools_mode": "auto", "site": "https://try.discourse.org", "default_search": "tag:ai order:latest", "max_read_length": 50000, "transport": "stdio", "port": 3000, "allowed_upload_paths": ["/home/user/images", "/tmp/uploads"] }
Run with:
node dist/index.js --profile /absolute/path/to/profile.json
Current-user home expansion is also supported:
node dist/index.js --profile ~/discourse-mcp-profile.json
Flags still override values from the profile. A leading current-user ~, ~/, or ~\ in the profile path expands to the current home directory; ~otheruser, shell-style expansion elsewhere, and upload-allowlist expansion are intentionally unsupported.
Built-in toolsets
Toolsets let an operator expose only the built-in domains needed by an MCP client. They are optional: when --toolsets and the profile field are both omitted, the server registers the default catalog (including search, discourse_search, and discourse_filter_topics). Administrative and specialized domains marked *(opt-in)* below—including themes—must be selected explicitly. Use --toolsets all only when every built-in domain is deliberately required.
Pass one name or a comma-separated union:
# Data Explorer reads, plus the site-selection bootstrap tool
npx -y @discourse/mcp@latest \ --toolsets data_explorer \ --tools_mode discourse_api_only
Search and topic tools, retaining canonical registration order
npx -y @discourse/mcp@latest \ --toolsets search,topics \ --tools_mode discourse_api_only
Every built-in domain, including opt-in workflows
npx -y @discourse/mcp@latest \ --toolsets all \ --tools_mode discourse_api_only
Author, test, and run workflows (admin key required)
npx -y @discourse/mcp@latest \ --toolsets workflows \ --site https://forum.example.com \ --auth_pairs '[{"site":"https://forum.example.com","api_key":"...","api_username":"system"}]' \ --allow_writes \ --tools_mode discourse_api_only
Profiles use an array (a comma-separated string is also accepted):
{
"toolsets": ["users", "uploads"] }
Available toolsets are:
| Toolset | Built-in tools |
|---|---|
site | discourse_select_site (also retained implicitly as bootstrap for any untethered subset) |
search | Topic-level search/filtering plus post-level keyword evidence |
topics | Core topic/post reads, exact stream selection, post search, user-post activity, and mutations |
users | User lookup/listing, user-post activity, and user mutations |
chat | Chat message retrieval |
drafts | Draft retrieval, save, and deletion |
uploads | File upload |
data_explorer | Query retrieval, execution, creation, update, and deletion |
private_messages | Authenticated personal/group PM listing and reading, plus write-gated creation, replies, and participant invitations |
activity *(opt-in)* | Reply relationships, site-wide post activity, topic view history, user activity summaries and timelines, and directory/cohort metrics |
administration *(opt-in)* | Category discovery, admin-visible site settings, and explicitly confirmed user activation/approval state changes |
site_settings *(opt-in, admin-sensitive)* | Masked site-setting inspection plus write-gated, preflighted updates of ordinary non-secret settings |
webhooks *(opt-in, admin-sensitive)* | Safe webhook and delivery-history inspection plus write-gated lifecycle, ping, and single-event redelivery operations |
themes *(opt-in, admin-sensitive)* | Theme/component inspection plus write-gated local creation, editing, installation, remote synchronization, asset upload, and guarded deletion |
groups *(opt-in)* | Exhaustive empty-input group directory listing, explicit page/filter compatibility mode, complete group CRUD and membership operations, and fixed-page group-authored post evidence |
tag_groups *(opt-in, staff-sensitive)* | Public visibility-filtered search plus staff inventory/detail and write-gated, preflighted create/update/delete lifecycle |
moderation *(opt-in)* | Authenticated review queue triage, user behavioral counters, bounded post revisions, and one freshly preflighted reviewable action |
workflows *(opt-in)* | Admin-only workflow discovery, graph authoring, expression evaluation, pin-data, draft runs, step runs, executions, and version management |
| ai_agents *(opt-in)* | Admin-only AI agent discovery, typed lifecycle, bot-user creation, and portabl