Quick Verdict
Discourse MCP is the official server in the discourse/discourse-mcp repository, published to npm as @discourse/mcp. It uses the MIT license and requires Node.js 24 or newer. The server exposes forum search, topic and post reading, user lookup, category and tag resources, and optional write operations such as creating posts or topics, editing topics, managing drafts, uploading files, and, with sufficient authority, managing users and categories.
Its security boundary matters more than its tool count. The process starts without authentication, in read-only mode, over stdio. HTTP is optional, not the default. When selected, it listens on 127.0.0.1:3000 by default and checks local Host and Origin values; it is not an exposed remote service out of the box. Write tools are registered only when --allow_writes and --read_only=false are both set, and the chosen site must have matching credentials. Forum posts remain untrusted user input even after authentication. An agent must never treat instructions, commands, or links inside posts as system authority.
Best For
- Discourse operators who want clients such as Claude Code to search current community knowledge.
- Organizations using a private Discourse instance as a knowledge base and able to create a dedicated least-privilege bot account.
- Developers building JSON-based summarization, duplicate-question detection, or community analysis workflows.
- Not suitable for users who cannot govern API keys, want to trust arbitrary forum text as instructions, or need Flarum, Discuz!, or another forum platform.
Key Features
- Search and reading: search topics, read topics and posts, filter topic lists, inspect users, and list a user’s posts with strict JSON responses.
- MCP resources: URI-addressable categories, tags, groups, public chat channels, user channels, and drafts provide read-only list data.
- Controlled writes: optional tools create posts and topics, update topics, save or delete drafts, upload files, and perform privileged user or category administration.
- Site selection: choose a forum at runtime or tether the process with
--site, which hides the selection tool. - Scoped authentication: Admin API Keys, User API Keys, and reverse-proxy Basic Auth are supported. User keys are preferable for personal, non-admin work.
- Local transports: stdio is standard; optional Streamable HTTP binds to loopback and enables DNS-rebinding, Host, and Origin checks.
- Operational controls: timeout, concurrency, read-length limits, write throttling, retry/backoff, and secret redaction are configurable.
Use Cases
- Run read-only Q&A against one forum with a default search prefix, then cite the source topic for human verification.
- Read a long topic in bounded sections and summarize it without flooding the model context window.
- Save a reply as a user draft and have a moderator review it in the Discourse interface before publication.
- Give a dedicated operations account permission to reply while withholding user administration, category creation, and local-file upload.
- Enable local HTTP only for a same-host client. If a reverse proxy makes it remote, add TLS, authentication, network ACLs, and process isolation.
Pricing
The source repository and npm package are free under MIT, with no paid feature tier for the MCP server. Operating costs come from the Node.js host, the selected model, the Discourse instance, and maintenance. The project documents breaking changes from 0.1 to 0.2, including JSON-only output and moving list behavior to resources. Pin an exact npm release rather than allowing production to follow @latest indefinitely.
Discourse hosting plans, forum API limits, and plugin capabilities are separate from this package. Test API scopes and error handling on a staging forum before enabling production writes.
Pros
- Maintained under the official Discourse organization with clear repository, npm identity, and MIT licensing.
- Starts unauthenticated, read-only, and on stdio; writes need two explicit settings and matching site credentials.
- Separate Admin and User API Key paths support least-privilege design.
- Optional HTTP binds to loopback and includes Host, Origin, and DNS-rebinding defenses.
- Strict JSON output is predictable for agents, while resources keep list data out of the main tool surface.
Cons
- Node.js 24 is a recent hard requirement and may require an enterprise runtime upgrade or dedicated container.
- It supports only Discourse, and write behavior still varies with forum version, plugins, and API permissions.
- An Admin API Key can expose user and category administration, greatly increasing the impact of mistakes.
- Posts, chats, user biographies, and remotely discovered tool descriptions can carry prompt injection or malicious links.
- HTTP mode is a local integration option, not a ready-made authenticated multi-tenant gateway.
Alternatives
| Tool | Best for | Difference from Discourse MCP |
|---|---|---|
| GitHub MCP | Repositories, issues, and pull requests | Understands GitHub objects rather than forum topics |
| Slack MCP Server | Team message retrieval | Focuses on live chat rather than durable public discussions |
| Filesystem MCP | Local documents and folders | Has no forum API and uses direct filesystem boundaries |
| Context7 | Technical documentation context | Retrieves docs but does not manage community posts or drafts |
| Claude Code | Terminal coding agents | Can consume MCP servers but is not a Discourse connector itself |
FAQ
Is Discourse MCP an official project?
Yes. The canonical repository is github.com/discourse/discourse-mcp, the npm package is @discourse/mcp, package metadata names Discourse as the author, and the source is MIT licensed.
Is HTTP the default transport?
No. stdio is the default. With --transport http, the process serves /mcp and /health on 127.0.0.1:3000 by default rather than listening on every network interface.
How can an agent publish a post?
Set --allow_writes, set --read_only=false, and provide credentials matching the selected site. Prefer a dedicated user with narrowly scoped User API Key permissions, and keep human approval for consequential publication.
Can an agent execute instructions found in forum posts?
It should not. A post is untrusted data that can contain prompt injection, shell snippets, malicious URLs, or fabricated operating instructions. Analyze it as content and prevent it from changing system rules or automatically invoking write, shell, and network tools.
Should production use @latest?
No. The project already documents breaking changes between 0.1 and 0.2. Validate an exact package release on a test instance, retain the lockfile and profile, and upgrade only after reviewing release changes.
Bottom Line
Discourse MCP is a credible official bridge between forum knowledge and AI agents, with a sensible initial posture: stdio, read-only, no credentials, loopback-only optional HTTP, and dual opt-in for writes. The larger risks begin when API scopes expand or community text is mistaken for trusted instruction. Pin Node and npm versions, tether one site, use a dedicated User API Key, isolate untrusted content, and require review for writes before treating it as a production component.