Discourse MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discourse_select_siteA | Validate and select a Discourse site for subsequent tool calls. |
| discourse_searchC | Search site content. |
| discourse_read_topicC | Read a topic metadata and first N posts. |
| discourse_read_postC | Read a specific post. |
| discourse_list_categoriesB | List categories visible to the current auth context. |
| discourse_list_tagsC | List tags (if enabled). |
| discourse_get_userC | Get basic user info. |
| discourse_list_user_postsA | Get a list of user posts and replies from a Discourse instance, with the most recent first. Returns 30 posts per page by default. Use the page parameter to paginate (page 0 = offset 0, page 1 = offset 30, etc.). |
| discourse_filter_topicsA | Filter topics with a concise query language: use key:value tokens separated by spaces; category/categories for categories (comma = OR, '=category' = without subcats, '-' prefix = exclude), tag/tags (comma = OR, '+' = AND) and tag_group; status:(open|closed|archived|listed|unlisted|public) and personal in:(bookmarked|watching|tracking|muted|pinned); dates: created/activity/latest-post-(before|after) with YYYY-MM-DD or N (days); numeric: likes[-op]-(min|max), posts-(min|max), posters-(min|max), views-(min|max); order: activity|created|latest-post|likes|likes-op|posters|title|views|category with optional -asc; free text terms are matched full-text. Results are permission-aware. |
| discourse_list_chat_channelsB | List all public chat channels visible to the current user. Returns channel information including title, description, and member counts. |
| discourse_list_user_chat_channelsA | List all chat channels for the currently authenticated user, including both public channels they're a member of and direct message channels. Includes unread tracking information. |
| discourse_get_chat_messagesA | Get messages from a chat channel with flexible pagination and date-based filtering. Supports: (1) paginating with direction='past'/'future' from a target_message_id, (2) querying messages around a specific target_date, (3) getting messages around a target_message_id, or (4) fetching from last read position. |
| discourse_list_draftsA | List all drafts for the current user. Returns draft keys, sequences, and preview content. Use this to find existing drafts before updating them. |
| discourse_get_draftA | Retrieve a specific draft by its key. Common keys: "new_topic" for new topic drafts, "topic_" for reply drafts. |
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 14 tools
Every tool has a clearly distinct purpose targeting specific resources and actions in the Discourse platform. For example, discourse_filter_topics handles topic filtering, discourse_get_chat_messages retrieves chat messages, and discourse_list_categories lists categories—each serves a unique function with no overlap that would cause confusion.
All tool names follow a consistent verb_noun pattern with the 'discourse_' prefix, such as discourse_list_categories, discourse_get_user, and discourse_read_post. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 14 tools, this server is well-scoped for interacting with a Discourse forum, covering key areas like topics, posts, chats, users, categories, tags, drafts, and search. Each tool earns its place by addressing a specific need without being overly broad or sparse.
The tool set provides comprehensive coverage for reading, listing, filtering, and searching core Discourse resources, with minor gaps. For instance, it lacks tools for creating or updating content (e.g., posting new topics or replies), which agents might need for full CRUD operations, but existing tools support most common workflows effectively.