discourse-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCOURSE_URL | Yes | Forum base URL, e.g. https://forum.example.com | |
| DISCOURSE_API_KEY | Yes | API key for the bot account | |
| DISCOURSE_API_USERNAME | Yes | The bot's username (Api-Username) | |
| DISCOURSE_MCP_ALLOW_WRITES | No | Set to '1' to enable write tools (post/like/bookmark/…) | 0 |
| DISCOURSE_MCP_DEFAULT_SEARCH | No | Prefix prepended to every search query | |
| DISCOURSE_MCP_MAX_READ_LENGTH | No | Truncate raw post bodies to this many chars | 50000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discourse_searchA | Full-text search of the forum; returns matching topics (id, slug, title). |
| discourse_read_topicA | Read a topic's posts (raw markdown), oldest first from an optional start. |
| discourse_read_postA | Read a single post's raw markdown and metadata by post id. |
| discourse_get_userB | A user's public profile: name, trust level, bio (About Me), staff flags. |
| discourse_list_categoriesA | List the forum's categories (id, name, slug, topic count). |
| discourse_list_notificationsA | The bot's OWN notifications (mentions, replies, likes, PMs). Read-only peek; does not clear unread. |
| discourse_read_private_messageA | Read a private-message topic's posts (raw). Errors if the topic is not a PM. |
| discourse_list_private_messagesA | List the bot's private-message topics in a mailbox. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool maps to a distinct resource/action: search, topic, post, user, categories, notifications, PM list, and PM content. The two PM tools are clearly list-vs-read, and read_private_message's error behavior clarifies its boundary.
Tool names consistently use snake_case and the discourse_ prefix, but the verb choice is slightly mixed across search, read, get, and list. This is mostly predictable, with minor deviations like discourse_get_user standing apart from the discourse_read_* content tools.
Eight tools is a well-scoped size for a read-only Discourse client. Each tool earns its place, covering public reading, search, user info, categories, notifications, and private messages without redundancy.
The read-only surface covers the main resources, but there is no direct way to list or browse topics, such as latest topics or topics within a category, so discovery depends heavily on search. Write/reply operations are also absent, which is consistent with a read-only intent but limits full forum workflows.