Hosted MCP server · #76 most used on Smithery
discource-mcp-tools
king-of-the-grackles/discourse-forum-mcp
Manage and explore forum communities by searching topics, reading posts, and viewing user profiles. Facilitate communication through chat channels, draft management, and categorized content discovery. Streamline interactions with tools for filtering topics and generating post summaries or replies.
- Uses
- 6.6k
- Tools
- 15
- Runs
- Hosted
- Prompts
- 4
- Listed
- 8mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install king-of-the-grackles/discourse-forum-mcp --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http discource-mcp-tools https://server.smithery.ai/king-of-the-grackles/discourse-forum-mcp/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.discource-mcp-tools]
url = "https://server.smithery.ai/king-of-the-grackles/discourse-forum-mcp/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"discource-mcp-tools": {
"url": "https://server.smithery.ai/king-of-the-grackles/discourse-forum-mcp/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"discource-mcp-tools": {
"type": "http",
"url": "https://server.smithery.ai/king-of-the-grackles/discourse-forum-mcp/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http discource-mcp-tools https://server.smithery.ai/king-of-the-grackles/discourse-forum-mcp/mcpSaved to .gemini/settings.json.
What it can do
15 tools
discourse_select_site1 paramValidate and select a Discourse site for subsequent tool calls. Verifies the site is reachable and retrieves its title. Must be called be…
Validate and select a Discourse site for subsequent tool calls. Verifies the site is reachable and retrieves its title. Must be called before using other tools when multiple sites are configured.
| Parameter | Type | Description |
|---|---|---|
site | string | Base URL of the Discourse site (e.g., 'https://meta.discourse.org' or 'https://community.example.com') |
discourse_search3 paramsSearch Discourse site content including topics, posts, and users. Use search operators like @username, #tag, category:name for filtered r…
Search Discourse site content including topics, posts, and users. Use search operators like @username, #tag, category:name for filtered results.
| Parameter | Type | Description |
|---|---|---|
query | string | Search query text (e.g., 'how to install plugin'). Supports Discourse search operators like @username, #tag, category:name, status:open, order:latest |
max_results | integer | Maximum number of results to return (1-50). Default: 10 |
with_private | boolean | Include private messages and topics in search results (requires authentication). Default: false |
discourse_read_topic3 paramsRead a Discourse topic including its metadata (title, category, tags) and posts. Supports pagination for long topics.
| Parameter | Type | Description |
|---|---|---|
topic_id | integer | The numeric ID of the topic to read (e.g., 12345 from URL /t/topic-slug/12345) |
post_limit | integer | Maximum number of posts to retrieve (1-100). Default: 5 |
start_post_number | integer | Start reading from this post number (1-based). Use for pagination through long topics |
discourse_read_post1 paramRead a specific post by its ID. Returns the post content, author, creation date, and link to the post.
| Parameter | Type | Description |
|---|---|---|
post_id | integer | The numeric post ID to read (found in post JSON data or API responses) |
discourse_list_categoriesList all categories visible to the current user. Returns category names and topic counts. Useful for discovering where to post or search.
discourse_list_tagsList all available tags on the Discourse site (if tagging is enabled). Returns tag names and usage counts. Use tags in search queries wit…
List all available tags on the Discourse site (if tagging is enabled). Returns tag names and usage counts. Use tags in search queries with #tagname.
discourse_get_user1 paramGet information about a Discourse user by username. Returns name, trust level, join date, bio, and profile link.
| Parameter | Type | Description |
|---|---|---|
username | string | The Discourse username to look up (without @ symbol, e.g., 'codinghorror') |
discourse_list_user_posts2 paramsGet a paginated list of posts and replies by a specific user, with the most recent first. Returns 30 posts per page. Includes topic title…
Get a paginated list of posts and replies by a specific user, with the most recent first. Returns 30 posts per page. Includes topic title, post date, excerpt, and direct links.
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number for pagination (0-based). Each page returns 30 posts. Default: 0 |
username | string | The Discourse username to fetch posts for (without @ symbol, e.g., 'codinghorror') |
discourse_filter_topics3 paramsFilter topics with a concise query language: use key:value tokens separated by spaces; category/categories for categories (comma = OR, '=…
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), vi
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (0-based, default: 0) |
filter | string | Filter query, e.g. 'category:support status:open created-after:30 order:activity' |
per_page | integer | Items per page (max 50) |
discourse_list_chat_channels4 paramsList all public chat channels visible to the current user. Returns channel information including title, description, and member counts. S…
List all public chat channels visible to the current user. Returns channel information including title, description, and member counts. Supports filtering and pagination.
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of channels to return (default: 25, max: 100) |
filter | string | Filter channels by name/slug |
offset | integer | Pagination offset (default: 0) |
status | string | Filter by channel status (e.g., 'open', 'closed', 'archived') |
discourse_list_user_chat_channelsList all chat channels for the currently authenticated user, including both public channels they're a member of and direct message channe…
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_messages7 paramsGet messages from a chat channel with flexible pagination and date-based filtering. Supports: (1) paginating with direction='past'/'futur…
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.
| Parameter | Type | Description |
|---|---|---|
direction | string | Pagination direction: 'past' for older messages (DESC), 'future' for newer messages (ASC) |
page_size | integer | Number of messages to return (default: 50, max: 500) |
channel_id | integer | The chat channel ID |
target_date | string | ISO 8601 date string (e.g., '2024-01-15' or '2024-01-15T10:30:00Z') to query messages around that date |
target_message_id | integer | Message ID to query around or paginate from |
fetch_from_last_read | boolean | If true, start from the user's last read message |
include_target_message_id | boolean | Whether to include the target message in results (default: true) |
discourse_list_drafts1 paramList all drafts for the current user. Returns draft keys, sequences, and preview content. Use this to find existing drafts before updatin…
List all drafts for the current user. Returns draft keys, sequences, and preview content. Use this to find existing drafts before updating them.
| Parameter | Type | Description |
|---|---|---|
offset | integer | Pagination offset (default: 0) |
discourse_get_draft2 paramsRetrieve a specific draft by its key. Common keys: "new_topic" for new topic drafts, "topic_<id>" for reply drafts.
| Parameter | Type | Description |
|---|---|---|
sequence | integer | Expected sequence number (optional) |
draft_key | string | Draft key (e.g., "new_topic", "topic_123", "new_private_message") |
search_discourse_communities6 paramsDiscover Discourse forum communities by topic or find similar communities. Use 'query' for semantic text search (e.g., 'note taking produ…
Discover Discourse forum communities by topic or find similar communities. Use 'query' for semantic text search (e.g., 'note taking productivity') or 'similar_to' to find communities similar to a known one by URL or ID. Provide exactly one of 'query' or 'similar_to'. Returns communities with confidence scores and engagement metrics.
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (default: 10, max: 50) |
query | string | Semantic text search query (e.g., 'note taking productivity') |
locale | string | Filter by locale code (e.g., 'en', 'de', 'fr') |
min_users | integer | Filter by minimum total user count |
similar_to | string | Find communities similar to this one. Accepts a community URL (e.g., 'https://forum.obsidian.md') or ID (e.g., 'discover_1376') |
engagement_tier | string | Filter by engagement level: high (>5% MAU), medium (>1% MAU), low (<1% MAU) |
Ready-made
Prompts
discourse-search-helpGenerate an optimized search query for Discourse using search operatorsdiscourse-post-draftHelp draft a well-structured Discourse post or replydiscourse-summarize-topicGenerate a summary of a Discourse topic discussiondiscourse-reply-suggestionsGenerate thoughtful reply suggestions for a Discourse topic
Readable data
Resources
site-infoCurrent Discourse site configuration and connection status