Discourse MCP logo

Discourse MCP

by discourse

Searches, reads, analyzes, and optionally manages Discourse sites through MCP tools with configurable authentication and write controls.

Install Discourse MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "discourse-discourse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@discourse/mcp@latest"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 16 tools correctly (1mo ago).

Overview

Searches and reads Discourse communities through the discourse/discourse-mcp MCP server, returning structured JSON for topics, posts, users, chat messages, private messages, and Data Explorer results. It can target a site selected at runtime or be tethered to one site at startup, using public access or configured API and proxy credentials. Read operations are the default; mutation tools require explicit write enablement and matching authentication. Reach for it when an MCP client needs forum search, bounded topic evidence, user discovery, private-message access, or read-only Discourse SQL queries.

Use cases

  • Search forum topics and posts for answers or prior discussions
  • Read bounded evidence from long Discourse topics
  • Inspect user profiles and posting history
  • Run read-only Data Explorer queries with admin credentials
  • Retrieve authenticated private messages and chat-channel messages

Key features

  • Topic, post, and user search
  • Bounded topic and post retrieval
  • Chat and private-message access
  • Read-only Data Explorer queries
  • Multi-site selection and authentication
  • Opt-in write controls

Tools16

What Discourse MCP lets your agent do. Expand a tool for its parameters.

Verified live~2.3k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

21/21 checks healthy over the last 78d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9d ago via OSV.dev · @discourse/mcp@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars78Stargazers on the source repository.
npm downloads6.4kPackage downloads in the last 30 days.
Last commit5d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed16Callable tools this server registers over MCP.
Directory activity5 viewsConfig copies, upvotes, and views on AllMCPs.

How Discourse MCP works

What the discourse/discourse-mcp MCP server does

The discourse/discourse-mcp MCP server exposes Discourse forum capabilities through the Model Context Protocol. It is distributed as a Node package, uses the MCP SDK, and supports Node.js 24 or newer. The default transport is stdio, which fits desktop MCP clients and local agent processes; a loopback Streamable HTTP mode is also available for a stateful client session.

The server covers common forum investigation tasks. Agents can validate and select a Discourse site, search topics or individual posts, inspect topic metadata and post content, retrieve bounded sections of a topic, and look up users. Additional tools expose user post history, chat-channel messages, private-message mailboxes, drafts, and Data Explorer queries. Private messages require authentication and cannot be read as public topics.

How it works

A site can be selected during execution with discourse_select_site, which validates the target through Discourse’s /about.json endpoint. Alternatively, --site binds the process to one URL and removes the site-selection tool. Search and topic tools return JSON structures with result arrays and pagination metadata. Post-oriented tools preserve matched posts, authors, topics, categories, excerpts, and other evidence instead of reducing results to topic matches.

Topic reading has bounded behavior. A full topic read may make multiple upstream requests when a large post limit is requested. The topic-posts tool supports exact, earliest, latest, around-post, and username-based selection, with a maximum of 50 posts and an indication of the visible stream size. Data Explorer execution is read-only, accepts parameters, returns columns and rows, and has a 10-second query timeout.

The discourse/discourse-mcp MCP server starts without credentials by default, but authenticated site entries can be supplied for API access. It accepts administrator API keys, user API keys, and optional HTTP Basic credentials for sites protected by a reverse proxy. Multiple site entries may be configured, with the entry matching the selected site used for requests.

Setup and configuration

The release package can be started with npx -y @discourse/mcp@latest. An MCP client can launch it as a command, or use the installed discourse-mcp binary. The README gives a Claude Desktop configuration using the npx command. A JSON profile is available when credentials or operational settings should not be placed directly in shell arguments; command-line flags override profile values.

Useful options include --timeout_ms, --concurrency, --log_level, --show_emails, --max-read-length, --default-search, and --toolsets. Toolsets allow an operator to expose selected domains instead of the default catalog. --tools_mode can restrict operation to the Discourse API or select the tool-execution API behavior described by the project.

Writes are disabled unless --allow_writes is supplied. Write-capable domains include posts, topics, private messages, categories, users, uploads, drafts, and saved Data Explorer queries, subject to matching authentication. Write actions are rate-limited to approximately one request per second. Local uploads additionally require an allowed-path configuration.

Tools and capabilities

  • Select and validate a Discourse site.
  • Search topics or post-level evidence using Discourse query syntax.
  • Filter, rank, and inspect topics through filtered, top, or hot views.
  • Read complete or bounded topic and post evidence.
  • Discover users and list a user’s posts; listing all users requires an admin API key.
  • Retrieve chat messages, drafts, private messages, and Data Explorer query details.
  • Execute read-only Data Explorer queries with an admin API key.

Limitations and notes

The discourse/discourse-mcp MCP server’s post search is keyword-based, not Discourse AI semantic search. The “hot” topic view is defined as daily top, not sentiment, controversy, or real-time activity. Admin API keys are required for user-directory listing, Data Explorer query inspection, and query execution. Showing email addresses requires admin access and the relevant option.

Private-message tools require a matching authenticated site because private-message data is never public. HTTP transport supports one stateful MCP client session per process; a new process is required after that session is closed. The deprecated --read_only=false setting should not be used; --allow_writes is the current write opt-in.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Discourse MCP

Run `npx -y @discourse/mcp@latest`, then configure the command in an MCP client. The package also exposes a `discourse-mcp` binary after installation.

Yes. The setup material includes a Claude Desktop configuration that starts the server through `npx`.

Call `discourse_select_site` with a site URL, or start the process with `--site <url>` to tether it to one site.

Start it with `--allow_writes` and provide a matching authenticated `auth_pairs` entry for the selected site. Writes are disabled by default.

Yes. It can retrieve query details and run parameterized, read-only Data Explorer queries. These operations require an admin API key and have a 10-second timeout.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewDiscourse MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/discourse-discourse-mcp?style=directory)](https://allmcps.com/mcp/discourse-discourse-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/discourse-discourse-mcp"><img src="https://allmcps.com/api/badge/discourse-discourse-mcp?style=directory" alt="Discourse MCP on AllMCPs" /></a>